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; 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.ProgramImp;
import TP2.asd.Program.Return_instrImp;
import TP2.llvm.ProgramLLVM.*; import TP2.llvm.ProgramLLVM.*;
public interface Interface { public interface Interface {
//////////ProgramLLVM //////////ProgramLLVM (Program)
public interface ProgLLVM{ public interface ProgLLVM{
public <H,S> S accept(ProgramLLVMVisitor<H,S> v, H h); public <H,S> S accept(ProgramLLVMVisitor<H,S> v, H h);
public String prettyprinter(); public String prettyprinter();
} }
public interface ProgramLLVMVisitor<H,S> { 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 interface DefineLLVM{
public <H,S> S accept(DefineLLVMVisitor<H,S> v, H h); public <H,S> S accept(DefineLLVMVisitor<H,S> v, H h);
public String prettyprinter(); public String prettyprinter();
} }
public interface DefineLLVMVisitor<H,S> { public interface DefineLLVMVisitor<H,S> {
public S visitProgramLLVM(DefineLLVMImpl defineLLVMImp, H h); public S visitProgramLLVM(DefineLLVMImpl e, H h);
}
public interface IdentifierLLVM{ //globaux @ et local %
public String prettyprinter();
} }
public interface InstructionLLVM{ public interface InstructionLLVM{
public <H,S> S accept(InstructionLLVMVisitor<H,S> v, H h);
public String prettyprinter(); 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 interface ExpressionLLVM{
public String prettyprinter(); 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 interface Val{
public String prettyprinter(); public String prettyprinter();
} }
public interface IdentifierLLVM{ //globaux @ et local %
public String prettyprinter();
}
} }