Simplify code generation using overridden AST methods.

This commit is contained in:
Deryck Brown
2022-05-23 21:39:42 +01:00
parent fbada163d4
commit a6a078680c
15 changed files with 105 additions and 85 deletions
@@ -30,4 +30,14 @@ public class CharacterExpression extends Expression {
}
public final CharacterLiteral CL;
@Override
public boolean isLiteral() {
return true;
}
@Override
public int getValue() {
return CL.getValue();
}
}
@@ -28,6 +28,14 @@ public abstract class Expression extends AbstractSyntaxTree {
public TypeDenoter type;
public boolean isLiteral() {
return false;
}
public int getValue() {
throw new UnsupportedOperationException();
}
public abstract <TArg, TResult> TResult visit(ExpressionVisitor<TArg, TResult> visitor, TArg arg);
public <TArg, TResult> TResult visit(ExpressionVisitor<TArg, TResult> visitor) {
@@ -30,4 +30,14 @@ public class IntegerExpression extends Expression {
}
public final IntegerLiteral IL;
@Override
public boolean isLiteral() {
return true;
}
@Override
public int getValue() {
return IL.getValue();
}
}