Fixes
This commit is contained in:
		
							parent
							
								
									b8545a143b
								
							
						
					
					
						commit
						ffcb50c707
					
				@ -2,7 +2,7 @@ fun noarg()
 | 
				
			|||||||
fun onearg(a)
 | 
					fun onearg(a)
 | 
				
			||||||
fun multargs(a, b)
 | 
					fun multargs(a, b)
 | 
				
			||||||
fun funcassign(a) =
 | 
					fun funcassign(a) =
 | 
				
			||||||
	a = 1
 | 
					    a = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var a = 1
 | 
					var a = 1
 | 
				
			||||||
var b = 'a'
 | 
					var b = 'a'
 | 
				
			||||||
@ -14,23 +14,23 @@ var h = 4 * "aaa"
 | 
				
			|||||||
var i =
 | 
					var i =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fun a() =
 | 
					fun a() =
 | 
				
			||||||
	1, 'a', "a",
 | 
					    1, 'a', "a",
 | 
				
			||||||
	a, neki(a, 1, 'a', "a"),
 | 
					    a, neki(a, 1, 'a', "a"),
 | 
				
			||||||
	a^, a^^,
 | 
					    a^, a^^,
 | 
				
			||||||
	+a, -a, !a, ^a, +-!^a,
 | 
					    +a, -a, !a, ^a, +-!^a,
 | 
				
			||||||
	a * b, a / b, a % b, a * b / c % d,
 | 
					    a * b, a / b, a % b, a * b / c % d,
 | 
				
			||||||
	a + b, a - b,
 | 
					    a + b, a - b,
 | 
				
			||||||
	a == b, a != b, a < b, a > b, a <= b, a >= b,
 | 
					    a == b, a != b, a < b, a > b, a <= b, a >= b,
 | 
				
			||||||
	a && b, a && b && c,
 | 
					    a && b, a && b && c,
 | 
				
			||||||
	a || b, a || b || c,
 | 
					    a || b, a || b || c,
 | 
				
			||||||
	(1), (a + b), (a - (!(1) * 2)),
 | 
					    (1), (a + b), (a - (!(1) * 2)),
 | 
				
			||||||
	a + 1 = b - 1,
 | 
					    a + 1 = b - 1,
 | 
				
			||||||
	if a then b end,
 | 
					    if a then b end,
 | 
				
			||||||
	if a == 3 then b = 1, !c end,
 | 
					    if a == 3 then b = 1, !c end,
 | 
				
			||||||
	if !a then b else a = 3 * a end,
 | 
					    if !a then b else a = 3 * a end,
 | 
				
			||||||
	if a then b else a, b end,
 | 
					    if a then b else a, b end,
 | 
				
			||||||
	while a <= 10 do a + 1 end,
 | 
					    while a <= 10 do a + 1 end,
 | 
				
			||||||
	while a <= 10 do a + 1, ^c end,
 | 
					    while a <= 10 do a + 1, ^c end,
 | 
				
			||||||
	let fun a(b, c) in !b end,
 | 
					    let fun a(b, c) in !b end,
 | 
				
			||||||
	let fun a(b, c) var e = 'o' in !b end,
 | 
					    let fun a(b, c) var e = 'o' in !b end,
 | 
				
			||||||
	let fun a(b, c) in !b, 4 end
 | 
					    let fun a(b, c) in !b, 4 end
 | 
				
			||||||
@ -1 +1,2 @@
 | 
				
			|||||||
var
 | 
					fun a() =
 | 
				
			||||||
 | 
						1 +
 | 
				
			||||||
@ -1,7 +1,5 @@
 | 
				
			|||||||
package pins25.common;
 | 
					package pins25.common;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashMap;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Leksikalni simbol.
 | 
					 * Leksikalni simbol.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@ -152,7 +150,8 @@ public record Token(Report.Location location, Symbol symbol, String lexeme) impl
 | 
				
			|||||||
         */
 | 
					         */
 | 
				
			||||||
        RPAREN;
 | 
					        RPAREN;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public String prettyPrint() {
 | 
					        @Override
 | 
				
			||||||
 | 
					        public String toString() {
 | 
				
			||||||
            return switch (this) {
 | 
					            return switch (this) {
 | 
				
			||||||
                case INTCONST -> "integer constant";
 | 
					                case INTCONST -> "integer constant";
 | 
				
			||||||
                case CHARCONST -> "character constant";
 | 
					                case CHARCONST -> "character constant";
 | 
				
			||||||
@ -192,7 +191,6 @@ public record Token(Report.Location location, Symbol symbol, String lexeme) impl
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public String toString() {
 | 
					    public String toString() {
 | 
				
			||||||
        String lexeme = switch (symbol) {
 | 
					        String lexeme = switch (symbol) {
 | 
				
			||||||
 | 
				
			|||||||
@ -130,7 +130,7 @@ public class LexAn implements AutoCloseable {
 | 
				
			|||||||
        Report.Location start = currentLocation();
 | 
					        Report.Location start = currentLocation();
 | 
				
			||||||
        switch (buffChar) {
 | 
					        switch (buffChar) {
 | 
				
			||||||
            case -1: // EOF
 | 
					            case -1: // EOF
 | 
				
			||||||
                buffToken = new Token(start, Token.Symbol.EOF, null);
 | 
					                buffToken = new Token(start, Token.Symbol.EOF, "EOF");
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case '\'':
 | 
					            case '\'':
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ public class SynAn implements AutoCloseable {
 | 
				
			|||||||
    private Token check(Token.Symbol symbol) {
 | 
					    private Token check(Token.Symbol symbol) {
 | 
				
			||||||
        final Token token = lexAn.takeToken();
 | 
					        final Token token = lexAn.takeToken();
 | 
				
			||||||
        if (token.symbol() != symbol)
 | 
					        if (token.symbol() != symbol)
 | 
				
			||||||
            throw new Report.Error(token, "Unexpected symbol '" + token.lexeme() + "', expected " + symbol.prettyPrint() + ".");
 | 
					            throw new Report.Error(token, "Unexpected symbol '" + token.lexeme() + "', expected " + symbol + ".");
 | 
				
			||||||
        return token;
 | 
					        return token;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user