Compare commits
	
		
			1 Commits
		
	
	
		
			master
			...
			add-right-
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					8251a3608c | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -3,4 +3,3 @@ out/
 | 
			
		||||
*.zip
 | 
			
		||||
prg/**/*.ast
 | 
			
		||||
prg/**/*.out
 | 
			
		||||
prg/**/*.pins25
 | 
			
		||||
@ -39,8 +39,9 @@ restcmp -> EQU addexpr
 | 
			
		||||
		 | .
 | 
			
		||||
 | 
			
		||||
addexpr -> multexpr restadd .
 | 
			
		||||
restadd -> ADD multexpr restadd
 | 
			
		||||
		 | SUB multexpr restadd | .
 | 
			
		||||
restadd -> ADD addexpr
 | 
			
		||||
		 | SUB addexpr
 | 
			
		||||
		 | .
 | 
			
		||||
 | 
			
		||||
multexpr -> prefixexpr restmult .
 | 
			
		||||
restmult -> MUL prefixexpr restmult
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								prg/test.pins25
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								prg/test.pins25
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
 | 
			
		||||
fun main() =
 | 
			
		||||
	3 - 2 - 1
 | 
			
		||||
@ -540,20 +540,20 @@ public class SynAn implements AutoCloseable {
 | 
			
		||||
        Token token = lexAn.peekToken();
 | 
			
		||||
        switch (token.symbol()) {
 | 
			
		||||
            case ADD: {
 | 
			
		||||
                // restadd -> ADD multexpr restadd
 | 
			
		||||
                // restadd -> ADD addexpr
 | 
			
		||||
                check(Token.Symbol.ADD);
 | 
			
		||||
                AST.Expr right = parseMultiplicationExpression();
 | 
			
		||||
                AST.Expr right = parseAdditionExpression();
 | 
			
		||||
                AST.Expr binExpr = new AST.BinExpr(AST.BinExpr.Oper.ADD, left, right);
 | 
			
		||||
                attrLoc.put(binExpr, new Report.Location(attrLoc.get(left), attrLoc.get(right)));
 | 
			
		||||
                return parseRestAdditionExpressions(binExpr);
 | 
			
		||||
                return binExpr;
 | 
			
		||||
            }
 | 
			
		||||
            case SUB: {
 | 
			
		||||
                // restadd -> SUB multexpr restadd
 | 
			
		||||
                // restadd -> ADD addexpr
 | 
			
		||||
                check(Token.Symbol.SUB);
 | 
			
		||||
                AST.Expr right = parseMultiplicationExpression();
 | 
			
		||||
                AST.Expr right = parseAdditionExpression();
 | 
			
		||||
                AST.Expr binExpr = new AST.BinExpr(AST.BinExpr.Oper.SUB, left, right);
 | 
			
		||||
                attrLoc.put(binExpr, new Report.Location(attrLoc.get(left), attrLoc.get(right)));
 | 
			
		||||
                return parseRestAdditionExpressions(binExpr);
 | 
			
		||||
                return binExpr;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            default:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user