implement new for simplified grammar
This commit is contained in:
@@ -19,7 +19,8 @@ public class Klang {
|
||||
KlangParser parser = new KlangParser(tokens);
|
||||
|
||||
ParseTree tree = parser.parse(); // begin parsing at init rule
|
||||
EvalVisitor visitor = new EvalVisitor();
|
||||
visitor.visit(tree);
|
||||
Visitor visitor = new Visitor();
|
||||
int result = visitor.visit(tree);
|
||||
System.out.println(result);
|
||||
}
|
||||
}
|
||||
|
||||
19
src/main/java/de/hsrm/compiler/Klang/Visitor.java
Normal file
19
src/main/java/de/hsrm/compiler/Klang/Visitor.java
Normal 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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user