77 lines
2.4 KiB
Java
77 lines
2.4 KiB
Java
package TP2.llvm;
|
|
import TP2.llvm.ProgramLLVM.*;
|
|
|
|
public interface Interface {
|
|
//////////ProgramLLVM (Program)
|
|
public interface ProgLLVM{
|
|
public <H,S> S accept(ProgramLLVMVisitor<H,S> v, H h);
|
|
public String prettyprinter();
|
|
}
|
|
|
|
public interface ProgramLLVMVisitor<H,S> {
|
|
public S visitProgramLLVM(ProgramLLVMImpl prog, H h);
|
|
}
|
|
|
|
//////////DefineLLVM (function)
|
|
public interface DefineLLVM{
|
|
public <H,S> S accept(DefineLLVMVisitor<H,S> v, H h);
|
|
}
|
|
|
|
public interface DefineLLVMVisitor<H,S> {
|
|
public S visitDefineLLVM(DefineLLVMImpl define, H h);
|
|
}
|
|
|
|
public interface InstructionLLVM{
|
|
public <H,S> S accept(InstructionLLVMVisitor<H,S> v, H h);
|
|
}
|
|
|
|
public interface InstructionLLVMVisitor<H,S> {
|
|
public S visitReturnLLVM(ReturnLLVMImpl instr, H h);
|
|
public S visitAssignLLVM(AssignLVMImpl instr, H h);
|
|
public S visitStoreLLVM(StoreLLVMImpl instr, H h);
|
|
public S visitPrintLLVM(PrintLLVMImpl instr, H h);
|
|
public S visitReadLLVM(ReadLLVMImpl instr, H h);
|
|
public S visitLabelLLVM(LabelLLVMImp instr, H h);
|
|
public S visitBrLLVM(BrLLVMImp instr, H h);
|
|
public S visitBrCondLLVM(BrCondLLVMImp instr, H h);
|
|
public S visitCallLLVM(CallLLVMImpl instr, H h);
|
|
}
|
|
|
|
//////////ExpressionLLVM (expression)
|
|
public interface ExpressionLLVM{
|
|
public <H,S> S accept(ExpressionLLVMVisitor<H,S> v, H h);
|
|
public TypeLLVM getType();
|
|
}
|
|
|
|
public interface ValLLVM extends ExpressionLLVM{
|
|
}
|
|
|
|
public interface ExpressionLLVMVisitor<H,S> {
|
|
public S visitBinOpLLVM(BinOpLLVMImpl 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 S visitIcmpLLVM(IcmpLLVMImp e, H h);
|
|
}
|
|
|
|
/*public interface IdentifierLLVM{ //globaux @ et local %
|
|
public String prettyprinter();
|
|
}
|
|
|
|
public interface IndentifierLLVMVisitor<H,S> {
|
|
}*/
|
|
|
|
public interface TypeLLVM{
|
|
public <H,S> S accept(TypeLLVMVisitor<H,S> v, H h);
|
|
}
|
|
|
|
public interface TypeLLVMVisitor<H,S> {
|
|
public S visitIntLLVM(IntLLVMImpl e,H h);
|
|
public S visitVoidLLVM(VoidLLVMImpl e, H h);
|
|
public S visitBooleanLLVM(BooleanLLVMImp e, H h);
|
|
public S visitStringLLVM(StringLLVMImp e, H h);
|
|
}
|
|
|
|
}
|