Changed addition operators to right associative
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user