prettyprinter LLVM en visitor
This commit is contained in:
@@ -1,9 +1,4 @@
|
||||
package TP2.llvm;
|
||||
import TP2.asd.Program.AssignImp;
|
||||
import TP2.asd.Program.BinopExpressionImp;
|
||||
import TP2.asd.Program.ConstImp;
|
||||
import TP2.asd.Program.ProgramImp;
|
||||
import TP2.asd.Program.Return_instrImp;
|
||||
import TP2.llvm.ProgramLLVM.*;
|
||||
|
||||
public interface Interface {
|
||||
@@ -14,51 +9,59 @@ public interface Interface {
|
||||
}
|
||||
|
||||
public interface ProgramLLVMVisitor<H,S> {
|
||||
public S visitProgramLLVM(ProgramLLVMImpl e, H h);
|
||||
public S visitProgramLLVM(ProgramLLVMImpl prog, H h);
|
||||
}
|
||||
|
||||
//////////DefineLLVM (function)
|
||||
public interface DefineLLVM{
|
||||
public <H,S> S accept(DefineLLVMVisitor<H,S> v, H h);
|
||||
public String prettyprinter();
|
||||
}
|
||||
|
||||
public interface DefineLLVMVisitor<H,S> {
|
||||
public S visitProgramLLVM(DefineLLVMImpl e, H h);
|
||||
public S visitDefineLLVM(DefineLLVMImpl define, H h);
|
||||
}
|
||||
|
||||
public interface InstructionLLVM{
|
||||
public <H,S> S accept(InstructionLLVMVisitor<H,S> v, H h);
|
||||
public String prettyprinter();
|
||||
}
|
||||
|
||||
public interface InstructionLLVMVisitor<H,S> {
|
||||
public S visitReturnLLVM(ReturnLLVMImp e, H h);
|
||||
public S visitAssignLLVM(AssignLVMImp e, H h);
|
||||
public S visitReturnLLVM(ReturnLLVMImp instr, H h);
|
||||
public S visitAssignLLVM(AssignLVMImp instr, H h);
|
||||
}
|
||||
|
||||
//////////ExpressionLLVM (expression)
|
||||
public interface ExpressionLLVM{
|
||||
public String prettyprinter();
|
||||
public <H,S> S accept(ExpressionLLVMVisitor<H,S> v, H h);
|
||||
public TypeLLVM getType();
|
||||
}
|
||||
|
||||
public interface ExpressionLLVMVisitor<H,S> {
|
||||
public S visitConstLLVM(ValLLVM e,H h);
|
||||
public S visitBinOpLLVM(BinOpLLVMImp e, H h);
|
||||
}
|
||||
|
||||
public interface ValLLVM extends ExpressionLLVM{
|
||||
public String prettyprinter();
|
||||
}
|
||||
|
||||
public interface IdentifierLLVM{ //globaux @ et local %
|
||||
public interface ExpressionLLVMVisitor<H,S> {
|
||||
public S visitBinOpLLVM(BinOpLLVMImp e, H h);
|
||||
public S visitAllocaLLVM(allocaLLVMImpl e,H h);
|
||||
public S visitLoadLLVM(loadLLVMImpl e,H h);
|
||||
public S visitValLLVM(ValLLVMImpl e,H h);
|
||||
public S visitVarLLVM(VarLLVMImpl e,H h);
|
||||
}
|
||||
|
||||
/*public interface IdentifierLLVM{ //globaux @ et local %
|
||||
public String prettyprinter();
|
||||
}
|
||||
|
||||
public interface IndentifierLLVMVisitor<H,S> {
|
||||
}*/
|
||||
|
||||
public interface TypeLLVM{
|
||||
public String prettyprinter();
|
||||
public <H,S> S accept(TypeLLVMVisitor<H,S> v, H h);
|
||||
public int getNbBit();
|
||||
}
|
||||
|
||||
public interface TypeLLVMVisitor<H,S> {
|
||||
public S visitIntLLVM(IntLLVMImpl e,H h);
|
||||
public S visitVoidLLVM(VoidLLVMImpl e, H h);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user