diff --git a/src/main/java/TypeCheck/TypeCheckResult.java b/src/main/java/TypeCheck/TypeCheckResult.java index 6382b99..45c432f 100644 --- a/src/main/java/TypeCheck/TypeCheckResult.java +++ b/src/main/java/TypeCheck/TypeCheckResult.java @@ -1,5 +1,11 @@ package TypeCheck; public class TypeCheckResult { + + public TypeCheckResult(){} + public TypeCheckResult(String type) { + this.type = type; + } + public String type; } diff --git a/src/test/resources/Integration/Dijkstra.java b/src/test/resources/Integration/Dijkstra.java index 32afe5d..05438e2 100644 --- a/src/test/resources/Integration/Dijkstra.java +++ b/src/test/resources/Integration/Dijkstra.java @@ -1,6 +1,6 @@ class Dijkstra { - void main() { + public static void main(String[] args) { Vertex v1 = new Vertex(1); Graph g = new Graph(v1); Vertex v2 = new Vertex(2); @@ -91,7 +91,7 @@ class Graph { } public void getShortestPath(Vertex source, Vertex destination) { - VertexSet calcList = vertexList.copy(); + VertexSet calcList = vertexList.copy(vertexList); calcList.get(source.id).setDistance(0); calcList.get(source.id).setPrevious(null); Vertex current = calcList.get(source.id); @@ -100,7 +100,6 @@ class Graph { current.setVisited(true); VertexSet currentAdjanceyList = current.getAdjanceyList(); if (currentAdjanceyList != null) { - int i = 0; int i = 0; while (i < currentAdjanceyList.size()) { Vertex adjancey = currentAdjanceyList.getFromIndex(i); @@ -118,7 +117,7 @@ class Graph { } } else { } - current = calcList.getNextSmallestUnvisited(); + current = calcList.getNextSmallestUnvisited(calcList); } Vertex previous = calcList.get(destination.id); if (previous == null) { @@ -190,8 +189,8 @@ class Vertex { } } - public Vertex copy() { - return new Vertex(this); + public Vertex copy(Vertex vertex) { + return new Vertex(vertex); } public boolean isDirect(Vertex v) { @@ -221,16 +220,16 @@ class VertexSet { } public VertexSet(VertexSet vertexList) { - this.vertex = vertexList.vertex.copy(); + this.vertex = vertexList.vertex.copy(vertexList.vertex); if (vertexList.next != null) { - this.next = vertexList.next.copy(); + this.next = new VertexSet(vertexList.next); } else { this.next = null; } } - public Vertex getNextSmallestUnvisited() { - VertexSet v = this.getUnvisited(); + public Vertex getNextSmallestUnvisited(VertexSet currenVertexSet) { + VertexSet v = this.getUnvisited(currenVertexSet); if (v == null) { return null; } else { @@ -250,10 +249,10 @@ class VertexSet { return smallest; } - public VertexSet getUnvisited() { + public VertexSet getUnvisited(VertexSet currenVertexSet) { VertexSet unvisited = null; - VertexSet current = this; + VertexSet current = currenVertexSet; while (current != null) { if (!current.vertex.isVisited()) { if (unvisited == null) { @@ -295,8 +294,8 @@ class VertexSet { } } - public VertexSet copy() { - return new VertexSet(this); + public VertexSet copy(VertexSet currenVertexSet) { + return new VertexSet(currenVertexSet); } public boolean contains(Vertex v) { @@ -328,7 +327,6 @@ class VertexSet { return null; } } - } class IntStack { diff --git a/src/test/resources/SimpleTests/IfElseIfStatementWithOneReturn.tokens b/src/test/resources/SimpleTests/IfElseIfStatementWithOneReturn.tokens index eaea709..a80f8cf 100644 --- a/src/test/resources/SimpleTests/IfElseIfStatementWithOneReturn.tokens +++ b/src/test/resources/SimpleTests/IfElseIfStatementWithOneReturn.tokens @@ -5,10 +5,48 @@ Int: "int" Identifier: "foo" OpenRoundBracket: "(" Int: "int" +Identifier: "i" ClosedRoundBracket: ")" OpenCurlyBracket: "{" Int: "int" Identifier: "result" Assign: "=" IntValue: "0" -Semicolon: ";" \ No newline at end of file +Semicolon: ";" +If: "if" +OpenRoundBracket: "(" +Identifier: "i" +ComparisonOperator: "==" +IntValue: "1" +ClosedRoundBracket: ")" +OpenCurlyBracket: "{" +Identifier: "result" +Assign: "=" +IntValue: "10" +Semicolon: ";" +ClosedCurlyBracket: "}" +Else: "else" +If: "if" +OpenRoundBracket: "(" +Identifier: "i" +ComparisonOperator: "==" +IntValue: "2" +ClosedRoundBracket: ")" +OpenCurlyBracket: "{" +Return: "return" +IntValue: "20" +Semicolon: ";" +ClosedCurlyBracket: "}" +Else: "else" +OpenCurlyBracket: "{" +Identifier: "result" +Assign: "=" +IntValue: "30" +Semicolon: ";" +ClosedCurlyBracket: "}" +Return: "return" +Identifier: "result" +Semicolon: ";" +ClosedCurlyBracket: "}" +ClosedCurlyBracket: "}" +EOF: "" \ No newline at end of file diff --git a/src/test/resources/basicClasses/FourClasses.tokens b/src/test/resources/basicClasses/FourClasses.tokens index 6b9be23..7927e17 100644 --- a/src/test/resources/basicClasses/FourClasses.tokens +++ b/src/test/resources/basicClasses/FourClasses.tokens @@ -3,7 +3,7 @@ Identifier: "FourClasses" OpenCurlyBracket: "{" AccessModifierPublic: "public" Int: "int" -Identifier: "main" +Identifier: "method" OpenRoundBracket: "(" Int: "int" Identifier: "i" @@ -41,6 +41,24 @@ OpenRoundBracket: "(" ClosedRoundBracket: ")" Semicolon: ";" ClosedCurlyBracket: "}" +MainMethodDecl: "public static void main(String[] args)" +OpenCurlyBracket: "{" +Identifier: "FourClasses" +Identifier: "fourClasses" +Assign: "=" +New: "new" +Identifier: "FourClasses" +OpenRoundBracket: "(" +ClosedRoundBracket: ")" +Semicolon: ";" +Identifier: "fourClasses" +Dot: "." +Identifier: "method" +OpenRoundBracket: "(" +IntValue: "1" +ClosedRoundBracket: ")" +Semicolon: ";" +ClosedCurlyBracket: "}" ClosedCurlyBracket: "}" Class: "class" Identifier: "Test"