implement new for simplified grammar

This commit is contained in:
2019-10-28 21:52:32 +01:00
parent a6c732e99c
commit 13d38a53aa
2 changed files with 22 additions and 2 deletions

View File

@@ -19,7 +19,8 @@ public class Klang {
KlangParser parser = new KlangParser(tokens); KlangParser parser = new KlangParser(tokens);
ParseTree tree = parser.parse(); // begin parsing at init rule ParseTree tree = parser.parse(); // begin parsing at init rule
EvalVisitor visitor = new EvalVisitor(); Visitor visitor = new Visitor();
visitor.visit(tree); int result = visitor.visit(tree);
System.out.println(result);
} }
} }

View File

@@ -0,0 +1,19 @@
package de.hsrm.compiler.Klang;
public class Visitor extends KlangBaseVisitor<Integer> {
@Override
public Integer visitMultiplicativeExpr(KlangParser.MultiplicativeExprContext ctx) {
int result = 1;
for (var expr: ctx.unaryExpression()) {
result *= this.visit(expr);
}
return result;
}
@Override
public Integer visitUnaryExpression(KlangParser.UnaryExpressionContext ctx) {
return Integer.parseInt(ctx.getText());
}
}