Compare commits
2 Commits
1617e3ec62
...
b8a8a094f4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8a8a094f4 | ||
|
|
fe249c5b2a |
25
Source/Compiler.java
Normal file
25
Source/Compiler.java
Normal file
@@ -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<FieldDecl> emptyFieldDecl = new ArrayList<>();
|
||||
List<MethodDecl> emptyMethodDecl = new ArrayList<>();
|
||||
abstractSyntaxTree.classes.add(new RefType(emptyFieldDecl, emptyMethodDecl, null, null));
|
||||
|
||||
abstractSyntaxTree.typeCheck();
|
||||
|
||||
abstractSyntaxTree.codeGen();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ public class RefType extends AbstractType implements IClass {
|
||||
this.methodContext = methodContext;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public TypeCheckResult typeCheck() throws Exception {
|
||||
TypeCheckResult result = new TypeCheckResult();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user