From fe249c5b2a607b0af379b34411012c549f6894bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krau=C3=9F=2C=20Josefine?= Date: Wed, 8 May 2024 15:14:58 +0200 Subject: [PATCH] try to run main --- Source/Compiler.java | 25 +++++++++++++++++++ .../abstractSyntaxTree/Class/FieldDecl.java | 5 ++++ .../abstractSyntaxTree/Class/MethodDecl.java | 9 +++++++ Source/abstractSyntaxTree/Class/RefType.java | 2 ++ Source/abstractSyntaxTree/Program.java | 1 - .../MethodCallStatementExpression.java | 5 ++++ 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 Source/Compiler.java diff --git a/Source/Compiler.java b/Source/Compiler.java new file mode 100644 index 0000000..ad8fd7d --- /dev/null +++ b/Source/Compiler.java @@ -0,0 +1,25 @@ +import abstractSyntaxTree.Class.FieldDecl; +import abstractSyntaxTree.Class.MethodDecl; +import abstractSyntaxTree.Class.RefType; +import abstractSyntaxTree.Program; + +import java.util.ArrayList; +import java.util.List; + +public class Compiler { + + public static void Main(String[] args) throws Exception{ + + // get file + + Program abstractSyntaxTree = new Program(); + List emptyFieldDecl = new ArrayList<>(); + List emptyMethodDecl = new ArrayList<>(); + abstractSyntaxTree.classes.add(new RefType(emptyFieldDecl, emptyMethodDecl, null, null)); + + abstractSyntaxTree.typeCheck(); + + abstractSyntaxTree.codeGen(); + + } +} diff --git a/Source/abstractSyntaxTree/Class/FieldDecl.java b/Source/abstractSyntaxTree/Class/FieldDecl.java index e0a4675..071b559 100644 --- a/Source/abstractSyntaxTree/Class/FieldDecl.java +++ b/Source/abstractSyntaxTree/Class/FieldDecl.java @@ -34,6 +34,11 @@ public class FieldDecl extends AbstractType implements IClass{ //write field table } + @Override + public TypeCheckResult typeCheck() throws Exception { + return null; + } + @Override public void codeGen(ClassWriter cw) { diff --git a/Source/abstractSyntaxTree/Class/MethodDecl.java b/Source/abstractSyntaxTree/Class/MethodDecl.java index d1d5c93..5787166 100644 --- a/Source/abstractSyntaxTree/Class/MethodDecl.java +++ b/Source/abstractSyntaxTree/Class/MethodDecl.java @@ -26,4 +26,13 @@ public class MethodDecl implements IClass { return null; } + @Override + public TypeCheckResult typeCheck() throws Exception { + return null; + } + + @Override + public void codeGen(ClassWriter cw) throws Exception { + + } } diff --git a/Source/abstractSyntaxTree/Class/RefType.java b/Source/abstractSyntaxTree/Class/RefType.java index 291f29c..a0c9fa5 100644 --- a/Source/abstractSyntaxTree/Class/RefType.java +++ b/Source/abstractSyntaxTree/Class/RefType.java @@ -33,6 +33,8 @@ public class RefType extends AbstractType implements IClass { this.methodContext = methodContext; } + + @Override public TypeCheckResult typeCheck() throws Exception { TypeCheckResult result = new TypeCheckResult(); diff --git a/Source/abstractSyntaxTree/Program.java b/Source/abstractSyntaxTree/Program.java index 634e05e..2b86ffa 100644 --- a/Source/abstractSyntaxTree/Program.java +++ b/Source/abstractSyntaxTree/Program.java @@ -3,7 +3,6 @@ package abstractSyntaxTree; import TypeCheck.TypeCheckResult; import abstractSyntaxTree.Class.FieldDecl; import abstractSyntaxTree.Class.MethodDecl; -import abstractSyntaxTree.Datatype.RefType; import org.objectweb.asm.MethodVisitor; import abstractSyntaxTree.Class.RefType; import org.objectweb.asm.ClassWriter; diff --git a/Source/abstractSyntaxTree/StatementExpression/MethodCallStatementExpression.java b/Source/abstractSyntaxTree/StatementExpression/MethodCallStatementExpression.java index 7eb133c..3cfcc98 100644 --- a/Source/abstractSyntaxTree/StatementExpression/MethodCallStatementExpression.java +++ b/Source/abstractSyntaxTree/StatementExpression/MethodCallStatementExpression.java @@ -42,6 +42,11 @@ public class MethodCallStatementExpression extends AbstractType implements IExpr return result; } + @Override + public void codeGen(MethodVisitor mv) throws Exception { + + } + //Errors occur due to the change in parameter in the RefType class @Override public void CodeGen(MethodVisitor mv) throws Exception {