interface llvm

This commit is contained in:
Vu Tuan Minh
2025-04-04 18:03:56 +02:00
parent 23b4accb7e
commit 651bd9f7bb

View File

@@ -1,44 +1,58 @@
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 {
//////////ProgramLLVM
//////////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 programImp, H h);
public S visitProgramLLVM(ProgramLLVMImpl e, H h);
}
//////////DefineLLVM
//////////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 defineLLVMImp, H h);
public S visitProgramLLVM(DefineLLVMImpl e, 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);
}
//////////ExpressionLLVM (expression)
public interface ExpressionLLVM{
public String prettyprinter();
}
public interface ExpressionLLVMVisitor<H,S> {
public S visitConstLLVM(ConstLLVMImp e,H h);
public S visitBinOpLLVM(BinOpLLVMImp e, H h);
}
public interface Val{
public String prettyprinter();
}
public interface IdentifierLLVM{ //globaux @ et local %
public String prettyprinter();
}
public interface InstructionLLVM{
public String prettyprinter();
}
public interface ExpressionLLVM{
public String prettyprinter();
}
public interface Val{
public String prettyprinter();
}
}