Merge remote-tracking branch 'origin/master'
# Conflicts: # Source/abstractSyntaxTree/Program.java
This commit is contained in:
commit
777e5b9c5b
@ -8,6 +8,8 @@ import java.util.List;
|
||||
|
||||
public class MethodDecl implements IClass {
|
||||
|
||||
// name
|
||||
|
||||
private HashMap<String, HashMap<String, HashMap<String, String>>> methodContext;
|
||||
private HashMap<String, HashMap<String, String>> typeContext;
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
package abstractSyntaxTree.Modifier;
|
||||
|
||||
public interface IModifier {
|
||||
|
||||
//TODO: Maybe we can just use an enum for the Modifier
|
||||
// if there is no typeCheck and no CodeGen
|
||||
|
||||
// not type or type check
|
||||
|
||||
// visit method for code generation
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
package abstractSyntaxTree.Modifier;
|
||||
|
||||
public class PrivateModifier implements IModifier{
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
package abstractSyntaxTree.Modifier;
|
||||
|
||||
public class PublicModifier implements IModifier{
|
||||
}
|
@ -3,9 +3,7 @@ package abstractSyntaxTree;
|
||||
import TypeCheck.TypeCheckResult;
|
||||
import abstractSyntaxTree.Class.FieldDecl;
|
||||
import abstractSyntaxTree.Datatype.RefType;
|
||||
import org.objectweb.asm.ClassWriter;
|
||||
import org.objectweb.asm.MethodVisitor;
|
||||
import org.objectweb.asm.Opcodes;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -13,10 +11,7 @@ import java.util.List;
|
||||
public class Program {
|
||||
public List<RefType> classes;
|
||||
|
||||
//TODO: Rename typeContext to attributeContext or something
|
||||
public HashMap<String, HashMap<String, String>> typeContext; // (class, (type, identifier))
|
||||
|
||||
//TODO: Change Data structure and make parameter a list
|
||||
public HashMap<String, HashMap<String, HashMap<String, String>>> methodContext; // (class, (returntype, (identifier, parameter)))
|
||||
|
||||
public TypeCheckResult typeCheck() throws Exception{
|
||||
@ -31,14 +26,7 @@ public class Program {
|
||||
|
||||
public void codeGen() throws Exception{
|
||||
for(RefType oneClass : classes){
|
||||
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
|
||||
cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, "oneClass.className",
|
||||
null, "java/lang/Object", null);
|
||||
oneClass.codeGen(cw);
|
||||
cw.visitEnd();
|
||||
byte[] bytecode = cw.toByteArray();
|
||||
|
||||
//Write the bytecode to a .class file
|
||||
oneClass.codeGen();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user