implement visitors for null atom

This commit is contained in:
2020-02-14 14:11:26 +01:00
parent 2f425944e5
commit 80deae6971
6 changed files with 33 additions and 0 deletions

View File

@@ -668,6 +668,15 @@ public class ContextAnalysis extends KlangBaseVisitor<Node> {
return n;
}
@Override
public Node visitNullAtom(KlangParser.NullAtomContext ctx) {
Node n = new NullExpression();
n.type = Type.getNullType();
n.line = ctx.start.getLine();
n.col = ctx.start.getCharPositionInLine();
return n;
}
@Override
public Node visitFunctionDef(KlangParser.FunctionDefContext ctx) {
String name = ctx.funcName.getText();

View File

@@ -496,4 +496,10 @@ public class EvalVisitor implements Visitor<Value> {
return null;
}
@Override
public Value visit(NullExpression e) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -819,4 +819,10 @@ public class GenASM implements Visitor<Void> {
return null;
}
@Override
public Void visit(NullExpression e) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -260,4 +260,9 @@ class GetVars implements Visitor<Void> {
return null;
}
@Override
public Void visit(NullExpression e) {
return null;
}
}

View File

@@ -432,4 +432,10 @@ public class PrettyPrintVisitor implements Visitor<Void> {
return null;
}
@Override
public Void visit(NullExpression e) {
ex.write("null");
return null;
}
}

View File

@@ -47,4 +47,5 @@ public interface Visitor<R> {
R visit(StructField e);
R visit(StructFieldAccessExpression e);
R visit(ConstructorCall e);
R visit(NullExpression e);
}