Skip to content
Snippets Groups Projects

Dominicsbranch

7 files
+ 74
25
Compare changes
  • Side-by-side
  • Inline

Files

+ 38
0
 
public class ASTPrinter implements Visitor<String>{
 
@Override
 
public String visit(final Parser.BinaryOperation binaryOP) {
 
StringBuffer sb = new StringBuffer();
 
if(binaryOP.capsuled) {
 
sb.append("(");
 
}
 
sb.append(binaryOP.leftExpression.accept(this));
 
sb.append(binaryOP.operator);
 
sb.append(binaryOP.rightExpression.accept(this));
 
if(binaryOP.capsuled) {
 
sb.append(")");
 
}
 
return sb.toString();
 
}
 
 
@Override
 
public String visit(Parser.Variable variable) {
 
return variable.variableName;
 
}
 
 
@Override
 
public String visit(Parser.Number number) {
 
return number.digits;
 
}
 
 
@Override
 
public String visit(Parser.Decimal decimal) {
 
return decimal.beforeDot.digits + "." + decimal.afterDot.digits;
 
}
 
 
public String visit(final Parser.Expression ast) {
 
if(ast==null) {
 
throw new RuntimeException("AST is null");
 
}
 
return ast.accept(this);
 
}
 
}
Loading