diff --git a/New folder/gen/q2.interp b/New folder/gen/q2.interp
new file mode 100644
index 0000000..c7c1f73
--- /dev/null
+++ b/New folder/gen/q2.interp
@@ -0,0 +1,38 @@
+token literal names:
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+
+token symbolic names:
+null
+MainClass
+ClassDeclaration
+VarDeclaration
+Type
+MethodDeclaration
+Statement
+Expression
+Expression_prim
+Identifier
+COMMENT
+LINE_COMMENT
+IDENTIFIER
+INTEGER_LITERAL
+
+rule names:
+program
+
+
+atn:
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 15, 14, 4, 2, 9, 2, 3, 2, 3, 2, 7, 2, 7, 10, 2, 12, 2, 14, 2, 10, 11, 2, 3, 2, 3, 2, 3, 2, 2, 2, 3, 2, 2, 2, 2, 13, 2, 4, 3, 2, 2, 2, 4, 8, 7, 3, 2, 2, 5, 7, 7, 4, 2, 2, 6, 5, 3, 2, 2, 2, 7, 10, 3, 2, 2, 2, 8, 6, 3, 2, 2, 2, 8, 9, 3, 2, 2, 2, 9, 11, 3, 2, 2, 2, 10, 8, 3, 2, 2, 2, 11, 12, 7, 2, 2, 3, 12, 3, 3, 2, 2, 2, 3, 8]
\ No newline at end of file
diff --git a/New folder/gen/q2.tokens b/New folder/gen/q2.tokens
new file mode 100644
index 0000000..64760da
--- /dev/null
+++ b/New folder/gen/q2.tokens
@@ -0,0 +1,13 @@
+MainClass=1
+ClassDeclaration=2
+VarDeclaration=3
+Type=4
+MethodDeclaration=5
+Statement=6
+Expression=7
+Expression_prim=8
+Identifier=9
+COMMENT=10
+LINE_COMMENT=11
+IDENTIFIER=12
+INTEGER_LITERAL=13
diff --git a/New folder/gen/q2BaseListener.java b/New folder/gen/q2BaseListener.java
new file mode 100644
index 0000000..2935520
--- /dev/null
+++ b/New folder/gen/q2BaseListener.java
@@ -0,0 +1,50 @@
+// Generated from C:/Users/asus/Desktop\q2.g4 by ANTLR 4.9.1
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.antlr.v4.runtime.tree.ErrorNode;
+import org.antlr.v4.runtime.tree.TerminalNode;
+
+/**
+ * This class provides an empty implementation of {@link q2Listener},
+ * which can be extended to create a listener which only needs to handle a subset
+ * of the available methods.
+ */
+public class q2BaseListener implements q2Listener {
+ /**
+ * {@inheritDoc}
+ *
+ *
The default implementation does nothing.
+ */
+ @Override public void enterProgram(q2Parser.ProgramContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitProgram(q2Parser.ProgramContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterEveryRule(ParserRuleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitEveryRule(ParserRuleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void visitTerminal(TerminalNode node) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void visitErrorNode(ErrorNode node) { }
+}
\ No newline at end of file
diff --git a/New folder/gen/q2BaseVisitor.java b/New folder/gen/q2BaseVisitor.java
new file mode 100644
index 0000000..aeb896a
--- /dev/null
+++ b/New folder/gen/q2BaseVisitor.java
@@ -0,0 +1,20 @@
+// Generated from C:/Users/asus/Desktop\q2.g4 by ANTLR 4.9.1
+import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
+
+/**
+ * This class provides an empty implementation of {@link q2Visitor},
+ * which can be extended to create a visitor which only needs to handle a subset
+ * of the available methods.
+ *
+ * @param The return type of the visit operation. Use {@link Void} for
+ * operations with no return type.
+ */
+public class q2BaseVisitor extends AbstractParseTreeVisitor implements q2Visitor {
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitProgram(q2Parser.ProgramContext ctx) { return visitChildren(ctx); }
+}
\ No newline at end of file
diff --git a/New folder/gen/q2Lexer.interp b/New folder/gen/q2Lexer.interp
new file mode 100644
index 0000000..e070394
--- /dev/null
+++ b/New folder/gen/q2Lexer.interp
@@ -0,0 +1,56 @@
+token literal names:
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+
+token symbolic names:
+null
+MainClass
+ClassDeclaration
+VarDeclaration
+Type
+MethodDeclaration
+Statement
+Expression
+Expression_prim
+Identifier
+COMMENT
+LINE_COMMENT
+IDENTIFIER
+INTEGER_LITERAL
+
+rule names:
+MainClass
+ClassDeclaration
+VarDeclaration
+Type
+MethodDeclaration
+Statement
+Expression
+Expression_prim
+Identifier
+COMMENT
+LINE_COMMENT
+IDENTIFIER
+INTEGER_LITERAL
+
+channel names:
+DEFAULT_TOKEN_CHANNEL
+HIDDEN
+
+mode names:
+DEFAULT_MODE
+
+atn:
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 15, 389, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 95, 10, 3, 3, 3, 3, 3, 7, 3, 99, 10, 3, 12, 3, 14, 3, 102, 11, 3, 3, 3, 7, 3, 105, 10, 3, 12, 3, 14, 3, 108, 11, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 133, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 7, 6, 151, 10, 6, 12, 6, 14, 6, 154, 11, 6, 5, 6, 156, 10, 6, 3, 6, 3, 6, 3, 6, 7, 6, 161, 10, 6, 12, 6, 14, 6, 164, 11, 6, 3, 6, 7, 6, 167, 10, 6, 12, 6, 14, 6, 170, 11, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 7, 7, 184, 10, 7, 12, 7, 14, 7, 187, 11, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 258, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 317, 10, 8, 3, 9, 3, 9, 3, 9, 5, 9, 322, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 7, 9, 342, 10, 9, 12, 9, 14, 9, 345, 11, 9, 5, 9, 347, 10, 9, 3, 9, 3, 9, 3, 9, 5, 9, 352, 10, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 7, 11, 360, 10, 11, 12, 11, 14, 11, 363, 11, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 374, 10, 12, 12, 12, 14, 12, 377, 11, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 7, 14, 385, 10, 14, 12, 14, 14, 14, 388, 11, 14, 3, 361, 2, 15, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 3, 2, 7, 5, 2, 44, 45, 47, 47, 62, 62, 4, 2, 12, 12, 15, 15, 5, 2, 67, 92, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 50, 59, 2, 423, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 3, 29, 3, 2, 2, 2, 5, 78, 3, 2, 2, 2, 7, 111, 3, 2, 2, 2, 9, 132, 3, 2, 2, 2, 11, 134, 3, 2, 2, 2, 13, 257, 3, 2, 2, 2, 15, 316, 3, 2, 2, 2, 17, 351, 3, 2, 2, 2, 19, 353, 3, 2, 2, 2, 21, 355, 3, 2, 2, 2, 23, 369, 3, 2, 2, 2, 25, 380, 3, 2, 2, 2, 27, 386, 3, 2, 2, 2, 29, 30, 7, 101, 2, 2, 30, 31, 7, 110, 2, 2, 31, 32, 7, 99, 2, 2, 32, 33, 7, 117, 2, 2, 33, 34, 7, 117, 2, 2, 34, 35, 3, 2, 2, 2, 35, 36, 5, 19, 10, 2, 36, 37, 7, 125, 2, 2, 37, 38, 7, 114, 2, 2, 38, 39, 7, 119, 2, 2, 39, 40, 7, 100, 2, 2, 40, 41, 7, 110, 2, 2, 41, 42, 7, 107, 2, 2, 42, 43, 7, 101, 2, 2, 43, 44, 3, 2, 2, 2, 44, 45, 7, 117, 2, 2, 45, 46, 7, 118, 2, 2, 46, 47, 7, 99, 2, 2, 47, 48, 7, 118, 2, 2, 48, 49, 7, 107, 2, 2, 49, 50, 7, 101, 2, 2, 50, 51, 3, 2, 2, 2, 51, 52, 7, 120, 2, 2, 52, 53, 7, 113, 2, 2, 53, 54, 7, 107, 2, 2, 54, 55, 7, 102, 2, 2, 55, 56, 3, 2, 2, 2, 56, 57, 7, 111, 2, 2, 57, 58, 7, 99, 2, 2, 58, 59, 7, 107, 2, 2, 59, 60, 7, 112, 2, 2, 60, 61, 3, 2, 2, 2, 61, 62, 7, 42, 2, 2, 62, 63, 7, 85, 2, 2, 63, 64, 7, 118, 2, 2, 64, 65, 7, 116, 2, 2, 65, 66, 7, 107, 2, 2, 66, 67, 7, 112, 2, 2, 67, 68, 7, 105, 2, 2, 68, 69, 3, 2, 2, 2, 69, 70, 7, 93, 2, 2, 70, 71, 7, 95, 2, 2, 71, 72, 5, 19, 10, 2, 72, 73, 7, 43, 2, 2, 73, 74, 7, 125, 2, 2, 74, 75, 5, 13, 7, 2, 75, 76, 7, 127, 2, 2, 76, 77, 7, 127, 2, 2, 77, 4, 3, 2, 2, 2, 78, 79, 7, 101, 2, 2, 79, 80, 7, 110, 2, 2, 80, 81, 7, 99, 2, 2, 81, 82, 7, 117, 2, 2, 82, 83, 7, 117, 2, 2, 83, 84, 3, 2, 2, 2, 84, 94, 5, 19, 10, 2, 85, 86, 7, 103, 2, 2, 86, 87, 7, 122, 2, 2, 87, 88, 7, 118, 2, 2, 88, 89, 7, 103, 2, 2, 89, 90, 7, 112, 2, 2, 90, 91, 7, 102, 2, 2, 91, 92, 7, 117, 2, 2, 92, 93, 3, 2, 2, 2, 93, 95, 5, 19, 10, 2, 94, 85, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 96, 3, 2, 2, 2, 96, 100, 7, 125, 2, 2, 97, 99, 5, 7, 4, 2, 98, 97, 3, 2, 2, 2, 99, 102, 3, 2, 2, 2, 100, 98, 3, 2, 2, 2, 100, 101, 3, 2, 2, 2, 101, 106, 3, 2, 2, 2, 102, 100, 3, 2, 2, 2, 103, 105, 5, 11, 6, 2, 104, 103, 3, 2, 2, 2, 105, 108, 3, 2, 2, 2, 106, 104, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 109, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 109, 110, 7, 127, 2, 2, 110, 6, 3, 2, 2, 2, 111, 112, 5, 9, 5, 2, 112, 113, 5, 19, 10, 2, 113, 114, 7, 61, 2, 2, 114, 8, 3, 2, 2, 2, 115, 116, 7, 107, 2, 2, 116, 117, 7, 112, 2, 2, 117, 118, 7, 118, 2, 2, 118, 119, 3, 2, 2, 2, 119, 120, 7, 93, 2, 2, 120, 133, 7, 95, 2, 2, 121, 122, 7, 100, 2, 2, 122, 123, 7, 113, 2, 2, 123, 124, 7, 113, 2, 2, 124, 125, 7, 110, 2, 2, 125, 126, 7, 103, 2, 2, 126, 127, 7, 99, 2, 2, 127, 133, 7, 112, 2, 2, 128, 129, 7, 107, 2, 2, 129, 130, 7, 112, 2, 2, 130, 133, 7, 118, 2, 2, 131, 133, 5, 19, 10, 2, 132, 115, 3, 2, 2, 2, 132, 121, 3, 2, 2, 2, 132, 128, 3, 2, 2, 2, 132, 131, 3, 2, 2, 2, 133, 10, 3, 2, 2, 2, 134, 135, 7, 114, 2, 2, 135, 136, 7, 119, 2, 2, 136, 137, 7, 100, 2, 2, 137, 138, 7, 110, 2, 2, 138, 139, 7, 107, 2, 2, 139, 140, 7, 101, 2, 2, 140, 141, 3, 2, 2, 2, 141, 142, 5, 9, 5, 2, 142, 143, 5, 19, 10, 2, 143, 155, 7, 42, 2, 2, 144, 145, 5, 9, 5, 2, 145, 152, 5, 19, 10, 2, 146, 147, 7, 46, 2, 2, 147, 148, 5, 9, 5, 2, 148, 149, 5, 19, 10, 2, 149, 151, 3, 2, 2, 2, 150, 146, 3, 2, 2, 2, 151, 154, 3, 2, 2, 2, 152, 150, 3, 2, 2, 2, 152, 153, 3, 2, 2, 2, 153, 156, 3, 2, 2, 2, 154, 152, 3, 2, 2, 2, 155, 144, 3, 2, 2, 2, 155, 156, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 158, 7, 43, 2, 2, 158, 162, 7, 125, 2, 2, 159, 161, 5, 7, 4, 2, 160, 159, 3, 2, 2, 2, 161, 164, 3, 2, 2, 2, 162, 160, 3, 2, 2, 2, 162, 163, 3, 2, 2, 2, 163, 168, 3, 2, 2, 2, 164, 162, 3, 2, 2, 2, 165, 167, 5, 13, 7, 2, 166, 165, 3, 2, 2, 2, 167, 170, 3, 2, 2, 2, 168, 166, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 171, 3, 2, 2, 2, 170, 168, 3, 2, 2, 2, 171, 172, 7, 116, 2, 2, 172, 173, 7, 103, 2, 2, 173, 174, 7, 118, 2, 2, 174, 175, 7, 119, 2, 2, 175, 176, 7, 116, 2, 2, 176, 177, 7, 112, 2, 2, 177, 178, 3, 2, 2, 2, 178, 179, 5, 15, 8, 2, 179, 180, 7, 127, 2, 2, 180, 12, 3, 2, 2, 2, 181, 185, 7, 125, 2, 2, 182, 184, 5, 13, 7, 2, 183, 182, 3, 2, 2, 2, 184, 187, 3, 2, 2, 2, 185, 183, 3, 2, 2, 2, 185, 186, 3, 2, 2, 2, 186, 188, 3, 2, 2, 2, 187, 185, 3, 2, 2, 2, 188, 258, 7, 127, 2, 2, 189, 190, 7, 121, 2, 2, 190, 191, 7, 106, 2, 2, 191, 192, 7, 107, 2, 2, 192, 193, 7, 110, 2, 2, 193, 194, 7, 103, 2, 2, 194, 195, 3, 2, 2, 2, 195, 196, 7, 42, 2, 2, 196, 197, 5, 15, 8, 2, 197, 198, 7, 43, 2, 2, 198, 199, 7, 125, 2, 2, 199, 200, 5, 13, 7, 2, 200, 201, 7, 127, 2, 2, 201, 258, 3, 2, 2, 2, 202, 203, 7, 107, 2, 2, 203, 204, 7, 104, 2, 2, 204, 205, 3, 2, 2, 2, 205, 206, 7, 42, 2, 2, 206, 207, 5, 15, 8, 2, 207, 208, 7, 43, 2, 2, 208, 209, 7, 125, 2, 2, 209, 210, 5, 13, 7, 2, 210, 211, 7, 127, 2, 2, 211, 212, 7, 103, 2, 2, 212, 213, 7, 110, 2, 2, 213, 214, 7, 117, 2, 2, 214, 215, 7, 103, 2, 2, 215, 216, 3, 2, 2, 2, 216, 217, 7, 125, 2, 2, 217, 218, 5, 13, 7, 2, 218, 219, 7, 127, 2, 2, 219, 258, 3, 2, 2, 2, 220, 221, 7, 85, 2, 2, 221, 222, 7, 123, 2, 2, 222, 223, 7, 117, 2, 2, 223, 224, 7, 118, 2, 2, 224, 225, 7, 103, 2, 2, 225, 226, 7, 111, 2, 2, 226, 227, 7, 48, 2, 2, 227, 228, 7, 113, 2, 2, 228, 229, 7, 119, 2, 2, 229, 230, 7, 118, 2, 2, 230, 231, 7, 48, 2, 2, 231, 232, 7, 114, 2, 2, 232, 233, 7, 116, 2, 2, 233, 234, 7, 107, 2, 2, 234, 235, 7, 112, 2, 2, 235, 236, 7, 118, 2, 2, 236, 237, 7, 110, 2, 2, 237, 238, 7, 112, 2, 2, 238, 239, 3, 2, 2, 2, 239, 240, 7, 42, 2, 2, 240, 241, 5, 15, 8, 2, 241, 242, 7, 43, 2, 2, 242, 243, 7, 61, 2, 2, 243, 258, 3, 2, 2, 2, 244, 245, 5, 19, 10, 2, 245, 246, 7, 63, 2, 2, 246, 247, 5, 15, 8, 2, 247, 248, 7, 61, 2, 2, 248, 258, 3, 2, 2, 2, 249, 250, 5, 19, 10, 2, 250, 251, 7, 93, 2, 2, 251, 252, 5, 15, 8, 2, 252, 253, 7, 95, 2, 2, 253, 254, 7, 63, 2, 2, 254, 255, 5, 15, 8, 2, 255, 256, 7, 61, 2, 2, 256, 258, 3, 2, 2, 2, 257, 181, 3, 2, 2, 2, 257, 189, 3, 2, 2, 2, 257, 202, 3, 2, 2, 2, 257, 220, 3, 2, 2, 2, 257, 244, 3, 2, 2, 2, 257, 249, 3, 2, 2, 2, 258, 14, 3, 2, 2, 2, 259, 317, 3, 2, 2, 2, 260, 261, 5, 27, 14, 2, 261, 262, 5, 17, 9, 2, 262, 317, 3, 2, 2, 2, 263, 264, 7, 118, 2, 2, 264, 265, 7, 116, 2, 2, 265, 266, 7, 119, 2, 2, 266, 267, 7, 103, 2, 2, 267, 268, 3, 2, 2, 2, 268, 317, 5, 17, 9, 2, 269, 270, 7, 104, 2, 2, 270, 271, 7, 99, 2, 2, 271, 272, 7, 110, 2, 2, 272, 273, 7, 117, 2, 2, 273, 274, 7, 103, 2, 2, 274, 275, 3, 2, 2, 2, 275, 317, 5, 17, 9, 2, 276, 277, 5, 19, 10, 2, 277, 278, 5, 17, 9, 2, 278, 317, 3, 2, 2, 2, 279, 280, 7, 118, 2, 2, 280, 281, 7, 106, 2, 2, 281, 282, 7, 107, 2, 2, 282, 283, 7, 117, 2, 2, 283, 284, 3, 2, 2, 2, 284, 317, 5, 17, 9, 2, 285, 286, 7, 112, 2, 2, 286, 287, 7, 103, 2, 2, 287, 288, 7, 121, 2, 2, 288, 289, 3, 2, 2, 2, 289, 290, 7, 107, 2, 2, 290, 291, 7, 112, 2, 2, 291, 292, 7, 118, 2, 2, 292, 293, 3, 2, 2, 2, 293, 294, 7, 93, 2, 2, 294, 295, 5, 15, 8, 2, 295, 296, 7, 95, 2, 2, 296, 297, 5, 17, 9, 2, 297, 317, 3, 2, 2, 2, 298, 299, 7, 112, 2, 2, 299, 300, 7, 103, 2, 2, 300, 301, 7, 121, 2, 2, 301, 302, 3, 2, 2, 2, 302, 303, 5, 19, 10, 2, 303, 304, 7, 42, 2, 2, 304, 305, 7, 43, 2, 2, 305, 306, 5, 17, 9, 2, 306, 317, 3, 2, 2, 2, 307, 308, 7, 35, 2, 2, 308, 309, 5, 15, 8, 2, 309, 310, 5, 17, 9, 2, 310, 317, 3, 2, 2, 2, 311, 312, 7, 42, 2, 2, 312, 313, 5, 15, 8, 2, 313, 314, 7, 43, 2, 2, 314, 315, 5, 17, 9, 2, 315, 317, 3, 2, 2, 2, 316, 259, 3, 2, 2, 2, 316, 260, 3, 2, 2, 2, 316, 263, 3, 2, 2, 2, 316, 269, 3, 2, 2, 2, 316, 276, 3, 2, 2, 2, 316, 279, 3, 2, 2, 2, 316, 285, 3, 2, 2, 2, 316, 298, 3, 2, 2, 2, 316, 307, 3, 2, 2, 2, 316, 311, 3, 2, 2, 2, 317, 16, 3, 2, 2, 2, 318, 319, 7, 40, 2, 2, 319, 322, 7, 40, 2, 2, 320, 322, 9, 2, 2, 2, 321, 318, 3, 2, 2, 2, 321, 320, 3, 2, 2, 2, 322, 323, 3, 2, 2, 2, 323, 352, 5, 15, 8, 2, 324, 325, 7, 93, 2, 2, 325, 326, 5, 15, 8, 2, 326, 327, 7, 95, 2, 2, 327, 352, 3, 2, 2, 2, 328, 329, 7, 48, 2, 2, 329, 330, 7, 110, 2, 2, 330, 331, 7, 103, 2, 2, 331, 332, 7, 112, 2, 2, 332, 333, 7, 105, 2, 2, 333, 334, 7, 118, 2, 2, 334, 352, 7, 106, 2, 2, 335, 336, 7, 48, 2, 2, 336, 337, 5, 19, 10, 2, 337, 346, 7, 42, 2, 2, 338, 343, 5, 15, 8, 2, 339, 340, 7, 46, 2, 2, 340, 342, 5, 15, 8, 2, 341, 339, 3, 2, 2, 2, 342, 345, 3, 2, 2, 2, 343, 341, 3, 2, 2, 2, 343, 344, 3, 2, 2, 2, 344, 347, 3, 2, 2, 2, 345, 343, 3, 2, 2, 2, 346, 338, 3, 2, 2, 2, 346, 347, 3, 2, 2, 2, 347, 348, 3, 2, 2, 2, 348, 349, 7, 43, 2, 2, 349, 352, 3, 2, 2, 2, 350, 352, 3, 2, 2, 2, 351, 321, 3, 2, 2, 2, 351, 324, 3, 2, 2, 2, 351, 328, 3, 2, 2, 2, 351, 335, 3, 2, 2, 2, 351, 350, 3, 2, 2, 2, 352, 18, 3, 2, 2, 2, 353, 354, 5, 25, 13, 2, 354, 20, 3, 2, 2, 2, 355, 356, 7, 49, 2, 2, 356, 357, 7, 44, 2, 2, 357, 361, 3, 2, 2, 2, 358, 360, 11, 2, 2, 2, 359, 358, 3, 2, 2, 2, 360, 363, 3, 2, 2, 2, 361, 362, 3, 2, 2, 2, 361, 359, 3, 2, 2, 2, 362, 364, 3, 2, 2, 2, 363, 361, 3, 2, 2, 2, 364, 365, 7, 44, 2, 2, 365, 366, 7, 49, 2, 2, 366, 367, 3, 2, 2, 2, 367, 368, 8, 11, 2, 2, 368, 22, 3, 2, 2, 2, 369, 370, 7, 49, 2, 2, 370, 371, 7, 49, 2, 2, 371, 375, 3, 2, 2, 2, 372, 374, 10, 3, 2, 2, 373, 372, 3, 2, 2, 2, 374, 377, 3, 2, 2, 2, 375, 373, 3, 2, 2, 2, 375, 376, 3, 2, 2, 2, 376, 378, 3, 2, 2, 2, 377, 375, 3, 2, 2, 2, 378, 379, 8, 12, 2, 2, 379, 24, 3, 2, 2, 2, 380, 381, 9, 4, 2, 2, 381, 382, 9, 5, 2, 2, 382, 26, 3, 2, 2, 2, 383, 385, 9, 6, 2, 2, 384, 383, 3, 2, 2, 2, 385, 388, 3, 2, 2, 2, 386, 384, 3, 2, 2, 2, 386, 387, 3, 2, 2, 2, 387, 28, 3, 2, 2, 2, 388, 386, 3, 2, 2, 2, 21, 2, 94, 100, 106, 132, 152, 155, 162, 168, 185, 257, 316, 321, 343, 346, 351, 361, 375, 386, 3, 8, 2, 2]
\ No newline at end of file
diff --git a/New folder/gen/q2Lexer.java b/New folder/gen/q2Lexer.java
new file mode 100644
index 0000000..9bd876d
--- /dev/null
+++ b/New folder/gen/q2Lexer.java
@@ -0,0 +1,249 @@
+// Generated from C:/Users/asus/Desktop\q2.g4 by ANTLR 4.9.1
+import org.antlr.v4.runtime.Lexer;
+import org.antlr.v4.runtime.CharStream;
+import org.antlr.v4.runtime.Token;
+import org.antlr.v4.runtime.TokenStream;
+import org.antlr.v4.runtime.*;
+import org.antlr.v4.runtime.atn.*;
+import org.antlr.v4.runtime.dfa.DFA;
+import org.antlr.v4.runtime.misc.*;
+
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
+public class q2Lexer extends Lexer {
+ static { RuntimeMetaData.checkVersion("4.9.1", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
+ public static final int
+ MainClass=1, ClassDeclaration=2, VarDeclaration=3, Type=4, MethodDeclaration=5,
+ Statement=6, Expression=7, Expression_prim=8, Identifier=9, COMMENT=10,
+ LINE_COMMENT=11, IDENTIFIER=12, INTEGER_LITERAL=13;
+ public static String[] channelNames = {
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
+ };
+
+ public static String[] modeNames = {
+ "DEFAULT_MODE"
+ };
+
+ private static String[] makeRuleNames() {
+ return new String[] {
+ "MainClass", "ClassDeclaration", "VarDeclaration", "Type", "MethodDeclaration",
+ "Statement", "Expression", "Expression_prim", "Identifier", "COMMENT",
+ "LINE_COMMENT", "IDENTIFIER", "INTEGER_LITERAL"
+ };
+ }
+ public static final String[] ruleNames = makeRuleNames();
+
+ private static String[] makeLiteralNames() {
+ return new String[] {
+ };
+ }
+ private static final String[] _LITERAL_NAMES = makeLiteralNames();
+ private static String[] makeSymbolicNames() {
+ return new String[] {
+ null, "MainClass", "ClassDeclaration", "VarDeclaration", "Type", "MethodDeclaration",
+ "Statement", "Expression", "Expression_prim", "Identifier", "COMMENT",
+ "LINE_COMMENT", "IDENTIFIER", "INTEGER_LITERAL"
+ };
+ }
+ private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
+ public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
+
+ /**
+ * @deprecated Use {@link #VOCABULARY} instead.
+ */
+ @Deprecated
+ public static final String[] tokenNames;
+ static {
+ tokenNames = new String[_SYMBOLIC_NAMES.length];
+ for (int i = 0; i < tokenNames.length; i++) {
+ tokenNames[i] = VOCABULARY.getLiteralName(i);
+ if (tokenNames[i] == null) {
+ tokenNames[i] = VOCABULARY.getSymbolicName(i);
+ }
+
+ if (tokenNames[i] == null) {
+ tokenNames[i] = "";
+ }
+ }
+ }
+
+ @Override
+ @Deprecated
+ public String[] getTokenNames() {
+ return tokenNames;
+ }
+
+ @Override
+
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
+
+ public q2Lexer(CharStream input) {
+ super(input);
+ _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
+ }
+
+ @Override
+ public String getGrammarFileName() { return "q2.g4"; }
+
+ @Override
+ public String[] getRuleNames() { return ruleNames; }
+
+ @Override
+ public String getSerializedATN() { return _serializedATN; }
+
+ @Override
+ public String[] getChannelNames() { return channelNames; }
+
+ @Override
+ public String[] getModeNames() { return modeNames; }
+
+ @Override
+ public ATN getATN() { return _ATN; }
+
+ public static final String _serializedATN =
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\17\u0185\b\1\4\2"+
+ "\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4"+
+ "\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2"+
+ "\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3"+
+ "\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2"+
+ "\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3"+
+ "\3\3\3\3\3\3\3\5\3_\n\3\3\3\3\3\7\3c\n\3\f\3\16\3f\13\3\3\3\7\3i\n\3\f"+
+ "\3\16\3l\13\3\3\3\3\3\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5"+
+ "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u0085\n\5\3\6\3\6\3\6\3\6\3\6"+
+ "\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\7\6\u0097\n\6\f\6\16\6\u009a"+
+ "\13\6\5\6\u009c\n\6\3\6\3\6\3\6\7\6\u00a1\n\6\f\6\16\6\u00a4\13\6\3\6"+
+ "\7\6\u00a7\n\6\f\6\16\6\u00aa\13\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6"+
+ "\3\6\3\7\3\7\7\7\u00b8\n\7\f\7\16\7\u00bb\13\7\3\7\3\7\3\7\3\7\3\7\3\7"+
+ "\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3"+
+ "\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7"+
+ "\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3"+
+ "\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\5\7\u0102\n\7\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
+ "\3\b\5\b\u013d\n\b\3\t\3\t\3\t\5\t\u0142\n\t\3\t\3\t\3\t\3\t\3\t\3\t\3"+
+ "\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\7\t\u0156\n\t\f\t\16\t"+
+ "\u0159\13\t\5\t\u015b\n\t\3\t\3\t\3\t\5\t\u0160\n\t\3\n\3\n\3\13\3\13"+
+ "\3\13\3\13\7\13\u0168\n\13\f\13\16\13\u016b\13\13\3\13\3\13\3\13\3\13"+
+ "\3\13\3\f\3\f\3\f\3\f\7\f\u0176\n\f\f\f\16\f\u0179\13\f\3\f\3\f\3\r\3"+
+ "\r\3\r\3\16\7\16\u0181\n\16\f\16\16\16\u0184\13\16\3\u0169\2\17\3\3\5"+
+ "\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\3\2\7\5\2,-"+
+ "//>>\4\2\f\f\17\17\5\2C\\aac|\6\2\62;C\\aac|\3\2\62;\2\u01a7\2\3\3\2\2"+
+ "\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3"+
+ "\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2"+
+ "\2\2\33\3\2\2\2\3\35\3\2\2\2\5N\3\2\2\2\7o\3\2\2\2\t\u0084\3\2\2\2\13"+
+ "\u0086\3\2\2\2\r\u0101\3\2\2\2\17\u013c\3\2\2\2\21\u015f\3\2\2\2\23\u0161"+
+ "\3\2\2\2\25\u0163\3\2\2\2\27\u0171\3\2\2\2\31\u017c\3\2\2\2\33\u0182\3"+
+ "\2\2\2\35\36\7e\2\2\36\37\7n\2\2\37 \7c\2\2 !\7u\2\2!\"\7u\2\2\"#\3\2"+
+ "\2\2#$\5\23\n\2$%\7}\2\2%&\7r\2\2&\'\7w\2\2\'(\7d\2\2()\7n\2\2)*\7k\2"+
+ "\2*+\7e\2\2+,\3\2\2\2,-\7u\2\2-.\7v\2\2./\7c\2\2/\60\7v\2\2\60\61\7k\2"+
+ "\2\61\62\7e\2\2\62\63\3\2\2\2\63\64\7x\2\2\64\65\7q\2\2\65\66\7k\2\2\66"+
+ "\67\7f\2\2\678\3\2\2\289\7o\2\29:\7c\2\2:;\7k\2\2;<\7p\2\2<=\3\2\2\2="+
+ ">\7*\2\2>?\7U\2\2?@\7v\2\2@A\7t\2\2AB\7k\2\2BC\7p\2\2CD\7i\2\2DE\3\2\2"+
+ "\2EF\7]\2\2FG\7_\2\2GH\5\23\n\2HI\7+\2\2IJ\7}\2\2JK\5\r\7\2KL\7\177\2"+
+ "\2LM\7\177\2\2M\4\3\2\2\2NO\7e\2\2OP\7n\2\2PQ\7c\2\2QR\7u\2\2RS\7u\2\2"+
+ "ST\3\2\2\2T^\5\23\n\2UV\7g\2\2VW\7z\2\2WX\7v\2\2XY\7g\2\2YZ\7p\2\2Z[\7"+
+ "f\2\2[\\\7u\2\2\\]\3\2\2\2]_\5\23\n\2^U\3\2\2\2^_\3\2\2\2_`\3\2\2\2`d"+
+ "\7}\2\2ac\5\7\4\2ba\3\2\2\2cf\3\2\2\2db\3\2\2\2de\3\2\2\2ej\3\2\2\2fd"+
+ "\3\2\2\2gi\5\13\6\2hg\3\2\2\2il\3\2\2\2jh\3\2\2\2jk\3\2\2\2km\3\2\2\2"+
+ "lj\3\2\2\2mn\7\177\2\2n\6\3\2\2\2op\5\t\5\2pq\5\23\n\2qr\7=\2\2r\b\3\2"+
+ "\2\2st\7k\2\2tu\7p\2\2uv\7v\2\2vw\3\2\2\2wx\7]\2\2x\u0085\7_\2\2yz\7d"+
+ "\2\2z{\7q\2\2{|\7q\2\2|}\7n\2\2}~\7g\2\2~\177\7c\2\2\177\u0085\7p\2\2"+
+ "\u0080\u0081\7k\2\2\u0081\u0082\7p\2\2\u0082\u0085\7v\2\2\u0083\u0085"+
+ "\5\23\n\2\u0084s\3\2\2\2\u0084y\3\2\2\2\u0084\u0080\3\2\2\2\u0084\u0083"+
+ "\3\2\2\2\u0085\n\3\2\2\2\u0086\u0087\7r\2\2\u0087\u0088\7w\2\2\u0088\u0089"+
+ "\7d\2\2\u0089\u008a\7n\2\2\u008a\u008b\7k\2\2\u008b\u008c\7e\2\2\u008c"+
+ "\u008d\3\2\2\2\u008d\u008e\5\t\5\2\u008e\u008f\5\23\n\2\u008f\u009b\7"+
+ "*\2\2\u0090\u0091\5\t\5\2\u0091\u0098\5\23\n\2\u0092\u0093\7.\2\2\u0093"+
+ "\u0094\5\t\5\2\u0094\u0095\5\23\n\2\u0095\u0097\3\2\2\2\u0096\u0092\3"+
+ "\2\2\2\u0097\u009a\3\2\2\2\u0098\u0096\3\2\2\2\u0098\u0099\3\2\2\2\u0099"+
+ "\u009c\3\2\2\2\u009a\u0098\3\2\2\2\u009b\u0090\3\2\2\2\u009b\u009c\3\2"+
+ "\2\2\u009c\u009d\3\2\2\2\u009d\u009e\7+\2\2\u009e\u00a2\7}\2\2\u009f\u00a1"+
+ "\5\7\4\2\u00a0\u009f\3\2\2\2\u00a1\u00a4\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a2"+
+ "\u00a3\3\2\2\2\u00a3\u00a8\3\2\2\2\u00a4\u00a2\3\2\2\2\u00a5\u00a7\5\r"+
+ "\7\2\u00a6\u00a5\3\2\2\2\u00a7\u00aa\3\2\2\2\u00a8\u00a6\3\2\2\2\u00a8"+
+ "\u00a9\3\2\2\2\u00a9\u00ab\3\2\2\2\u00aa\u00a8\3\2\2\2\u00ab\u00ac\7t"+
+ "\2\2\u00ac\u00ad\7g\2\2\u00ad\u00ae\7v\2\2\u00ae\u00af\7w\2\2\u00af\u00b0"+
+ "\7t\2\2\u00b0\u00b1\7p\2\2\u00b1\u00b2\3\2\2\2\u00b2\u00b3\5\17\b\2\u00b3"+
+ "\u00b4\7\177\2\2\u00b4\f\3\2\2\2\u00b5\u00b9\7}\2\2\u00b6\u00b8\5\r\7"+
+ "\2\u00b7\u00b6\3\2\2\2\u00b8\u00bb\3\2\2\2\u00b9\u00b7\3\2\2\2\u00b9\u00ba"+
+ "\3\2\2\2\u00ba\u00bc\3\2\2\2\u00bb\u00b9\3\2\2\2\u00bc\u0102\7\177\2\2"+
+ "\u00bd\u00be\7y\2\2\u00be\u00bf\7j\2\2\u00bf\u00c0\7k\2\2\u00c0\u00c1"+
+ "\7n\2\2\u00c1\u00c2\7g\2\2\u00c2\u00c3\3\2\2\2\u00c3\u00c4\7*\2\2\u00c4"+
+ "\u00c5\5\17\b\2\u00c5\u00c6\7+\2\2\u00c6\u00c7\7}\2\2\u00c7\u00c8\5\r"+
+ "\7\2\u00c8\u00c9\7\177\2\2\u00c9\u0102\3\2\2\2\u00ca\u00cb\7k\2\2\u00cb"+
+ "\u00cc\7h\2\2\u00cc\u00cd\3\2\2\2\u00cd\u00ce\7*\2\2\u00ce\u00cf\5\17"+
+ "\b\2\u00cf\u00d0\7+\2\2\u00d0\u00d1\7}\2\2\u00d1\u00d2\5\r\7\2\u00d2\u00d3"+
+ "\7\177\2\2\u00d3\u00d4\7g\2\2\u00d4\u00d5\7n\2\2\u00d5\u00d6\7u\2\2\u00d6"+
+ "\u00d7\7g\2\2\u00d7\u00d8\3\2\2\2\u00d8\u00d9\7}\2\2\u00d9\u00da\5\r\7"+
+ "\2\u00da\u00db\7\177\2\2\u00db\u0102\3\2\2\2\u00dc\u00dd\7U\2\2\u00dd"+
+ "\u00de\7{\2\2\u00de\u00df\7u\2\2\u00df\u00e0\7v\2\2\u00e0\u00e1\7g\2\2"+
+ "\u00e1\u00e2\7o\2\2\u00e2\u00e3\7\60\2\2\u00e3\u00e4\7q\2\2\u00e4\u00e5"+
+ "\7w\2\2\u00e5\u00e6\7v\2\2\u00e6\u00e7\7\60\2\2\u00e7\u00e8\7r\2\2\u00e8"+
+ "\u00e9\7t\2\2\u00e9\u00ea\7k\2\2\u00ea\u00eb\7p\2\2\u00eb\u00ec\7v\2\2"+
+ "\u00ec\u00ed\7n\2\2\u00ed\u00ee\7p\2\2\u00ee\u00ef\3\2\2\2\u00ef\u00f0"+
+ "\7*\2\2\u00f0\u00f1\5\17\b\2\u00f1\u00f2\7+\2\2\u00f2\u00f3\7=\2\2\u00f3"+
+ "\u0102\3\2\2\2\u00f4\u00f5\5\23\n\2\u00f5\u00f6\7?\2\2\u00f6\u00f7\5\17"+
+ "\b\2\u00f7\u00f8\7=\2\2\u00f8\u0102\3\2\2\2\u00f9\u00fa\5\23\n\2\u00fa"+
+ "\u00fb\7]\2\2\u00fb\u00fc\5\17\b\2\u00fc\u00fd\7_\2\2\u00fd\u00fe\7?\2"+
+ "\2\u00fe\u00ff\5\17\b\2\u00ff\u0100\7=\2\2\u0100\u0102\3\2\2\2\u0101\u00b5"+
+ "\3\2\2\2\u0101\u00bd\3\2\2\2\u0101\u00ca\3\2\2\2\u0101\u00dc\3\2\2\2\u0101"+
+ "\u00f4\3\2\2\2\u0101\u00f9\3\2\2\2\u0102\16\3\2\2\2\u0103\u013d\3\2\2"+
+ "\2\u0104\u0105\5\33\16\2\u0105\u0106\5\21\t\2\u0106\u013d\3\2\2\2\u0107"+
+ "\u0108\7v\2\2\u0108\u0109\7t\2\2\u0109\u010a\7w\2\2\u010a\u010b\7g\2\2"+
+ "\u010b\u010c\3\2\2\2\u010c\u013d\5\21\t\2\u010d\u010e\7h\2\2\u010e\u010f"+
+ "\7c\2\2\u010f\u0110\7n\2\2\u0110\u0111\7u\2\2\u0111\u0112\7g\2\2\u0112"+
+ "\u0113\3\2\2\2\u0113\u013d\5\21\t\2\u0114\u0115\5\23\n\2\u0115\u0116\5"+
+ "\21\t\2\u0116\u013d\3\2\2\2\u0117\u0118\7v\2\2\u0118\u0119\7j\2\2\u0119"+
+ "\u011a\7k\2\2\u011a\u011b\7u\2\2\u011b\u011c\3\2\2\2\u011c\u013d\5\21"+
+ "\t\2\u011d\u011e\7p\2\2\u011e\u011f\7g\2\2\u011f\u0120\7y\2\2\u0120\u0121"+
+ "\3\2\2\2\u0121\u0122\7k\2\2\u0122\u0123\7p\2\2\u0123\u0124\7v\2\2\u0124"+
+ "\u0125\3\2\2\2\u0125\u0126\7]\2\2\u0126\u0127\5\17\b\2\u0127\u0128\7_"+
+ "\2\2\u0128\u0129\5\21\t\2\u0129\u013d\3\2\2\2\u012a\u012b\7p\2\2\u012b"+
+ "\u012c\7g\2\2\u012c\u012d\7y\2\2\u012d\u012e\3\2\2\2\u012e\u012f\5\23"+
+ "\n\2\u012f\u0130\7*\2\2\u0130\u0131\7+\2\2\u0131\u0132\5\21\t\2\u0132"+
+ "\u013d\3\2\2\2\u0133\u0134\7#\2\2\u0134\u0135\5\17\b\2\u0135\u0136\5\21"+
+ "\t\2\u0136\u013d\3\2\2\2\u0137\u0138\7*\2\2\u0138\u0139\5\17\b\2\u0139"+
+ "\u013a\7+\2\2\u013a\u013b\5\21\t\2\u013b\u013d\3\2\2\2\u013c\u0103\3\2"+
+ "\2\2\u013c\u0104\3\2\2\2\u013c\u0107\3\2\2\2\u013c\u010d\3\2\2\2\u013c"+
+ "\u0114\3\2\2\2\u013c\u0117\3\2\2\2\u013c\u011d\3\2\2\2\u013c\u012a\3\2"+
+ "\2\2\u013c\u0133\3\2\2\2\u013c\u0137\3\2\2\2\u013d\20\3\2\2\2\u013e\u013f"+
+ "\7(\2\2\u013f\u0142\7(\2\2\u0140\u0142\t\2\2\2\u0141\u013e\3\2\2\2\u0141"+
+ "\u0140\3\2\2\2\u0142\u0143\3\2\2\2\u0143\u0160\5\17\b\2\u0144\u0145\7"+
+ "]\2\2\u0145\u0146\5\17\b\2\u0146\u0147\7_\2\2\u0147\u0160\3\2\2\2\u0148"+
+ "\u0149\7\60\2\2\u0149\u014a\7n\2\2\u014a\u014b\7g\2\2\u014b\u014c\7p\2"+
+ "\2\u014c\u014d\7i\2\2\u014d\u014e\7v\2\2\u014e\u0160\7j\2\2\u014f\u0150"+
+ "\7\60\2\2\u0150\u0151\5\23\n\2\u0151\u015a\7*\2\2\u0152\u0157\5\17\b\2"+
+ "\u0153\u0154\7.\2\2\u0154\u0156\5\17\b\2\u0155\u0153\3\2\2\2\u0156\u0159"+
+ "\3\2\2\2\u0157\u0155\3\2\2\2\u0157\u0158\3\2\2\2\u0158\u015b\3\2\2\2\u0159"+
+ "\u0157\3\2\2\2\u015a\u0152\3\2\2\2\u015a\u015b\3\2\2\2\u015b\u015c\3\2"+
+ "\2\2\u015c\u015d\7+\2\2\u015d\u0160\3\2\2\2\u015e\u0160\3\2\2\2\u015f"+
+ "\u0141\3\2\2\2\u015f\u0144\3\2\2\2\u015f\u0148\3\2\2\2\u015f\u014f\3\2"+
+ "\2\2\u015f\u015e\3\2\2\2\u0160\22\3\2\2\2\u0161\u0162\5\31\r\2\u0162\24"+
+ "\3\2\2\2\u0163\u0164\7\61\2\2\u0164\u0165\7,\2\2\u0165\u0169\3\2\2\2\u0166"+
+ "\u0168\13\2\2\2\u0167\u0166\3\2\2\2\u0168\u016b\3\2\2\2\u0169\u016a\3"+
+ "\2\2\2\u0169\u0167\3\2\2\2\u016a\u016c\3\2\2\2\u016b\u0169\3\2\2\2\u016c"+
+ "\u016d\7,\2\2\u016d\u016e\7\61\2\2\u016e\u016f\3\2\2\2\u016f\u0170\b\13"+
+ "\2\2\u0170\26\3\2\2\2\u0171\u0172\7\61\2\2\u0172\u0173\7\61\2\2\u0173"+
+ "\u0177\3\2\2\2\u0174\u0176\n\3\2\2\u0175\u0174\3\2\2\2\u0176\u0179\3\2"+
+ "\2\2\u0177\u0175\3\2\2\2\u0177\u0178\3\2\2\2\u0178\u017a\3\2\2\2\u0179"+
+ "\u0177\3\2\2\2\u017a\u017b\b\f\2\2\u017b\30\3\2\2\2\u017c\u017d\t\4\2"+
+ "\2\u017d\u017e\t\5\2\2\u017e\32\3\2\2\2\u017f\u0181\t\6\2\2\u0180\u017f"+
+ "\3\2\2\2\u0181\u0184\3\2\2\2\u0182\u0180\3\2\2\2\u0182\u0183\3\2\2\2\u0183"+
+ "\34\3\2\2\2\u0184\u0182\3\2\2\2\25\2^dj\u0084\u0098\u009b\u00a2\u00a8"+
+ "\u00b9\u0101\u013c\u0141\u0157\u015a\u015f\u0169\u0177\u0182\3\b\2\2";
+ public static final ATN _ATN =
+ new ATNDeserializer().deserialize(_serializedATN.toCharArray());
+ static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
+ }
+}
\ No newline at end of file
diff --git a/New folder/gen/q2Lexer.tokens b/New folder/gen/q2Lexer.tokens
new file mode 100644
index 0000000..64760da
--- /dev/null
+++ b/New folder/gen/q2Lexer.tokens
@@ -0,0 +1,13 @@
+MainClass=1
+ClassDeclaration=2
+VarDeclaration=3
+Type=4
+MethodDeclaration=5
+Statement=6
+Expression=7
+Expression_prim=8
+Identifier=9
+COMMENT=10
+LINE_COMMENT=11
+IDENTIFIER=12
+INTEGER_LITERAL=13
diff --git a/New folder/gen/q2Listener.java b/New folder/gen/q2Listener.java
new file mode 100644
index 0000000..67e0529
--- /dev/null
+++ b/New folder/gen/q2Listener.java
@@ -0,0 +1,19 @@
+// Generated from C:/Users/asus/Desktop\q2.g4 by ANTLR 4.9.1
+import org.antlr.v4.runtime.tree.ParseTreeListener;
+
+/**
+ * This interface defines a complete listener for a parse tree produced by
+ * {@link q2Parser}.
+ */
+public interface q2Listener extends ParseTreeListener {
+ /**
+ * Enter a parse tree produced by {@link q2Parser#program}.
+ * @param ctx the parse tree
+ */
+ void enterProgram(q2Parser.ProgramContext ctx);
+ /**
+ * Exit a parse tree produced by {@link q2Parser#program}.
+ * @param ctx the parse tree
+ */
+ void exitProgram(q2Parser.ProgramContext ctx);
+}
\ No newline at end of file
diff --git a/New folder/gen/q2Parser.java b/New folder/gen/q2Parser.java
new file mode 100644
index 0000000..0f7235a
--- /dev/null
+++ b/New folder/gen/q2Parser.java
@@ -0,0 +1,171 @@
+// Generated from C:/Users/asus/Desktop\q2.g4 by ANTLR 4.9.1
+import org.antlr.v4.runtime.atn.*;
+import org.antlr.v4.runtime.dfa.DFA;
+import org.antlr.v4.runtime.*;
+import org.antlr.v4.runtime.misc.*;
+import org.antlr.v4.runtime.tree.*;
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
+
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
+public class q2Parser extends Parser {
+ static { RuntimeMetaData.checkVersion("4.9.1", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
+ public static final int
+ MainClass=1, ClassDeclaration=2, VarDeclaration=3, Type=4, MethodDeclaration=5,
+ Statement=6, Expression=7, Expression_prim=8, Identifier=9, COMMENT=10,
+ LINE_COMMENT=11, IDENTIFIER=12, INTEGER_LITERAL=13;
+ public static final int
+ RULE_program = 0;
+ private static String[] makeRuleNames() {
+ return new String[] {
+ "program"
+ };
+ }
+ public static final String[] ruleNames = makeRuleNames();
+
+ private static String[] makeLiteralNames() {
+ return new String[] {
+ };
+ }
+ private static final String[] _LITERAL_NAMES = makeLiteralNames();
+ private static String[] makeSymbolicNames() {
+ return new String[] {
+ null, "MainClass", "ClassDeclaration", "VarDeclaration", "Type", "MethodDeclaration",
+ "Statement", "Expression", "Expression_prim", "Identifier", "COMMENT",
+ "LINE_COMMENT", "IDENTIFIER", "INTEGER_LITERAL"
+ };
+ }
+ private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
+ public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
+
+ /**
+ * @deprecated Use {@link #VOCABULARY} instead.
+ */
+ @Deprecated
+ public static final String[] tokenNames;
+ static {
+ tokenNames = new String[_SYMBOLIC_NAMES.length];
+ for (int i = 0; i < tokenNames.length; i++) {
+ tokenNames[i] = VOCABULARY.getLiteralName(i);
+ if (tokenNames[i] == null) {
+ tokenNames[i] = VOCABULARY.getSymbolicName(i);
+ }
+
+ if (tokenNames[i] == null) {
+ tokenNames[i] = "";
+ }
+ }
+ }
+
+ @Override
+ @Deprecated
+ public String[] getTokenNames() {
+ return tokenNames;
+ }
+
+ @Override
+
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
+ @Override
+ public String getGrammarFileName() { return "q2.g4"; }
+
+ @Override
+ public String[] getRuleNames() { return ruleNames; }
+
+ @Override
+ public String getSerializedATN() { return _serializedATN; }
+
+ @Override
+ public ATN getATN() { return _ATN; }
+
+ public q2Parser(TokenStream input) {
+ super(input);
+ _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
+ }
+
+ public static class ProgramContext extends ParserRuleContext {
+ public TerminalNode MainClass() { return getToken(q2Parser.MainClass, 0); }
+ public TerminalNode EOF() { return getToken(q2Parser.EOF, 0); }
+ public List ClassDeclaration() { return getTokens(q2Parser.ClassDeclaration); }
+ public TerminalNode ClassDeclaration(int i) {
+ return getToken(q2Parser.ClassDeclaration, i);
+ }
+ public ProgramContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_program; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof q2Listener ) ((q2Listener)listener).enterProgram(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof q2Listener ) ((q2Listener)listener).exitProgram(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof q2Visitor ) return ((q2Visitor extends T>)visitor).visitProgram(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ProgramContext program() throws RecognitionException {
+ ProgramContext _localctx = new ProgramContext(_ctx, getState());
+ enterRule(_localctx, 0, RULE_program);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(2);
+ match(MainClass);
+ setState(6);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==ClassDeclaration) {
+ {
+ {
+ setState(3);
+ match(ClassDeclaration);
+ }
+ }
+ setState(8);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(9);
+ match(EOF);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static final String _serializedATN =
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\17\16\4\2\t\2\3\2"+
+ "\3\2\7\2\7\n\2\f\2\16\2\n\13\2\3\2\3\2\3\2\2\2\3\2\2\2\2\r\2\4\3\2\2\2"+
+ "\4\b\7\3\2\2\5\7\7\4\2\2\6\5\3\2\2\2\7\n\3\2\2\2\b\6\3\2\2\2\b\t\3\2\2"+
+ "\2\t\13\3\2\2\2\n\b\3\2\2\2\13\f\7\2\2\3\f\3\3\2\2\2\3\b";
+ public static final ATN _ATN =
+ new ATNDeserializer().deserialize(_serializedATN.toCharArray());
+ static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
+ }
+}
\ No newline at end of file
diff --git a/New folder/gen/q2Visitor.java b/New folder/gen/q2Visitor.java
new file mode 100644
index 0000000..57be917
--- /dev/null
+++ b/New folder/gen/q2Visitor.java
@@ -0,0 +1,18 @@
+// Generated from C:/Users/asus/Desktop\q2.g4 by ANTLR 4.9.1
+import org.antlr.v4.runtime.tree.ParseTreeVisitor;
+
+/**
+ * This interface defines a complete generic visitor for a parse tree produced
+ * by {@link q2Parser}.
+ *
+ * @param The return type of the visit operation. Use {@link Void} for
+ * operations with no return type.
+ */
+public interface q2Visitor extends ParseTreeVisitor {
+ /**
+ * Visit a parse tree produced by {@link q2Parser#program}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ T visitProgram(q2Parser.ProgramContext ctx);
+}
\ No newline at end of file
diff --git a/New folder/q2.g4 b/New folder/q2.g4
new file mode 100644
index 0000000..44f1371
--- /dev/null
+++ b/New folder/q2.g4
@@ -0,0 +1,76 @@
+grammar q2;
+
+program: MainClass (ClassDeclaration)* EOF;
+
+
+/* classes */
+
+MainClass:
+ 'class' Identifier '{'
+ 'public' 'static' 'void' 'main' '(' 'String' '[' ']' Identifier ')' '{'
+ Statement
+ '}'
+ '}'
+ ;
+
+ClassDeclaration:
+ 'class' Identifier ('extends' Identifier)? '{' (VarDeclaration)* (MethodDeclaration)* '}'
+ ;
+
+/*variaveis e tipos */
+VarDeclaration:
+ Type Identifier ';'
+ ;
+Type:
+ 'int' '[' ']'
+ |'boolean'
+ |'int'
+ |Identifier
+ ;
+/*metodos*/
+
+MethodDeclaration:
+ 'public' Type Identifier '(' (Type Identifier (',' Type Identifier)* )? ')' '{' (VarDeclaration)* (Statement)* 'return' Expression '}'
+ ;
+
+
+/*statements*/
+
+Statement:
+ '{' ( Statement )* '}'
+ | 'while' '(' Expression ')' '{' Statement '}'
+ | 'if' '(' Expression ')' '{' Statement '}' 'else' '{' Statement '}'
+ | 'System.out.println' '(' Expression ')' ';'
+ | Identifier '=' Expression ';'
+ | Identifier '[' Expression ']' '=' Expression ';'
+ ;
+
+
+/* Expressoes */
+Expression:
+ | INTEGER_LITERAL Expression_prim
+ | 'true' Expression_prim
+ | 'false' Expression_prim
+ | Identifier Expression_prim
+ | 'this' Expression_prim
+ | 'new' 'int' '[' Expression ']' Expression_prim
+ | 'new' Identifier '(' ')' Expression_prim
+ | '!' Expression Expression_prim
+ | '(' Expression ')' Expression_prim
+ ;
+Expression_prim:
+ ( '&&' | '<' | '+' | '-' | '*' ) Expression
+ | '[' Expression ']'
+ | '.' 'length'
+ | '.' Identifier '(' ( Expression ( ',' Expression )* )? ')'
+ |
+ ;
+
+
+Identifier: IDENTIFIER;
+
+/* CTES */
+COMMENT: '/*' .*? '*/' -> skip;
+LINE_COMMENT: '//' ~[\r\n]* -> skip;
+IDENTIFIER: [_a-zA-Z][_a-zA-Z0-9];
+INTEGER_LITERAL: [0-9]*;
\ No newline at end of file