2024-05-02 13:12:39 +02:00
|
|
|
package abstractSyntaxTree.Class;
|
|
|
|
|
2024-05-08 10:10:44 +02:00
|
|
|
import TypeCheck.TypeCheckResult;
|
2024-05-08 14:15:11 +02:00
|
|
|
import org.objectweb.asm.ClassWriter;
|
2024-05-08 14:28:01 +02:00
|
|
|
import org.objectweb.asm.TypeReference;
|
2024-05-08 10:10:44 +02:00
|
|
|
|
2024-05-09 14:20:55 +02:00
|
|
|
import java.util.HashMap;
|
2024-05-08 10:10:44 +02:00
|
|
|
import java.util.List;
|
2024-05-02 13:12:39 +02:00
|
|
|
|
2024-05-08 10:10:44 +02:00
|
|
|
public interface IClass {
|
2024-05-02 13:12:39 +02:00
|
|
|
// visit method for code generation
|
2024-05-08 14:15:11 +02:00
|
|
|
|
2024-05-09 14:20:55 +02:00
|
|
|
TypeCheckResult typeCheck(HashMap<String, HashMap<String, HashMap<String, List<String>>>> methodContext, HashMap<String, HashMap<String, String>> typeContext, List<MethodDecl> fieldsOrMethods) throws Exception;
|
2024-05-08 14:28:01 +02:00
|
|
|
void codeGen(ClassWriter cw) throws Exception;
|
2024-05-08 14:15:11 +02:00
|
|
|
|
2024-05-02 13:12:39 +02:00
|
|
|
}
|