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 visitor) { + if ( visitor instanceof q2Visitor ) return ((q2Visitor)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