added ast methods, parameter classes
This commit is contained in:
parent
91340125ef
commit
cc05c58159
17
.idea/misc.xml
generated
17
.idea/misc.xml
generated
@ -1,4 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ANTLRGenerationPreferences">
|
||||
<option name="perGrammarGenerationSettings">
|
||||
<list>
|
||||
<PerGrammarGenerationSettings>
|
||||
<option name="fileName" value="$PROJECT_DIR$/src/main/java/Decaf.g4" />
|
||||
<option name="autoGen" value="true" />
|
||||
<option name="outputDir" value="C:\Users\User\DHBW\Compiler\src\main\java" />
|
||||
<option name="libDir" value="" />
|
||||
<option name="encoding" value="" />
|
||||
<option name="pkg" value="gen" />
|
||||
<option name="language" value="" />
|
||||
<option name="generateVisitor" value="true" />
|
||||
</PerGrammarGenerationSettings>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
|
@ -1,7 +1,12 @@
|
||||
import abstractSyntaxTree.Class.FieldDecl;
|
||||
import abstractSyntaxTree.Class.IClass;
|
||||
import abstractSyntaxTree.Class.MethodDecl;
|
||||
import abstractSyntaxTree.Class.RefType;
|
||||
import abstractSyntaxTree.Node;
|
||||
import abstractSyntaxTree.Parameter.Parameter;
|
||||
import abstractSyntaxTree.Parameter.ParameterList;
|
||||
import abstractSyntaxTree.Program;
|
||||
import abstractSyntaxTree.Statement.BlockStatement;
|
||||
import gen.DecafBaseVisitor;
|
||||
import gen.DecafParser;
|
||||
|
||||
@ -13,9 +18,49 @@ public class ASTGenerator extends DecafBaseVisitor<Node> {
|
||||
public Node visitProgram(DecafParser.ProgramContext ctx) {
|
||||
List<RefType> classes = new ArrayList<>();
|
||||
for (DecafParser.ClassdeclContext classDecl : ctx.classdecl()) {
|
||||
Node refType = new RefType(classDecl.Identifier().getText(), new ArrayList<>(), new ArrayList<>());
|
||||
classes.add((RefType) refType);
|
||||
// Node refType = new RefType(classDecl.Identifier().getText(), new ArrayList<>(), new ArrayList<>());
|
||||
classes.add((RefType) visit(classDecl));
|
||||
}
|
||||
return new Program(classes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Node visitClassdecl(DecafParser.ClassdeclContext ctx) {
|
||||
List<FieldDecl> fieldDecls = new ArrayList<>();
|
||||
List<MethodDecl> methodDecls = new ArrayList<>();
|
||||
for (DecafParser.LocalVarDeclContext fieldDecl: ctx.localVarDecl()) {
|
||||
fieldDecls.add((FieldDecl) visit(fieldDecl));
|
||||
}
|
||||
for (DecafParser.MethodDeclContext methodDecl: ctx.methodDecl()) {
|
||||
methodDecls.add((MethodDecl) visit(methodDecl));
|
||||
}
|
||||
return new RefType(ctx.Identifier().getText(),fieldDecls, methodDecls);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Node visitLocalVarDecl(DecafParser.LocalVarDeclContext ctx) {
|
||||
return new FieldDecl(ctx.type().getText(), ctx.Identifier().getText());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Node visitMethodDecl(DecafParser.MethodDeclContext ctx) {
|
||||
String type;
|
||||
String name = ctx.Identifier().getText();
|
||||
List<Parameter> parameterList = new ArrayList<>();
|
||||
if (ctx.Void() != null) {
|
||||
type = "void";
|
||||
} else {
|
||||
type = ctx.type().getText();
|
||||
}
|
||||
DecafParser.ParameterListContext parameterListContext = ctx.parameterList();
|
||||
for (DecafParser.ParameterContext parameter: parameterListContext.parameter()) {
|
||||
parameterList.add((Parameter) visit(parameter));
|
||||
}
|
||||
return new MethodDecl("", type , name, new ParameterList(parameterList), new BlockStatement(new ArrayList<>(), "void"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Node visitParameter(DecafParser.ParameterContext ctx) {
|
||||
return new Parameter(ctx.type().getText(), ctx.Identifier().getText());
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
import abstractSyntaxTree.Class.FieldDecl;
|
||||
import abstractSyntaxTree.Class.MethodDecl;
|
||||
import abstractSyntaxTree.Class.RefType;
|
||||
import abstractSyntaxTree.Parameter.ParameterList;
|
||||
import abstractSyntaxTree.Program;
|
||||
import abstractSyntaxTree.Statement.BlockStatement;
|
||||
import gen.DecafLexer;
|
||||
@ -68,7 +69,7 @@ public class Compiler {
|
||||
|
||||
List<MethodDecl> methodDecls = new ArrayList<>();
|
||||
|
||||
MethodDecl methodDecl = new MethodDecl("ClassA", "int", "m", new ArrayList<>(), new BlockStatement(new ArrayList<>(), "void"));
|
||||
MethodDecl methodDecl = new MethodDecl("ClassA", "int", "m", new ParameterList(new ArrayList<>()), new BlockStatement(new ArrayList<>(), "void"));
|
||||
methodDecls.add(methodDecl);
|
||||
|
||||
// MethodDecl methodDecl2 = new MethodDecl("ClassA", "int", "m", new ArrayList<>(), new ArrayList<>());
|
||||
|
@ -3,6 +3,7 @@ package abstractSyntaxTree.Class;
|
||||
import TypeCheck.AbstractType;
|
||||
import TypeCheck.TypeCheckHelper;
|
||||
import TypeCheck.TypeCheckResult;
|
||||
import abstractSyntaxTree.Node;
|
||||
import abstractSyntaxTree.Program;
|
||||
import org.objectweb.asm.ClassWriter;
|
||||
|
||||
@ -10,9 +11,9 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class FieldDecl extends AbstractType implements IClass{
|
||||
public class FieldDecl extends AbstractType implements IClass, Node {
|
||||
|
||||
public String type; // from parser
|
||||
public String type; // from parser
|
||||
public String identifier; // from parser
|
||||
|
||||
public FieldDecl(String type, String identifier){
|
||||
|
@ -1,6 +1,8 @@
|
||||
package abstractSyntaxTree.Class;
|
||||
|
||||
import TypeCheck.TypeCheckResult;
|
||||
import abstractSyntaxTree.Node;
|
||||
import abstractSyntaxTree.Parameter.ParameterList;
|
||||
import abstractSyntaxTree.Program;
|
||||
import abstractSyntaxTree.Statement.BlockStatement;
|
||||
import abstractSyntaxTree.Statement.IStatement;
|
||||
@ -10,17 +12,17 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class MethodDecl implements IClass {
|
||||
public class MethodDecl implements IClass, Node {
|
||||
|
||||
public String classThatContainsMethod;
|
||||
public String name;
|
||||
public List<String> parameters;
|
||||
public ParameterList parameters;
|
||||
public String returnType;
|
||||
public BlockStatement codeBlock;
|
||||
|
||||
public Map<String, String> localVars;
|
||||
|
||||
public MethodDecl(String classThatContainsMethod, String returnType, String name, List<String> parameters, BlockStatement codeBlock){
|
||||
public MethodDecl(String classThatContainsMethod, String returnType, String name, ParameterList parameters, BlockStatement codeBlock){
|
||||
this.classThatContainsMethod = classThatContainsMethod;
|
||||
this.returnType = returnType;
|
||||
this.name = name;
|
||||
|
13
src/main/java/abstractSyntaxTree/Parameter/Parameter.java
Normal file
13
src/main/java/abstractSyntaxTree/Parameter/Parameter.java
Normal file
@ -0,0 +1,13 @@
|
||||
package abstractSyntaxTree.Parameter;
|
||||
|
||||
import abstractSyntaxTree.Node;
|
||||
|
||||
public class Parameter implements Node {
|
||||
public String type;
|
||||
public String identifier;
|
||||
|
||||
public Parameter(String type, String identifier) {
|
||||
this.type = type;
|
||||
this.identifier = identifier;
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package abstractSyntaxTree.Parameter;
|
||||
|
||||
import abstractSyntaxTree.Node;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ParameterList implements Node {
|
||||
public List<Parameter> parameterList;
|
||||
|
||||
public ParameterList(List<Parameter> parameterList) {
|
||||
this.parameterList = parameterList;
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,81 +1,81 @@
|
||||
AccessModifierPublic=1
|
||||
MainMethodDecl=2
|
||||
DotOperator=3
|
||||
LineOperator=4
|
||||
ComparisonOperator=5
|
||||
LogicalOpertor=6
|
||||
Assign=7
|
||||
Minus=8
|
||||
Plus=9
|
||||
Multipilkation=10
|
||||
Division=11
|
||||
Modulo=12
|
||||
Greater=13
|
||||
Less=14
|
||||
GreaterEqual=15
|
||||
LessEqual=16
|
||||
Equal=17
|
||||
NotEqual=18
|
||||
Not=19
|
||||
And=20
|
||||
Or=21
|
||||
Dot=22
|
||||
OpenRoundBracket=23
|
||||
ClosedRoundBracket=24
|
||||
OpenCurlyBracket=25
|
||||
ClosedCurlyBracket=26
|
||||
Semicolon=27
|
||||
Comma=28
|
||||
Class=29
|
||||
This=30
|
||||
While=31
|
||||
If=32
|
||||
Else=33
|
||||
Return=34
|
||||
New=35
|
||||
Identifier=36
|
||||
Void=37
|
||||
Int=38
|
||||
Boolean=39
|
||||
Char=40
|
||||
IntValue=41
|
||||
CharValue=42
|
||||
BooleanValue=43
|
||||
NullValue=44
|
||||
BooleanValue=1
|
||||
NullValue=2
|
||||
AccessModifierPublic=3
|
||||
MainMethodDecl=4
|
||||
Void=5
|
||||
Int=6
|
||||
Boolean=7
|
||||
Char=8
|
||||
DotOperator=9
|
||||
LineOperator=10
|
||||
ComparisonOperator=11
|
||||
LogicalOpertor=12
|
||||
Assign=13
|
||||
Minus=14
|
||||
Plus=15
|
||||
Multipilkation=16
|
||||
Division=17
|
||||
Modulo=18
|
||||
Greater=19
|
||||
Less=20
|
||||
GreaterEqual=21
|
||||
LessEqual=22
|
||||
Equal=23
|
||||
NotEqual=24
|
||||
Not=25
|
||||
And=26
|
||||
Or=27
|
||||
Dot=28
|
||||
OpenRoundBracket=29
|
||||
ClosedRoundBracket=30
|
||||
OpenCurlyBracket=31
|
||||
ClosedCurlyBracket=32
|
||||
Semicolon=33
|
||||
Comma=34
|
||||
Class=35
|
||||
This=36
|
||||
While=37
|
||||
If=38
|
||||
Else=39
|
||||
Return=40
|
||||
New=41
|
||||
IntValue=42
|
||||
CharValue=43
|
||||
Identifier=44
|
||||
WS=45
|
||||
'public'=1
|
||||
'public static void main(String[] args)'=2
|
||||
'='=7
|
||||
'-'=8
|
||||
'+'=9
|
||||
'*'=10
|
||||
'/'=11
|
||||
'%'=12
|
||||
'>'=13
|
||||
'<'=14
|
||||
'>='=15
|
||||
'<='=16
|
||||
'=='=17
|
||||
'!='=18
|
||||
'!'=19
|
||||
'&&'=20
|
||||
'||'=21
|
||||
'.'=22
|
||||
'('=23
|
||||
')'=24
|
||||
'{'=25
|
||||
'}'=26
|
||||
';'=27
|
||||
','=28
|
||||
'class'=29
|
||||
'this'=30
|
||||
'while'=31
|
||||
'if'=32
|
||||
'else'=33
|
||||
'return'=34
|
||||
'new'=35
|
||||
'void'=37
|
||||
'int'=38
|
||||
'bool'=39
|
||||
'char'=40
|
||||
'null'=44
|
||||
'null'=2
|
||||
'public'=3
|
||||
'public static void main(String[] args)'=4
|
||||
'void'=5
|
||||
'int'=6
|
||||
'bool'=7
|
||||
'char'=8
|
||||
'='=13
|
||||
'-'=14
|
||||
'+'=15
|
||||
'*'=16
|
||||
'/'=17
|
||||
'%'=18
|
||||
'>'=19
|
||||
'<'=20
|
||||
'>='=21
|
||||
'<='=22
|
||||
'=='=23
|
||||
'!='=24
|
||||
'!'=25
|
||||
'&&'=26
|
||||
'||'=27
|
||||
'.'=28
|
||||
'('=29
|
||||
')'=30
|
||||
'{'=31
|
||||
'}'=32
|
||||
';'=33
|
||||
','=34
|
||||
'class'=35
|
||||
'this'=36
|
||||
'while'=37
|
||||
'if'=38
|
||||
'else'=39
|
||||
'return'=40
|
||||
'new'=41
|
||||
|
@ -1,4 +1,5 @@
|
||||
package gen;// Generated from C:/Users/dh10krj/OneDrive - Durr Group/Dokumente/S4/Compilerbau/projekt/NichtHaskell/Source/Decaf.g4 by ANTLR 4.13.1
|
||||
// Generated from C:/Users/User/DHBW/Compiler/src/main/java/Decaf.g4 by ANTLR 4.13.1
|
||||
package gen;
|
||||
|
||||
import org.antlr.v4.runtime.ParserRuleContext;
|
||||
import org.antlr.v4.runtime.tree.ErrorNode;
|
||||
@ -59,18 +60,6 @@ public class DecafBaseListener implements DecafListener {
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitMethodDecl(DecafParser.MethodDeclContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterFieldDecl(DecafParser.FieldDeclContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitFieldDecl(DecafParser.FieldDeclContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -95,6 +84,18 @@ public class DecafBaseListener implements DecafListener {
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitParameter(DecafParser.ParameterContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterArgumentList(DecafParser.ArgumentListContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitArgumentList(DecafParser.ArgumentListContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -119,30 +120,6 @@ public class DecafBaseListener implements DecafListener {
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitSubExpression(DecafParser.SubExpressionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterAssignableExpr(DecafParser.AssignableExprContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitAssignableExpr(DecafParser.AssignableExprContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterInstVar(DecafParser.InstVarContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitInstVar(DecafParser.InstVarContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -160,13 +137,37 @@ public class DecafBaseListener implements DecafListener {
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterArgumentList(DecafParser.ArgumentListContext ctx) { }
|
||||
@Override public void enterStatement(DecafParser.StatementContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitArgumentList(DecafParser.ArgumentListContext ctx) { }
|
||||
@Override public void exitStatement(DecafParser.StatementContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterStmtExpr(DecafParser.StmtExprContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitStmtExpr(DecafParser.StmtExprContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterAssignableExpr(DecafParser.AssignableExprContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitAssignableExpr(DecafParser.AssignableExprContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -184,25 +185,13 @@ public class DecafBaseListener implements DecafListener {
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterReceiver(DecafParser.ReceiverContext ctx) { }
|
||||
@Override public void enterInstVar(DecafParser.InstVarContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitReceiver(DecafParser.ReceiverContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterReceivingMethod(DecafParser.ReceivingMethodContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitReceivingMethod(DecafParser.ReceivingMethodContext ctx) { }
|
||||
@Override public void exitInstVar(DecafParser.InstVarContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -275,30 +264,6 @@ public class DecafBaseListener implements DecafListener {
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitNonCalcOperator(DecafParser.NonCalcOperatorContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterStmtExpr(DecafParser.StmtExprContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitStmtExpr(DecafParser.StmtExprContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterStatement(DecafParser.StatementContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitStatement(DecafParser.StatementContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -407,6 +372,30 @@ public class DecafBaseListener implements DecafListener {
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitNewDecl(DecafParser.NewDeclContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterReceiver(DecafParser.ReceiverContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitReceiver(DecafParser.ReceiverContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterReceivingMethod(DecafParser.ReceivingMethodContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitReceivingMethod(DecafParser.ReceivingMethodContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
|
@ -1,4 +1,5 @@
|
||||
package gen;// Generated from C:/Users/dh10krj/OneDrive - Durr Group/Dokumente/S4/Compilerbau/projekt/NichtHaskell/Source/Decaf.g4 by ANTLR 4.13.1
|
||||
// Generated from C:/Users/User/DHBW/Compiler/src/main/java/Decaf.g4 by ANTLR 4.13.1
|
||||
package gen;
|
||||
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
|
||||
|
||||
/**
|
||||
@ -39,13 +40,6 @@ public class DecafBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitMethodDecl(DecafParser.MethodDeclContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitFieldDecl(DecafParser.FieldDeclContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -60,6 +54,13 @@ public class DecafBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitParameter(DecafParser.ParameterContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitArgumentList(DecafParser.ArgumentListContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -74,20 +75,6 @@ public class DecafBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitSubExpression(DecafParser.SubExpressionContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAssignableExpr(DecafParser.AssignableExprContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInstVar(DecafParser.InstVarContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -101,7 +88,21 @@ public class DecafBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitArgumentList(DecafParser.ArgumentListContext ctx) { return visitChildren(ctx); }
|
||||
@Override public T visitStatement(DecafParser.StatementContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitStmtExpr(DecafParser.StmtExprContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAssignableExpr(DecafParser.AssignableExprContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -115,14 +116,7 @@ public class DecafBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitReceiver(DecafParser.ReceiverContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitReceivingMethod(DecafParser.ReceivingMethodContext ctx) { return visitChildren(ctx); }
|
||||
@Override public T visitInstVar(DecafParser.InstVarContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -165,20 +159,6 @@ public class DecafBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitNonCalcOperator(DecafParser.NonCalcOperatorContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitStmtExpr(DecafParser.StmtExprContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitStatement(DecafParser.StatementContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@ -242,6 +222,20 @@ public class DecafBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitNewDecl(DecafParser.NewDeclContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitReceiver(DecafParser.ReceiverContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitReceivingMethod(DecafParser.ReceivingMethodContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,5 @@
|
||||
package gen;// Generated from C:/Users/dh10krj/OneDrive - Durr Group/Dokumente/S4/Compilerbau/projekt/NichtHaskell/Source/Decaf.g4 by ANTLR 4.13.1
|
||||
// Generated from C:/Users/User/DHBW/Compiler/src/main/java/Decaf.g4 by ANTLR 4.13.1
|
||||
package gen;
|
||||
import org.antlr.v4.runtime.Lexer;
|
||||
import org.antlr.v4.runtime.CharStream;
|
||||
import org.antlr.v4.runtime.Token;
|
||||
@ -16,14 +17,14 @@ public class DecafLexer extends Lexer {
|
||||
protected static final PredictionContextCache _sharedContextCache =
|
||||
new PredictionContextCache();
|
||||
public static final int
|
||||
AccessModifierPublic=1, MainMethodDecl=2, DotOperator=3, LineOperator=4,
|
||||
ComparisonOperator=5, LogicalOpertor=6, Assign=7, Minus=8, Plus=9, Multipilkation=10,
|
||||
Division=11, Modulo=12, Greater=13, Less=14, GreaterEqual=15, LessEqual=16,
|
||||
Equal=17, NotEqual=18, Not=19, And=20, Or=21, Dot=22, OpenRoundBracket=23,
|
||||
ClosedRoundBracket=24, OpenCurlyBracket=25, ClosedCurlyBracket=26, Semicolon=27,
|
||||
Comma=28, Class=29, This=30, While=31, If=32, Else=33, Return=34, New=35,
|
||||
Identifier=36, Void=37, Int=38, Boolean=39, Char=40, IntValue=41, CharValue=42,
|
||||
BooleanValue=43, NullValue=44, WS=45;
|
||||
BooleanValue=1, NullValue=2, AccessModifierPublic=3, MainMethodDecl=4,
|
||||
Void=5, Int=6, Boolean=7, Char=8, DotOperator=9, LineOperator=10, ComparisonOperator=11,
|
||||
LogicalOpertor=12, Assign=13, Minus=14, Plus=15, Multipilkation=16, Division=17,
|
||||
Modulo=18, Greater=19, Less=20, GreaterEqual=21, LessEqual=22, Equal=23,
|
||||
NotEqual=24, Not=25, And=26, Or=27, Dot=28, OpenRoundBracket=29, ClosedRoundBracket=30,
|
||||
OpenCurlyBracket=31, ClosedCurlyBracket=32, Semicolon=33, Comma=34, Class=35,
|
||||
This=36, While=37, If=38, Else=39, Return=40, New=41, IntValue=42, CharValue=43,
|
||||
Identifier=44, WS=45;
|
||||
public static String[] channelNames = {
|
||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
||||
};
|
||||
@ -34,39 +35,39 @@ public class DecafLexer extends Lexer {
|
||||
|
||||
private static String[] makeRuleNames() {
|
||||
return new String[] {
|
||||
"AccessModifierPublic", "MainMethodDecl", "DotOperator", "LineOperator",
|
||||
"ComparisonOperator", "LogicalOpertor", "Assign", "Minus", "Plus", "Multipilkation",
|
||||
"Division", "Modulo", "Greater", "Less", "GreaterEqual", "LessEqual",
|
||||
"Equal", "NotEqual", "Not", "And", "Or", "Dot", "OpenRoundBracket", "ClosedRoundBracket",
|
||||
"BooleanValue", "NullValue", "AccessModifierPublic", "MainMethodDecl",
|
||||
"Void", "Int", "Boolean", "Char", "DotOperator", "LineOperator", "ComparisonOperator",
|
||||
"LogicalOpertor", "Assign", "Minus", "Plus", "Multipilkation", "Division",
|
||||
"Modulo", "Greater", "Less", "GreaterEqual", "LessEqual", "Equal", "NotEqual",
|
||||
"Not", "And", "Or", "Dot", "OpenRoundBracket", "ClosedRoundBracket",
|
||||
"OpenCurlyBracket", "ClosedCurlyBracket", "Semicolon", "Comma", "Class",
|
||||
"This", "While", "If", "Else", "Return", "New", "Alpabetic", "Numeric",
|
||||
"ValidIdentSymbols", "Identifier", "Void", "Int", "Boolean", "Char",
|
||||
"IntValue", "CharValue", "BooleanValue", "NullValue", "WS"
|
||||
"This", "While", "If", "Else", "Return", "New", "IntValue", "CharValue",
|
||||
"Alpabetic", "Numeric", "ValidIdentSymbols", "Identifier", "WS"
|
||||
};
|
||||
}
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null, "'public'", "'public static void main(String[] args)'", null, null,
|
||||
null, null, "'='", "'-'", "'+'", "'*'", "'/'", "'%'", "'>'", "'<'", "'>='",
|
||||
"'<='", "'=='", "'!='", "'!'", "'&&'", "'||'", "'.'", "'('", "')'", "'{'",
|
||||
"'}'", "';'", "','", "'class'", "'this'", "'while'", "'if'", "'else'",
|
||||
"'return'", "'new'", null, "'void'", "'int'", "'bool'", "'char'", null,
|
||||
null, null, "'null'"
|
||||
null, null, "'null'", "'public'", "'public static void main(String[] args)'",
|
||||
"'void'", "'int'", "'bool'", "'char'", null, null, null, null, "'='",
|
||||
"'-'", "'+'", "'*'", "'/'", "'%'", "'>'", "'<'", "'>='", "'<='", "'=='",
|
||||
"'!='", "'!'", "'&&'", "'||'", "'.'", "'('", "')'", "'{'", "'}'", "';'",
|
||||
"','", "'class'", "'this'", "'while'", "'if'", "'else'", "'return'",
|
||||
"'new'"
|
||||
};
|
||||
}
|
||||
private static final String[] _LITERAL_NAMES = makeLiteralNames();
|
||||
private static String[] makeSymbolicNames() {
|
||||
return new String[] {
|
||||
null, "AccessModifierPublic", "MainMethodDecl", "DotOperator", "LineOperator",
|
||||
"ComparisonOperator", "LogicalOpertor", "Assign", "Minus", "Plus", "Multipilkation",
|
||||
"Division", "Modulo", "Greater", "Less", "GreaterEqual", "LessEqual",
|
||||
"Equal", "NotEqual", "Not", "And", "Or", "Dot", "OpenRoundBracket", "ClosedRoundBracket",
|
||||
null, "BooleanValue", "NullValue", "AccessModifierPublic", "MainMethodDecl",
|
||||
"Void", "Int", "Boolean", "Char", "DotOperator", "LineOperator", "ComparisonOperator",
|
||||
"LogicalOpertor", "Assign", "Minus", "Plus", "Multipilkation", "Division",
|
||||
"Modulo", "Greater", "Less", "GreaterEqual", "LessEqual", "Equal", "NotEqual",
|
||||
"Not", "And", "Or", "Dot", "OpenRoundBracket", "ClosedRoundBracket",
|
||||
"OpenCurlyBracket", "ClosedCurlyBracket", "Semicolon", "Comma", "Class",
|
||||
"This", "While", "If", "Else", "Return", "New", "Identifier", "Void",
|
||||
"Int", "Boolean", "Char", "IntValue", "CharValue", "BooleanValue", "NullValue",
|
||||
"WS"
|
||||
"This", "While", "If", "Else", "Return", "New", "IntValue", "CharValue",
|
||||
"Identifier", "WS"
|
||||
};
|
||||
}
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
@ -143,190 +144,190 @@ public class DecafLexer extends Lexer {
|
||||
"&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007"+
|
||||
"+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0001\u0000"+
|
||||
"\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0000\u0001\u0000\u0003\u0000k\b\u0000\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002"+
|
||||
"\u0003\u0002\u0093\b\u0002\u0001\u0003\u0001\u0003\u0003\u0003\u0097\b"+
|
||||
"\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001"+
|
||||
"\u0004\u0003\u0004\u009f\b\u0004\u0001\u0005\u0001\u0005\u0003\u0005\u00a3"+
|
||||
"\b\u0005\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007\u0001\b\u0001"+
|
||||
"\b\u0001\t\u0001\t\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001\f\u0001"+
|
||||
"\f\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001"+
|
||||
"\u000f\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001"+
|
||||
"\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001"+
|
||||
"\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001"+
|
||||
"\u0016\u0001\u0016\u0001\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001"+
|
||||
"\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001"+
|
||||
"\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001"+
|
||||
"\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0001"+
|
||||
"\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001f\u0001"+
|
||||
"\u001f\u0001\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001!\u0001!\u0001"+
|
||||
"!\u0001!\u0001!\u0001!\u0001!\u0001\"\u0001\"\u0001\"\u0001\"\u0001#\u0001"+
|
||||
"#\u0001$\u0001$\u0001%\u0001%\u0001%\u0003%\u0102\b%\u0001&\u0001&\u0005"+
|
||||
"&\u0106\b&\n&\f&\u0109\t&\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001"+
|
||||
"(\u0001(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001)\u0001*\u0001"+
|
||||
"*\u0001*\u0001*\u0001*\u0001+\u0005+\u011f\b+\n+\f+\u0122\t+\u0001+\u0004"+
|
||||
"+\u0125\b+\u000b+\f+\u0126\u0001,\u0001,\u0003,\u012b\b,\u0001,\u0001"+
|
||||
",\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0003"+
|
||||
"-\u0138\b-\u0001.\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001/\u0001"+
|
||||
"/\u0000\u00000\u0001\u0001\u0003\u0002\u0005\u0003\u0007\u0004\t\u0005"+
|
||||
"\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n\u0015\u000b\u0017\f\u0019"+
|
||||
"\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011#\u0012%\u0013\'\u0014)\u0015"+
|
||||
"+\u0016-\u0017/\u00181\u00193\u001a5\u001b7\u001c9\u001d;\u001e=\u001f"+
|
||||
"? A!C\"E#G\u0000I\u0000K\u0000M$O%Q&S\'U(W)Y*[+],_-\u0001\u0000\u0006"+
|
||||
"\u0002\u0000AZaz\u0001\u000009\u0002\u0000$$__\u0002\u0000++--\u0002\u0000"+
|
||||
"\n\n\r\r\u0003\u0000\t\n\r\r \u014e\u0000\u0001\u0001\u0000\u0000\u0000"+
|
||||
"\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000"+
|
||||
"\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000"+
|
||||
"\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000\u0013"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000\u0000\u0017"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0019\u0001\u0000\u0000\u0000\u0000\u001b"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000\u0000\u001f"+
|
||||
"\u0001\u0000\u0000\u0000\u0000!\u0001\u0000\u0000\u0000\u0000#\u0001\u0000"+
|
||||
"\u0000\u0000\u0000%\u0001\u0000\u0000\u0000\u0000\'\u0001\u0000\u0000"+
|
||||
"\u0000\u0000)\u0001\u0000\u0000\u0000\u0000+\u0001\u0000\u0000\u0000\u0000"+
|
||||
"-\u0001\u0000\u0000\u0000\u0000/\u0001\u0000\u0000\u0000\u00001\u0001"+
|
||||
"\u0000\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000"+
|
||||
"\u0000\u00007\u0001\u0000\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000"+
|
||||
";\u0001\u0000\u0000\u0000\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001"+
|
||||
"\u0000\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000"+
|
||||
"\u0000\u0000E\u0001\u0000\u0000\u0000\u0000M\u0001\u0000\u0000\u0000\u0000"+
|
||||
"O\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000\u0000S\u0001"+
|
||||
"\u0000\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000"+
|
||||
"\u0000\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001\u0000\u0000\u0000\u0000"+
|
||||
"]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000\u0001a\u0001"+
|
||||
"\u0000\u0000\u0000\u0003h\u0001\u0000\u0000\u0000\u0005\u0092\u0001\u0000"+
|
||||
"\u0000\u0000\u0007\u0096\u0001\u0000\u0000\u0000\t\u009e\u0001\u0000\u0000"+
|
||||
"\u0000\u000b\u00a2\u0001\u0000\u0000\u0000\r\u00a4\u0001\u0000\u0000\u0000"+
|
||||
"\u000f\u00a6\u0001\u0000\u0000\u0000\u0011\u00a8\u0001\u0000\u0000\u0000"+
|
||||
"\u0013\u00aa\u0001\u0000\u0000\u0000\u0015\u00ac\u0001\u0000\u0000\u0000"+
|
||||
"\u0017\u00ae\u0001\u0000\u0000\u0000\u0019\u00b0\u0001\u0000\u0000\u0000"+
|
||||
"\u001b\u00b2\u0001\u0000\u0000\u0000\u001d\u00b4\u0001\u0000\u0000\u0000"+
|
||||
"\u001f\u00b7\u0001\u0000\u0000\u0000!\u00ba\u0001\u0000\u0000\u0000#\u00bd"+
|
||||
"\u0001\u0000\u0000\u0000%\u00c0\u0001\u0000\u0000\u0000\'\u00c2\u0001"+
|
||||
"\u0000\u0000\u0000)\u00c5\u0001\u0000\u0000\u0000+\u00c8\u0001\u0000\u0000"+
|
||||
"\u0000-\u00ca\u0001\u0000\u0000\u0000/\u00cc\u0001\u0000\u0000\u00001"+
|
||||
"\u00ce\u0001\u0000\u0000\u00003\u00d0\u0001\u0000\u0000\u00005\u00d2\u0001"+
|
||||
"\u0000\u0000\u00007\u00d4\u0001\u0000\u0000\u00009\u00d6\u0001\u0000\u0000"+
|
||||
"\u0000;\u00dc\u0001\u0000\u0000\u0000=\u00e1\u0001\u0000\u0000\u0000?"+
|
||||
"\u00e7\u0001\u0000\u0000\u0000A\u00ea\u0001\u0000\u0000\u0000C\u00ef\u0001"+
|
||||
"\u0000\u0000\u0000E\u00f6\u0001\u0000\u0000\u0000G\u00fa\u0001\u0000\u0000"+
|
||||
"\u0000I\u00fc\u0001\u0000\u0000\u0000K\u0101\u0001\u0000\u0000\u0000M"+
|
||||
"\u0103\u0001\u0000\u0000\u0000O\u010a\u0001\u0000\u0000\u0000Q\u010f\u0001"+
|
||||
"\u0000\u0000\u0000S\u0113\u0001\u0000\u0000\u0000U\u0118\u0001\u0000\u0000"+
|
||||
"\u0000W\u0120\u0001\u0000\u0000\u0000Y\u0128\u0001\u0000\u0000\u0000["+
|
||||
"\u0137\u0001\u0000\u0000\u0000]\u0139\u0001\u0000\u0000\u0000_\u013e\u0001"+
|
||||
"\u0000\u0000\u0000ab\u0005p\u0000\u0000bc\u0005u\u0000\u0000cd\u0005b"+
|
||||
"\u0000\u0000de\u0005l\u0000\u0000ef\u0005i\u0000\u0000fg\u0005c\u0000"+
|
||||
"\u0000g\u0002\u0001\u0000\u0000\u0000hi\u0005p\u0000\u0000ij\u0005u\u0000"+
|
||||
"\u0000jk\u0005b\u0000\u0000kl\u0005l\u0000\u0000lm\u0005i\u0000\u0000"+
|
||||
"mn\u0005c\u0000\u0000no\u0005 \u0000\u0000op\u0005s\u0000\u0000pq\u0005"+
|
||||
"t\u0000\u0000qr\u0005a\u0000\u0000rs\u0005t\u0000\u0000st\u0005i\u0000"+
|
||||
"\u0000tu\u0005c\u0000\u0000uv\u0005 \u0000\u0000vw\u0005v\u0000\u0000"+
|
||||
"wx\u0005o\u0000\u0000xy\u0005i\u0000\u0000yz\u0005d\u0000\u0000z{\u0005"+
|
||||
" \u0000\u0000{|\u0005m\u0000\u0000|}\u0005a\u0000\u0000}~\u0005i\u0000"+
|
||||
"\u0000~\u007f\u0005n\u0000\u0000\u007f\u0080\u0005(\u0000\u0000\u0080"+
|
||||
"\u0081\u0005S\u0000\u0000\u0081\u0082\u0005t\u0000\u0000\u0082\u0083\u0005"+
|
||||
"r\u0000\u0000\u0083\u0084\u0005i\u0000\u0000\u0084\u0085\u0005n\u0000"+
|
||||
"\u0000\u0085\u0086\u0005g\u0000\u0000\u0086\u0087\u0005[\u0000\u0000\u0087"+
|
||||
"\u0088\u0005]\u0000\u0000\u0088\u0089\u0005 \u0000\u0000\u0089\u008a\u0005"+
|
||||
"a\u0000\u0000\u008a\u008b\u0005r\u0000\u0000\u008b\u008c\u0005g\u0000"+
|
||||
"\u0000\u008c\u008d\u0005s\u0000\u0000\u008d\u008e\u0005)\u0000\u0000\u008e"+
|
||||
"\u0004\u0001\u0000\u0000\u0000\u008f\u0093\u0003\u0013\t\u0000\u0090\u0093"+
|
||||
"\u0003\u0015\n\u0000\u0091\u0093\u0003\u0017\u000b\u0000\u0092\u008f\u0001"+
|
||||
"\u0000\u0000\u0000\u0092\u0090\u0001\u0000\u0000\u0000\u0092\u0091\u0001"+
|
||||
"\u0000\u0000\u0000\u0093\u0006\u0001\u0000\u0000\u0000\u0094\u0097\u0003"+
|
||||
"\u0011\b\u0000\u0095\u0097\u0003\u000f\u0007\u0000\u0096\u0094\u0001\u0000"+
|
||||
"\u0000\u0000\u0096\u0095\u0001\u0000\u0000\u0000\u0097\b\u0001\u0000\u0000"+
|
||||
"\u0000\u0098\u009f\u0003\u0019\f\u0000\u0099\u009f\u0003\u001b\r\u0000"+
|
||||
"\u009a\u009f\u0003\u001d\u000e\u0000\u009b\u009f\u0003\u001f\u000f\u0000"+
|
||||
"\u009c\u009f\u0003!\u0010\u0000\u009d\u009f\u0003#\u0011\u0000\u009e\u0098"+
|
||||
"\u0001\u0000\u0000\u0000\u009e\u0099\u0001\u0000\u0000\u0000\u009e\u009a"+
|
||||
"\u0001\u0000\u0000\u0000\u009e\u009b\u0001\u0000\u0000\u0000\u009e\u009c"+
|
||||
"\u0001\u0000\u0000\u0000\u009e\u009d\u0001\u0000\u0000\u0000\u009f\n\u0001"+
|
||||
"\u0000\u0000\u0000\u00a0\u00a3\u0003\'\u0013\u0000\u00a1\u00a3\u0003)"+
|
||||
"\u0014\u0000\u00a2\u00a0\u0001\u0000\u0000\u0000\u00a2\u00a1\u0001\u0000"+
|
||||
"\u0000\u0000\u00a3\f\u0001\u0000\u0000\u0000\u00a4\u00a5\u0005=\u0000"+
|
||||
"\u0000\u00a5\u000e\u0001\u0000\u0000\u0000\u00a6\u00a7\u0005-\u0000\u0000"+
|
||||
"\u00a7\u0010\u0001\u0000\u0000\u0000\u00a8\u00a9\u0005+\u0000\u0000\u00a9"+
|
||||
"\u0012\u0001\u0000\u0000\u0000\u00aa\u00ab\u0005*\u0000\u0000\u00ab\u0014"+
|
||||
"\u0001\u0000\u0000\u0000\u00ac\u00ad\u0005/\u0000\u0000\u00ad\u0016\u0001"+
|
||||
"\u0000\u0000\u0000\u00ae\u00af\u0005%\u0000\u0000\u00af\u0018\u0001\u0000"+
|
||||
"\u0000\u0000\u00b0\u00b1\u0005>\u0000\u0000\u00b1\u001a\u0001\u0000\u0000"+
|
||||
"\u0000\u00b2\u00b3\u0005<\u0000\u0000\u00b3\u001c\u0001\u0000\u0000\u0000"+
|
||||
"\u00b4\u00b5\u0005>\u0000\u0000\u00b5\u00b6\u0005=\u0000\u0000\u00b6\u001e"+
|
||||
"\u0001\u0000\u0000\u0000\u00b7\u00b8\u0005<\u0000\u0000\u00b8\u00b9\u0005"+
|
||||
"=\u0000\u0000\u00b9 \u0001\u0000\u0000\u0000\u00ba\u00bb\u0005=\u0000"+
|
||||
"\u0000\u00bb\u00bc\u0005=\u0000\u0000\u00bc\"\u0001\u0000\u0000\u0000"+
|
||||
"\u00bd\u00be\u0005!\u0000\u0000\u00be\u00bf\u0005=\u0000\u0000\u00bf$"+
|
||||
"\u0001\u0000\u0000\u0000\u00c0\u00c1\u0005!\u0000\u0000\u00c1&\u0001\u0000"+
|
||||
"\u0000\u0000\u00c2\u00c3\u0005&\u0000\u0000\u00c3\u00c4\u0005&\u0000\u0000"+
|
||||
"\u00c4(\u0001\u0000\u0000\u0000\u00c5\u00c6\u0005|\u0000\u0000\u00c6\u00c7"+
|
||||
"\u0005|\u0000\u0000\u00c7*\u0001\u0000\u0000\u0000\u00c8\u00c9\u0005."+
|
||||
"\u0000\u0000\u00c9,\u0001\u0000\u0000\u0000\u00ca\u00cb\u0005(\u0000\u0000"+
|
||||
"\u00cb.\u0001\u0000\u0000\u0000\u00cc\u00cd\u0005)\u0000\u0000\u00cd0"+
|
||||
"\u0001\u0000\u0000\u0000\u00ce\u00cf\u0005{\u0000\u0000\u00cf2\u0001\u0000"+
|
||||
"\u0000\u0000\u00d0\u00d1\u0005}\u0000\u0000\u00d14\u0001\u0000\u0000\u0000"+
|
||||
"\u00d2\u00d3\u0005;\u0000\u0000\u00d36\u0001\u0000\u0000\u0000\u00d4\u00d5"+
|
||||
"\u0005,\u0000\u0000\u00d58\u0001\u0000\u0000\u0000\u00d6\u00d7\u0005c"+
|
||||
"\u0000\u0000\u00d7\u00d8\u0005l\u0000\u0000\u00d8\u00d9\u0005a\u0000\u0000"+
|
||||
"\u00d9\u00da\u0005s\u0000\u0000\u00da\u00db\u0005s\u0000\u0000\u00db:"+
|
||||
"\u0001\u0000\u0000\u0000\u00dc\u00dd\u0005t\u0000\u0000\u00dd\u00de\u0005"+
|
||||
"h\u0000\u0000\u00de\u00df\u0005i\u0000\u0000\u00df\u00e0\u0005s\u0000"+
|
||||
"\u0000\u00e0<\u0001\u0000\u0000\u0000\u00e1\u00e2\u0005w\u0000\u0000\u00e2"+
|
||||
"\u00e3\u0005h\u0000\u0000\u00e3\u00e4\u0005i\u0000\u0000\u00e4\u00e5\u0005"+
|
||||
"l\u0000\u0000\u00e5\u00e6\u0005e\u0000\u0000\u00e6>\u0001\u0000\u0000"+
|
||||
"\u0000\u00e7\u00e8\u0005i\u0000\u0000\u00e8\u00e9\u0005f\u0000\u0000\u00e9"+
|
||||
"@\u0001\u0000\u0000\u0000\u00ea\u00eb\u0005e\u0000\u0000\u00eb\u00ec\u0005"+
|
||||
"l\u0000\u0000\u00ec\u00ed\u0005s\u0000\u0000\u00ed\u00ee\u0005e\u0000"+
|
||||
"\u0000\u00eeB\u0001\u0000\u0000\u0000\u00ef\u00f0\u0005r\u0000\u0000\u00f0"+
|
||||
"\u00f1\u0005e\u0000\u0000\u00f1\u00f2\u0005t\u0000\u0000\u00f2\u00f3\u0005"+
|
||||
"u\u0000\u0000\u00f3\u00f4\u0005r\u0000\u0000\u00f4\u00f5\u0005n\u0000"+
|
||||
"\u0000\u00f5D\u0001\u0000\u0000\u0000\u00f6\u00f7\u0005n\u0000\u0000\u00f7"+
|
||||
"\u00f8\u0005e\u0000\u0000\u00f8\u00f9\u0005w\u0000\u0000\u00f9F\u0001"+
|
||||
"\u0000\u0000\u0000\u00fa\u00fb\u0007\u0000\u0000\u0000\u00fbH\u0001\u0000"+
|
||||
"\u0000\u0000\u00fc\u00fd\u0007\u0001\u0000\u0000\u00fdJ\u0001\u0000\u0000"+
|
||||
"\u0000\u00fe\u0102\u0003G#\u0000\u00ff\u0102\u0003I$\u0000\u0100\u0102"+
|
||||
"\u0007\u0002\u0000\u0000\u0101\u00fe\u0001\u0000\u0000\u0000\u0101\u00ff"+
|
||||
"\u0001\u0000\u0000\u0000\u0101\u0100\u0001\u0000\u0000\u0000\u0102L\u0001"+
|
||||
"\u0000\u0000\u0000\u0103\u0107\u0003G#\u0000\u0104\u0106\u0003K%\u0000"+
|
||||
"\u0105\u0104\u0001\u0000\u0000\u0000\u0106\u0109\u0001\u0000\u0000\u0000"+
|
||||
"\u0107\u0105\u0001\u0000\u0000\u0000\u0107\u0108\u0001\u0000\u0000\u0000"+
|
||||
"\u0108N\u0001\u0000\u0000\u0000\u0109\u0107\u0001\u0000\u0000\u0000\u010a"+
|
||||
"\u010b\u0005v\u0000\u0000\u010b\u010c\u0005o\u0000\u0000\u010c\u010d\u0005"+
|
||||
"i\u0000\u0000\u010d\u010e\u0005d\u0000\u0000\u010eP\u0001\u0000\u0000"+
|
||||
"\u0000\u010f\u0110\u0005i\u0000\u0000\u0110\u0111\u0005n\u0000\u0000\u0111"+
|
||||
"\u0112\u0005t\u0000\u0000\u0112R\u0001\u0000\u0000\u0000\u0113\u0114\u0005"+
|
||||
"b\u0000\u0000\u0114\u0115\u0005o\u0000\u0000\u0115\u0116\u0005o\u0000"+
|
||||
"\u0000\u0116\u0117\u0005l\u0000\u0000\u0117T\u0001\u0000\u0000\u0000\u0118"+
|
||||
"\u0119\u0005c\u0000\u0000\u0119\u011a\u0005h\u0000\u0000\u011a\u011b\u0005"+
|
||||
"a\u0000\u0000\u011b\u011c\u0005r\u0000\u0000\u011cV\u0001\u0000\u0000"+
|
||||
"\u0000\u011d\u011f\u0007\u0003\u0000\u0000\u011e\u011d\u0001\u0000\u0000"+
|
||||
"\u0000\u011f\u0122\u0001\u0000\u0000\u0000\u0120\u011e\u0001\u0000\u0000"+
|
||||
"\u0000\u0120\u0121\u0001\u0000\u0000\u0000\u0121\u0124\u0001\u0000\u0000"+
|
||||
"\u0000\u0122\u0120\u0001\u0000\u0000\u0000\u0123\u0125\u0007\u0001\u0000"+
|
||||
"\u0000\u0124\u0123\u0001\u0000\u0000\u0000\u0125\u0126\u0001\u0000\u0000"+
|
||||
"\u0000\u0126\u0124\u0001\u0000\u0000\u0000\u0126\u0127\u0001\u0000\u0000"+
|
||||
"\u0000\u0127X\u0001\u0000\u0000\u0000\u0128\u012a\u0005\'\u0000\u0000"+
|
||||
"\u0129\u012b\b\u0004\u0000\u0000\u012a\u0129\u0001\u0000\u0000\u0000\u012a"+
|
||||
"\u012b\u0001\u0000\u0000\u0000\u012b\u012c\u0001\u0000\u0000\u0000\u012c"+
|
||||
"\u012d\u0005\'\u0000\u0000\u012dZ\u0001\u0000\u0000\u0000\u012e\u012f"+
|
||||
"\u0005t\u0000\u0000\u012f\u0130\u0005r\u0000\u0000\u0130\u0131\u0005u"+
|
||||
"\u0000\u0000\u0131\u0138\u0005e\u0000\u0000\u0132\u0133\u0005f\u0000\u0000"+
|
||||
"\u0133\u0134\u0005a\u0000\u0000\u0134\u0135\u0005l\u0000\u0000\u0135\u0136"+
|
||||
"\u0005s\u0000\u0000\u0136\u0138\u0005e\u0000\u0000\u0137\u012e\u0001\u0000"+
|
||||
"\u0000\u0000\u0137\u0132\u0001\u0000\u0000\u0000\u0138\\\u0001\u0000\u0000"+
|
||||
"\u0000\u0139\u013a\u0005n\u0000\u0000\u013a\u013b\u0005u\u0000\u0000\u013b"+
|
||||
"\u013c\u0005l\u0000\u0000\u013c\u013d\u0005l\u0000\u0000\u013d^\u0001"+
|
||||
"\u0000\u0000\u0000\u013e\u013f\u0007\u0005\u0000\u0000\u013f\u0140\u0001"+
|
||||
"\u0000\u0000\u0000\u0140\u0141\u0006/\u0000\u0000\u0141`\u0001\u0000\u0000"+
|
||||
"\u0000\u000b\u0000\u0092\u0096\u009e\u00a2\u0101\u0107\u0120\u0126\u012a"+
|
||||
"\u0137\u0001\u0006\u0000\u0000";
|
||||
"\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
|
||||
"\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+
|
||||
"\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006"+
|
||||
"\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007\u0001\u0007"+
|
||||
"\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\b\u0003\b\u00b6\b\b\u0001"+
|
||||
"\t\u0001\t\u0003\t\u00ba\b\t\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001"+
|
||||
"\n\u0003\n\u00c2\b\n\u0001\u000b\u0001\u000b\u0003\u000b\u00c6\b\u000b"+
|
||||
"\u0001\f\u0001\f\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000f\u0001"+
|
||||
"\u000f\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0012\u0001"+
|
||||
"\u0012\u0001\u0013\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001"+
|
||||
"\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016\u0001\u0016\u0001"+
|
||||
"\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0019\u0001"+
|
||||
"\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001b\u0001"+
|
||||
"\u001b\u0001\u001c\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001e\u0001"+
|
||||
"\u001e\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001!\u0001!\u0001\"\u0001"+
|
||||
"\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#"+
|
||||
"\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001"+
|
||||
"&\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'"+
|
||||
"\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001)\u0005)\u011f\b)\n"+
|
||||
")\f)\u0122\t)\u0001)\u0004)\u0125\b)\u000b)\f)\u0126\u0001*\u0001*\u0003"+
|
||||
"*\u012b\b*\u0001*\u0001*\u0001+\u0001+\u0001,\u0001,\u0001-\u0001-\u0001"+
|
||||
"-\u0003-\u0136\b-\u0001.\u0001.\u0005.\u013a\b.\n.\f.\u013d\t.\u0001/"+
|
||||
"\u0001/\u0001/\u0001/\u0000\u00000\u0001\u0001\u0003\u0002\u0005\u0003"+
|
||||
"\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n\u0015"+
|
||||
"\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011#\u0012"+
|
||||
"%\u0013\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a5\u001b7\u001c"+
|
||||
"9\u001d;\u001e=\u001f? A!C\"E#G$I%K&M\'O(Q)S*U+W\u0000Y\u0000[\u0000]"+
|
||||
",_-\u0001\u0000\u0006\u0002\u0000++--\u0001\u000009\u0002\u0000\n\n\r"+
|
||||
"\r\u0002\u0000AZaz\u0002\u0000$$__\u0003\u0000\t\n\r\r \u014e\u0000\u0001"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001"+
|
||||
"\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u000f\u0001\u0000\u0000\u0000\u0000\u0011\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0013\u0001\u0000\u0000\u0000\u0000\u0015\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0017\u0001\u0000\u0000\u0000\u0000\u0019\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u001b\u0001\u0000\u0000\u0000\u0000\u001d\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u001f\u0001\u0000\u0000\u0000\u0000!\u0001\u0000\u0000"+
|
||||
"\u0000\u0000#\u0001\u0000\u0000\u0000\u0000%\u0001\u0000\u0000\u0000\u0000"+
|
||||
"\'\u0001\u0000\u0000\u0000\u0000)\u0001\u0000\u0000\u0000\u0000+\u0001"+
|
||||
"\u0000\u0000\u0000\u0000-\u0001\u0000\u0000\u0000\u0000/\u0001\u0000\u0000"+
|
||||
"\u0000\u00001\u0001\u0000\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u0000"+
|
||||
"5\u0001\u0000\u0000\u0000\u00007\u0001\u0000\u0000\u0000\u00009\u0001"+
|
||||
"\u0000\u0000\u0000\u0000;\u0001\u0000\u0000\u0000\u0000=\u0001\u0000\u0000"+
|
||||
"\u0000\u0000?\u0001\u0000\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000"+
|
||||
"C\u0001\u0000\u0000\u0000\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001"+
|
||||
"\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000"+
|
||||
"\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000"+
|
||||
"Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001"+
|
||||
"\u0000\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000"+
|
||||
"\u0000\u0001j\u0001\u0000\u0000\u0000\u0003l\u0001\u0000\u0000\u0000\u0005"+
|
||||
"q\u0001\u0000\u0000\u0000\u0007x\u0001\u0000\u0000\u0000\t\u009f\u0001"+
|
||||
"\u0000\u0000\u0000\u000b\u00a4\u0001\u0000\u0000\u0000\r\u00a8\u0001\u0000"+
|
||||
"\u0000\u0000\u000f\u00ad\u0001\u0000\u0000\u0000\u0011\u00b5\u0001\u0000"+
|
||||
"\u0000\u0000\u0013\u00b9\u0001\u0000\u0000\u0000\u0015\u00c1\u0001\u0000"+
|
||||
"\u0000\u0000\u0017\u00c5\u0001\u0000\u0000\u0000\u0019\u00c7\u0001\u0000"+
|
||||
"\u0000\u0000\u001b\u00c9\u0001\u0000\u0000\u0000\u001d\u00cb\u0001\u0000"+
|
||||
"\u0000\u0000\u001f\u00cd\u0001\u0000\u0000\u0000!\u00cf\u0001\u0000\u0000"+
|
||||
"\u0000#\u00d1\u0001\u0000\u0000\u0000%\u00d3\u0001\u0000\u0000\u0000\'"+
|
||||
"\u00d5\u0001\u0000\u0000\u0000)\u00d7\u0001\u0000\u0000\u0000+\u00da\u0001"+
|
||||
"\u0000\u0000\u0000-\u00dd\u0001\u0000\u0000\u0000/\u00e0\u0001\u0000\u0000"+
|
||||
"\u00001\u00e3\u0001\u0000\u0000\u00003\u00e5\u0001\u0000\u0000\u00005"+
|
||||
"\u00e8\u0001\u0000\u0000\u00007\u00eb\u0001\u0000\u0000\u00009\u00ed\u0001"+
|
||||
"\u0000\u0000\u0000;\u00ef\u0001\u0000\u0000\u0000=\u00f1\u0001\u0000\u0000"+
|
||||
"\u0000?\u00f3\u0001\u0000\u0000\u0000A\u00f5\u0001\u0000\u0000\u0000C"+
|
||||
"\u00f7\u0001\u0000\u0000\u0000E\u00f9\u0001\u0000\u0000\u0000G\u00ff\u0001"+
|
||||
"\u0000\u0000\u0000I\u0104\u0001\u0000\u0000\u0000K\u010a\u0001\u0000\u0000"+
|
||||
"\u0000M\u010d\u0001\u0000\u0000\u0000O\u0112\u0001\u0000\u0000\u0000Q"+
|
||||
"\u0119\u0001\u0000\u0000\u0000S\u0120\u0001\u0000\u0000\u0000U\u0128\u0001"+
|
||||
"\u0000\u0000\u0000W\u012e\u0001\u0000\u0000\u0000Y\u0130\u0001\u0000\u0000"+
|
||||
"\u0000[\u0135\u0001\u0000\u0000\u0000]\u0137\u0001\u0000\u0000\u0000_"+
|
||||
"\u013e\u0001\u0000\u0000\u0000ab\u0005t\u0000\u0000bc\u0005r\u0000\u0000"+
|
||||
"cd\u0005u\u0000\u0000dk\u0005e\u0000\u0000ef\u0005f\u0000\u0000fg\u0005"+
|
||||
"a\u0000\u0000gh\u0005l\u0000\u0000hi\u0005s\u0000\u0000ik\u0005e\u0000"+
|
||||
"\u0000ja\u0001\u0000\u0000\u0000je\u0001\u0000\u0000\u0000k\u0002\u0001"+
|
||||
"\u0000\u0000\u0000lm\u0005n\u0000\u0000mn\u0005u\u0000\u0000no\u0005l"+
|
||||
"\u0000\u0000op\u0005l\u0000\u0000p\u0004\u0001\u0000\u0000\u0000qr\u0005"+
|
||||
"p\u0000\u0000rs\u0005u\u0000\u0000st\u0005b\u0000\u0000tu\u0005l\u0000"+
|
||||
"\u0000uv\u0005i\u0000\u0000vw\u0005c\u0000\u0000w\u0006\u0001\u0000\u0000"+
|
||||
"\u0000xy\u0005p\u0000\u0000yz\u0005u\u0000\u0000z{\u0005b\u0000\u0000"+
|
||||
"{|\u0005l\u0000\u0000|}\u0005i\u0000\u0000}~\u0005c\u0000\u0000~\u007f"+
|
||||
"\u0005 \u0000\u0000\u007f\u0080\u0005s\u0000\u0000\u0080\u0081\u0005t"+
|
||||
"\u0000\u0000\u0081\u0082\u0005a\u0000\u0000\u0082\u0083\u0005t\u0000\u0000"+
|
||||
"\u0083\u0084\u0005i\u0000\u0000\u0084\u0085\u0005c\u0000\u0000\u0085\u0086"+
|
||||
"\u0005 \u0000\u0000\u0086\u0087\u0005v\u0000\u0000\u0087\u0088\u0005o"+
|
||||
"\u0000\u0000\u0088\u0089\u0005i\u0000\u0000\u0089\u008a\u0005d\u0000\u0000"+
|
||||
"\u008a\u008b\u0005 \u0000\u0000\u008b\u008c\u0005m\u0000\u0000\u008c\u008d"+
|
||||
"\u0005a\u0000\u0000\u008d\u008e\u0005i\u0000\u0000\u008e\u008f\u0005n"+
|
||||
"\u0000\u0000\u008f\u0090\u0005(\u0000\u0000\u0090\u0091\u0005S\u0000\u0000"+
|
||||
"\u0091\u0092\u0005t\u0000\u0000\u0092\u0093\u0005r\u0000\u0000\u0093\u0094"+
|
||||
"\u0005i\u0000\u0000\u0094\u0095\u0005n\u0000\u0000\u0095\u0096\u0005g"+
|
||||
"\u0000\u0000\u0096\u0097\u0005[\u0000\u0000\u0097\u0098\u0005]\u0000\u0000"+
|
||||
"\u0098\u0099\u0005 \u0000\u0000\u0099\u009a\u0005a\u0000\u0000\u009a\u009b"+
|
||||
"\u0005r\u0000\u0000\u009b\u009c\u0005g\u0000\u0000\u009c\u009d\u0005s"+
|
||||
"\u0000\u0000\u009d\u009e\u0005)\u0000\u0000\u009e\b\u0001\u0000\u0000"+
|
||||
"\u0000\u009f\u00a0\u0005v\u0000\u0000\u00a0\u00a1\u0005o\u0000\u0000\u00a1"+
|
||||
"\u00a2\u0005i\u0000\u0000\u00a2\u00a3\u0005d\u0000\u0000\u00a3\n\u0001"+
|
||||
"\u0000\u0000\u0000\u00a4\u00a5\u0005i\u0000\u0000\u00a5\u00a6\u0005n\u0000"+
|
||||
"\u0000\u00a6\u00a7\u0005t\u0000\u0000\u00a7\f\u0001\u0000\u0000\u0000"+
|
||||
"\u00a8\u00a9\u0005b\u0000\u0000\u00a9\u00aa\u0005o\u0000\u0000\u00aa\u00ab"+
|
||||
"\u0005o\u0000\u0000\u00ab\u00ac\u0005l\u0000\u0000\u00ac\u000e\u0001\u0000"+
|
||||
"\u0000\u0000\u00ad\u00ae\u0005c\u0000\u0000\u00ae\u00af\u0005h\u0000\u0000"+
|
||||
"\u00af\u00b0\u0005a\u0000\u0000\u00b0\u00b1\u0005r\u0000\u0000\u00b1\u0010"+
|
||||
"\u0001\u0000\u0000\u0000\u00b2\u00b6\u0003\u001f\u000f\u0000\u00b3\u00b6"+
|
||||
"\u0003!\u0010\u0000\u00b4\u00b6\u0003#\u0011\u0000\u00b5\u00b2\u0001\u0000"+
|
||||
"\u0000\u0000\u00b5\u00b3\u0001\u0000\u0000\u0000\u00b5\u00b4\u0001\u0000"+
|
||||
"\u0000\u0000\u00b6\u0012\u0001\u0000\u0000\u0000\u00b7\u00ba\u0003\u001d"+
|
||||
"\u000e\u0000\u00b8\u00ba\u0003\u001b\r\u0000\u00b9\u00b7\u0001\u0000\u0000"+
|
||||
"\u0000\u00b9\u00b8\u0001\u0000\u0000\u0000\u00ba\u0014\u0001\u0000\u0000"+
|
||||
"\u0000\u00bb\u00c2\u0003%\u0012\u0000\u00bc\u00c2\u0003\'\u0013\u0000"+
|
||||
"\u00bd\u00c2\u0003)\u0014\u0000\u00be\u00c2\u0003+\u0015\u0000\u00bf\u00c2"+
|
||||
"\u0003-\u0016\u0000\u00c0\u00c2\u0003/\u0017\u0000\u00c1\u00bb\u0001\u0000"+
|
||||
"\u0000\u0000\u00c1\u00bc\u0001\u0000\u0000\u0000\u00c1\u00bd\u0001\u0000"+
|
||||
"\u0000\u0000\u00c1\u00be\u0001\u0000\u0000\u0000\u00c1\u00bf\u0001\u0000"+
|
||||
"\u0000\u0000\u00c1\u00c0\u0001\u0000\u0000\u0000\u00c2\u0016\u0001\u0000"+
|
||||
"\u0000\u0000\u00c3\u00c6\u00033\u0019\u0000\u00c4\u00c6\u00035\u001a\u0000"+
|
||||
"\u00c5\u00c3\u0001\u0000\u0000\u0000\u00c5\u00c4\u0001\u0000\u0000\u0000"+
|
||||
"\u00c6\u0018\u0001\u0000\u0000\u0000\u00c7\u00c8\u0005=\u0000\u0000\u00c8"+
|
||||
"\u001a\u0001\u0000\u0000\u0000\u00c9\u00ca\u0005-\u0000\u0000\u00ca\u001c"+
|
||||
"\u0001\u0000\u0000\u0000\u00cb\u00cc\u0005+\u0000\u0000\u00cc\u001e\u0001"+
|
||||
"\u0000\u0000\u0000\u00cd\u00ce\u0005*\u0000\u0000\u00ce \u0001\u0000\u0000"+
|
||||
"\u0000\u00cf\u00d0\u0005/\u0000\u0000\u00d0\"\u0001\u0000\u0000\u0000"+
|
||||
"\u00d1\u00d2\u0005%\u0000\u0000\u00d2$\u0001\u0000\u0000\u0000\u00d3\u00d4"+
|
||||
"\u0005>\u0000\u0000\u00d4&\u0001\u0000\u0000\u0000\u00d5\u00d6\u0005<"+
|
||||
"\u0000\u0000\u00d6(\u0001\u0000\u0000\u0000\u00d7\u00d8\u0005>\u0000\u0000"+
|
||||
"\u00d8\u00d9\u0005=\u0000\u0000\u00d9*\u0001\u0000\u0000\u0000\u00da\u00db"+
|
||||
"\u0005<\u0000\u0000\u00db\u00dc\u0005=\u0000\u0000\u00dc,\u0001\u0000"+
|
||||
"\u0000\u0000\u00dd\u00de\u0005=\u0000\u0000\u00de\u00df\u0005=\u0000\u0000"+
|
||||
"\u00df.\u0001\u0000\u0000\u0000\u00e0\u00e1\u0005!\u0000\u0000\u00e1\u00e2"+
|
||||
"\u0005=\u0000\u0000\u00e20\u0001\u0000\u0000\u0000\u00e3\u00e4\u0005!"+
|
||||
"\u0000\u0000\u00e42\u0001\u0000\u0000\u0000\u00e5\u00e6\u0005&\u0000\u0000"+
|
||||
"\u00e6\u00e7\u0005&\u0000\u0000\u00e74\u0001\u0000\u0000\u0000\u00e8\u00e9"+
|
||||
"\u0005|\u0000\u0000\u00e9\u00ea\u0005|\u0000\u0000\u00ea6\u0001\u0000"+
|
||||
"\u0000\u0000\u00eb\u00ec\u0005.\u0000\u0000\u00ec8\u0001\u0000\u0000\u0000"+
|
||||
"\u00ed\u00ee\u0005(\u0000\u0000\u00ee:\u0001\u0000\u0000\u0000\u00ef\u00f0"+
|
||||
"\u0005)\u0000\u0000\u00f0<\u0001\u0000\u0000\u0000\u00f1\u00f2\u0005{"+
|
||||
"\u0000\u0000\u00f2>\u0001\u0000\u0000\u0000\u00f3\u00f4\u0005}\u0000\u0000"+
|
||||
"\u00f4@\u0001\u0000\u0000\u0000\u00f5\u00f6\u0005;\u0000\u0000\u00f6B"+
|
||||
"\u0001\u0000\u0000\u0000\u00f7\u00f8\u0005,\u0000\u0000\u00f8D\u0001\u0000"+
|
||||
"\u0000\u0000\u00f9\u00fa\u0005c\u0000\u0000\u00fa\u00fb\u0005l\u0000\u0000"+
|
||||
"\u00fb\u00fc\u0005a\u0000\u0000\u00fc\u00fd\u0005s\u0000\u0000\u00fd\u00fe"+
|
||||
"\u0005s\u0000\u0000\u00feF\u0001\u0000\u0000\u0000\u00ff\u0100\u0005t"+
|
||||
"\u0000\u0000\u0100\u0101\u0005h\u0000\u0000\u0101\u0102\u0005i\u0000\u0000"+
|
||||
"\u0102\u0103\u0005s\u0000\u0000\u0103H\u0001\u0000\u0000\u0000\u0104\u0105"+
|
||||
"\u0005w\u0000\u0000\u0105\u0106\u0005h\u0000\u0000\u0106\u0107\u0005i"+
|
||||
"\u0000\u0000\u0107\u0108\u0005l\u0000\u0000\u0108\u0109\u0005e\u0000\u0000"+
|
||||
"\u0109J\u0001\u0000\u0000\u0000\u010a\u010b\u0005i\u0000\u0000\u010b\u010c"+
|
||||
"\u0005f\u0000\u0000\u010cL\u0001\u0000\u0000\u0000\u010d\u010e\u0005e"+
|
||||
"\u0000\u0000\u010e\u010f\u0005l\u0000\u0000\u010f\u0110\u0005s\u0000\u0000"+
|
||||
"\u0110\u0111\u0005e\u0000\u0000\u0111N\u0001\u0000\u0000\u0000\u0112\u0113"+
|
||||
"\u0005r\u0000\u0000\u0113\u0114\u0005e\u0000\u0000\u0114\u0115\u0005t"+
|
||||
"\u0000\u0000\u0115\u0116\u0005u\u0000\u0000\u0116\u0117\u0005r\u0000\u0000"+
|
||||
"\u0117\u0118\u0005n\u0000\u0000\u0118P\u0001\u0000\u0000\u0000\u0119\u011a"+
|
||||
"\u0005n\u0000\u0000\u011a\u011b\u0005e\u0000\u0000\u011b\u011c\u0005w"+
|
||||
"\u0000\u0000\u011cR\u0001\u0000\u0000\u0000\u011d\u011f\u0007\u0000\u0000"+
|
||||
"\u0000\u011e\u011d\u0001\u0000\u0000\u0000\u011f\u0122\u0001\u0000\u0000"+
|
||||
"\u0000\u0120\u011e\u0001\u0000\u0000\u0000\u0120\u0121\u0001\u0000\u0000"+
|
||||
"\u0000\u0121\u0124\u0001\u0000\u0000\u0000\u0122\u0120\u0001\u0000\u0000"+
|
||||
"\u0000\u0123\u0125\u0007\u0001\u0000\u0000\u0124\u0123\u0001\u0000\u0000"+
|
||||
"\u0000\u0125\u0126\u0001\u0000\u0000\u0000\u0126\u0124\u0001\u0000\u0000"+
|
||||
"\u0000\u0126\u0127\u0001\u0000\u0000\u0000\u0127T\u0001\u0000\u0000\u0000"+
|
||||
"\u0128\u012a\u0005\'\u0000\u0000\u0129\u012b\b\u0002\u0000\u0000\u012a"+
|
||||
"\u0129\u0001\u0000\u0000\u0000\u012a\u012b\u0001\u0000\u0000\u0000\u012b"+
|
||||
"\u012c\u0001\u0000\u0000\u0000\u012c\u012d\u0005\'\u0000\u0000\u012dV"+
|
||||
"\u0001\u0000\u0000\u0000\u012e\u012f\u0007\u0003\u0000\u0000\u012fX\u0001"+
|
||||
"\u0000\u0000\u0000\u0130\u0131\u0007\u0001\u0000\u0000\u0131Z\u0001\u0000"+
|
||||
"\u0000\u0000\u0132\u0136\u0003W+\u0000\u0133\u0136\u0003Y,\u0000\u0134"+
|
||||
"\u0136\u0007\u0004\u0000\u0000\u0135\u0132\u0001\u0000\u0000\u0000\u0135"+
|
||||
"\u0133\u0001\u0000\u0000\u0000\u0135\u0134\u0001\u0000\u0000\u0000\u0136"+
|
||||
"\\\u0001\u0000\u0000\u0000\u0137\u013b\u0003W+\u0000\u0138\u013a\u0003"+
|
||||
"[-\u0000\u0139\u0138\u0001\u0000\u0000\u0000\u013a\u013d\u0001\u0000\u0000"+
|
||||
"\u0000\u013b\u0139\u0001\u0000\u0000\u0000\u013b\u013c\u0001\u0000\u0000"+
|
||||
"\u0000\u013c^\u0001\u0000\u0000\u0000\u013d\u013b\u0001\u0000\u0000\u0000"+
|
||||
"\u013e\u013f\u0007\u0005\u0000\u0000\u013f\u0140\u0001\u0000\u0000\u0000"+
|
||||
"\u0140\u0141\u0006/\u0000\u0000\u0141`\u0001\u0000\u0000\u0000\u000b\u0000"+
|
||||
"j\u00b5\u00b9\u00c1\u00c5\u0120\u0126\u012a\u0135\u013b\u0001\u0006\u0000"+
|
||||
"\u0000";
|
||||
public static final ATN _ATN =
|
||||
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
|
||||
static {
|
||||
|
@ -1,81 +1,81 @@
|
||||
AccessModifierPublic=1
|
||||
MainMethodDecl=2
|
||||
DotOperator=3
|
||||
LineOperator=4
|
||||
ComparisonOperator=5
|
||||
LogicalOpertor=6
|
||||
Assign=7
|
||||
Minus=8
|
||||
Plus=9
|
||||
Multipilkation=10
|
||||
Division=11
|
||||
Modulo=12
|
||||
Greater=13
|
||||
Less=14
|
||||
GreaterEqual=15
|
||||
LessEqual=16
|
||||
Equal=17
|
||||
NotEqual=18
|
||||
Not=19
|
||||
And=20
|
||||
Or=21
|
||||
Dot=22
|
||||
OpenRoundBracket=23
|
||||
ClosedRoundBracket=24
|
||||
OpenCurlyBracket=25
|
||||
ClosedCurlyBracket=26
|
||||
Semicolon=27
|
||||
Comma=28
|
||||
Class=29
|
||||
This=30
|
||||
While=31
|
||||
If=32
|
||||
Else=33
|
||||
Return=34
|
||||
New=35
|
||||
Identifier=36
|
||||
Void=37
|
||||
Int=38
|
||||
Boolean=39
|
||||
Char=40
|
||||
IntValue=41
|
||||
CharValue=42
|
||||
BooleanValue=43
|
||||
NullValue=44
|
||||
BooleanValue=1
|
||||
NullValue=2
|
||||
AccessModifierPublic=3
|
||||
MainMethodDecl=4
|
||||
Void=5
|
||||
Int=6
|
||||
Boolean=7
|
||||
Char=8
|
||||
DotOperator=9
|
||||
LineOperator=10
|
||||
ComparisonOperator=11
|
||||
LogicalOpertor=12
|
||||
Assign=13
|
||||
Minus=14
|
||||
Plus=15
|
||||
Multipilkation=16
|
||||
Division=17
|
||||
Modulo=18
|
||||
Greater=19
|
||||
Less=20
|
||||
GreaterEqual=21
|
||||
LessEqual=22
|
||||
Equal=23
|
||||
NotEqual=24
|
||||
Not=25
|
||||
And=26
|
||||
Or=27
|
||||
Dot=28
|
||||
OpenRoundBracket=29
|
||||
ClosedRoundBracket=30
|
||||
OpenCurlyBracket=31
|
||||
ClosedCurlyBracket=32
|
||||
Semicolon=33
|
||||
Comma=34
|
||||
Class=35
|
||||
This=36
|
||||
While=37
|
||||
If=38
|
||||
Else=39
|
||||
Return=40
|
||||
New=41
|
||||
IntValue=42
|
||||
CharValue=43
|
||||
Identifier=44
|
||||
WS=45
|
||||
'public'=1
|
||||
'public static void main(String[] args)'=2
|
||||
'='=7
|
||||
'-'=8
|
||||
'+'=9
|
||||
'*'=10
|
||||
'/'=11
|
||||
'%'=12
|
||||
'>'=13
|
||||
'<'=14
|
||||
'>='=15
|
||||
'<='=16
|
||||
'=='=17
|
||||
'!='=18
|
||||
'!'=19
|
||||
'&&'=20
|
||||
'||'=21
|
||||
'.'=22
|
||||
'('=23
|
||||
')'=24
|
||||
'{'=25
|
||||
'}'=26
|
||||
';'=27
|
||||
','=28
|
||||
'class'=29
|
||||
'this'=30
|
||||
'while'=31
|
||||
'if'=32
|
||||
'else'=33
|
||||
'return'=34
|
||||
'new'=35
|
||||
'void'=37
|
||||
'int'=38
|
||||
'bool'=39
|
||||
'char'=40
|
||||
'null'=44
|
||||
'null'=2
|
||||
'public'=3
|
||||
'public static void main(String[] args)'=4
|
||||
'void'=5
|
||||
'int'=6
|
||||
'bool'=7
|
||||
'char'=8
|
||||
'='=13
|
||||
'-'=14
|
||||
'+'=15
|
||||
'*'=16
|
||||
'/'=17
|
||||
'%'=18
|
||||
'>'=19
|
||||
'<'=20
|
||||
'>='=21
|
||||
'<='=22
|
||||
'=='=23
|
||||
'!='=24
|
||||
'!'=25
|
||||
'&&'=26
|
||||
'||'=27
|
||||
'.'=28
|
||||
'('=29
|
||||
')'=30
|
||||
'{'=31
|
||||
'}'=32
|
||||
';'=33
|
||||
','=34
|
||||
'class'=35
|
||||
'this'=36
|
||||
'while'=37
|
||||
'if'=38
|
||||
'else'=39
|
||||
'return'=40
|
||||
'new'=41
|
||||
|
@ -1,4 +1,5 @@
|
||||
package gen;// Generated from C:/Users/dh10krj/OneDrive - Durr Group/Dokumente/S4/Compilerbau/projekt/NichtHaskell/Source/Decaf.g4 by ANTLR 4.13.1
|
||||
// Generated from C:/Users/User/DHBW/Compiler/src/main/java/Decaf.g4 by ANTLR 4.13.1
|
||||
package gen;
|
||||
import org.antlr.v4.runtime.tree.ParseTreeListener;
|
||||
|
||||
/**
|
||||
@ -46,16 +47,6 @@ public interface DecafListener extends ParseTreeListener {
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitMethodDecl(DecafParser.MethodDeclContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#fieldDecl}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterFieldDecl(DecafParser.FieldDeclContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#fieldDecl}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitFieldDecl(DecafParser.FieldDeclContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#parameterList}.
|
||||
* @param ctx the parse tree
|
||||
@ -76,6 +67,16 @@ public interface DecafListener extends ParseTreeListener {
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitParameter(DecafParser.ParameterContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#argumentList}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterArgumentList(DecafParser.ArgumentListContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#argumentList}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitArgumentList(DecafParser.ArgumentListContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#expression}.
|
||||
* @param ctx the parse tree
|
||||
@ -96,26 +97,6 @@ public interface DecafListener extends ParseTreeListener {
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitSubExpression(DecafParser.SubExpressionContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#assignableExpr}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterAssignableExpr(DecafParser.AssignableExprContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#assignableExpr}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitAssignableExpr(DecafParser.AssignableExprContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#instVar}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterInstVar(DecafParser.InstVarContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#instVar}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitInstVar(DecafParser.InstVarContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#methodCall}.
|
||||
* @param ctx the parse tree
|
||||
@ -127,15 +108,35 @@ public interface DecafListener extends ParseTreeListener {
|
||||
*/
|
||||
void exitMethodCall(DecafParser.MethodCallContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#argumentList}.
|
||||
* Enter a parse tree produced by {@link DecafParser#statement}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterArgumentList(DecafParser.ArgumentListContext ctx);
|
||||
void enterStatement(DecafParser.StatementContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#argumentList}.
|
||||
* Exit a parse tree produced by {@link DecafParser#statement}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitArgumentList(DecafParser.ArgumentListContext ctx);
|
||||
void exitStatement(DecafParser.StatementContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#stmtExpr}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterStmtExpr(DecafParser.StmtExprContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#stmtExpr}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitStmtExpr(DecafParser.StmtExprContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#assignableExpr}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterAssignableExpr(DecafParser.AssignableExprContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#assignableExpr}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitAssignableExpr(DecafParser.AssignableExprContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#subReceiver}.
|
||||
* @param ctx the parse tree
|
||||
@ -147,25 +148,15 @@ public interface DecafListener extends ParseTreeListener {
|
||||
*/
|
||||
void exitSubReceiver(DecafParser.SubReceiverContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#receiver}.
|
||||
* Enter a parse tree produced by {@link DecafParser#instVar}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterReceiver(DecafParser.ReceiverContext ctx);
|
||||
void enterInstVar(DecafParser.InstVarContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#receiver}.
|
||||
* Exit a parse tree produced by {@link DecafParser#instVar}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitReceiver(DecafParser.ReceiverContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#receivingMethod}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterReceivingMethod(DecafParser.ReceivingMethodContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#receivingMethod}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitReceivingMethod(DecafParser.ReceivingMethodContext ctx);
|
||||
void exitInstVar(DecafParser.InstVarContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#binaryExpr}.
|
||||
* @param ctx the parse tree
|
||||
@ -226,26 +217,6 @@ public interface DecafListener extends ParseTreeListener {
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitNonCalcOperator(DecafParser.NonCalcOperatorContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#stmtExpr}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterStmtExpr(DecafParser.StmtExprContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#stmtExpr}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitStmtExpr(DecafParser.StmtExprContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#statement}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterStatement(DecafParser.StatementContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#statement}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitStatement(DecafParser.StatementContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#returnStmt}.
|
||||
* @param ctx the parse tree
|
||||
@ -336,6 +307,26 @@ public interface DecafListener extends ParseTreeListener {
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitNewDecl(DecafParser.NewDeclContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#receiver}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterReceiver(DecafParser.ReceiverContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#receiver}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitReceiver(DecafParser.ReceiverContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#receivingMethod}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterReceivingMethod(DecafParser.ReceivingMethodContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link DecafParser#receivingMethod}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitReceivingMethod(DecafParser.ReceivingMethodContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link DecafParser#type}.
|
||||
* @param ctx the parse tree
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,5 @@
|
||||
package gen;// Generated from C:/Users/dh10krj/OneDrive - Durr Group/Dokumente/S4/Compilerbau/projekt/NichtHaskell/Source/Decaf.g4 by ANTLR 4.13.1
|
||||
// Generated from C:/Users/User/DHBW/Compiler/src/main/java/Decaf.g4 by ANTLR 4.13.1
|
||||
package gen;
|
||||
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
|
||||
|
||||
/**
|
||||
@ -33,12 +34,6 @@ public interface DecafVisitor<T> extends ParseTreeVisitor<T> {
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitMethodDecl(DecafParser.MethodDeclContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#fieldDecl}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitFieldDecl(DecafParser.FieldDeclContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#parameterList}.
|
||||
* @param ctx the parse tree
|
||||
@ -51,6 +46,12 @@ public interface DecafVisitor<T> extends ParseTreeVisitor<T> {
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitParameter(DecafParser.ParameterContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#argumentList}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitArgumentList(DecafParser.ArgumentListContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#expression}.
|
||||
* @param ctx the parse tree
|
||||
@ -63,18 +64,6 @@ public interface DecafVisitor<T> extends ParseTreeVisitor<T> {
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitSubExpression(DecafParser.SubExpressionContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#assignableExpr}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAssignableExpr(DecafParser.AssignableExprContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#instVar}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInstVar(DecafParser.InstVarContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#methodCall}.
|
||||
* @param ctx the parse tree
|
||||
@ -82,11 +71,23 @@ public interface DecafVisitor<T> extends ParseTreeVisitor<T> {
|
||||
*/
|
||||
T visitMethodCall(DecafParser.MethodCallContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#argumentList}.
|
||||
* Visit a parse tree produced by {@link DecafParser#statement}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitArgumentList(DecafParser.ArgumentListContext ctx);
|
||||
T visitStatement(DecafParser.StatementContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#stmtExpr}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitStmtExpr(DecafParser.StmtExprContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#assignableExpr}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAssignableExpr(DecafParser.AssignableExprContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#subReceiver}.
|
||||
* @param ctx the parse tree
|
||||
@ -94,17 +95,11 @@ public interface DecafVisitor<T> extends ParseTreeVisitor<T> {
|
||||
*/
|
||||
T visitSubReceiver(DecafParser.SubReceiverContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#receiver}.
|
||||
* Visit a parse tree produced by {@link DecafParser#instVar}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitReceiver(DecafParser.ReceiverContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#receivingMethod}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitReceivingMethod(DecafParser.ReceivingMethodContext ctx);
|
||||
T visitInstVar(DecafParser.InstVarContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#binaryExpr}.
|
||||
* @param ctx the parse tree
|
||||
@ -141,18 +136,6 @@ public interface DecafVisitor<T> extends ParseTreeVisitor<T> {
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitNonCalcOperator(DecafParser.NonCalcOperatorContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#stmtExpr}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitStmtExpr(DecafParser.StmtExprContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#statement}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitStatement(DecafParser.StatementContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#returnStmt}.
|
||||
* @param ctx the parse tree
|
||||
@ -207,6 +190,18 @@ public interface DecafVisitor<T> extends ParseTreeVisitor<T> {
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitNewDecl(DecafParser.NewDeclContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#receiver}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitReceiver(DecafParser.ReceiverContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#receivingMethod}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitReceivingMethod(DecafParser.ReceivingMethodContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link DecafParser#type}.
|
||||
* @param ctx the parse tree
|
||||
|
Loading…
Reference in New Issue
Block a user