diff --git a/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java b/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java index 2741db7..b9c9da8 100644 --- a/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java +++ b/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java @@ -668,6 +668,15 @@ public class ContextAnalysis extends KlangBaseVisitor { 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(); diff --git a/src/main/java/de/hsrm/compiler/Klang/visitors/EvalVisitor.java b/src/main/java/de/hsrm/compiler/Klang/visitors/EvalVisitor.java index 3a99399..d4b458c 100644 --- a/src/main/java/de/hsrm/compiler/Klang/visitors/EvalVisitor.java +++ b/src/main/java/de/hsrm/compiler/Klang/visitors/EvalVisitor.java @@ -496,4 +496,10 @@ public class EvalVisitor implements Visitor { return null; } + @Override + public Value visit(NullExpression e) { + // TODO Auto-generated method stub + return null; + } + } \ No newline at end of file diff --git a/src/main/java/de/hsrm/compiler/Klang/visitors/GenASM.java b/src/main/java/de/hsrm/compiler/Klang/visitors/GenASM.java index cdf9ac7..966ae17 100644 --- a/src/main/java/de/hsrm/compiler/Klang/visitors/GenASM.java +++ b/src/main/java/de/hsrm/compiler/Klang/visitors/GenASM.java @@ -819,4 +819,10 @@ public class GenASM implements Visitor { return null; } + @Override + public Void visit(NullExpression e) { + // TODO Auto-generated method stub + return null; + } + } \ No newline at end of file diff --git a/src/main/java/de/hsrm/compiler/Klang/visitors/GetVars.java b/src/main/java/de/hsrm/compiler/Klang/visitors/GetVars.java index eb728fb..926ee4b 100644 --- a/src/main/java/de/hsrm/compiler/Klang/visitors/GetVars.java +++ b/src/main/java/de/hsrm/compiler/Klang/visitors/GetVars.java @@ -260,4 +260,9 @@ class GetVars implements Visitor { return null; } + @Override + public Void visit(NullExpression e) { + return null; + } + } \ No newline at end of file diff --git a/src/main/java/de/hsrm/compiler/Klang/visitors/PrettyPrintVisitor.java b/src/main/java/de/hsrm/compiler/Klang/visitors/PrettyPrintVisitor.java index 58d9679..6c7857a 100644 --- a/src/main/java/de/hsrm/compiler/Klang/visitors/PrettyPrintVisitor.java +++ b/src/main/java/de/hsrm/compiler/Klang/visitors/PrettyPrintVisitor.java @@ -432,4 +432,10 @@ public class PrettyPrintVisitor implements Visitor { return null; } + @Override + public Void visit(NullExpression e) { + ex.write("null"); + return null; + } + } \ No newline at end of file diff --git a/src/main/java/de/hsrm/compiler/Klang/visitors/Visitor.java b/src/main/java/de/hsrm/compiler/Klang/visitors/Visitor.java index ece0bd7..597c3bc 100644 --- a/src/main/java/de/hsrm/compiler/Klang/visitors/Visitor.java +++ b/src/main/java/de/hsrm/compiler/Klang/visitors/Visitor.java @@ -47,4 +47,5 @@ public interface Visitor { R visit(StructField e); R visit(StructFieldAccessExpression e); R visit(ConstructorCall e); + R visit(NullExpression e); } \ No newline at end of file