tan  0.0.1
tanlang::CodeGenerator Class Referencefinal
Inheritance diagram for tanlang::CodeGenerator:
Collaboration diagram for tanlang::CodeGenerator:

Public Member Functions

 CodeGenerator (TargetMachine *target_machine)
 
void init (Package *package) override
 
void run_impl (Package *package)
 
llvm::Value * cached_visit (ASTBase *p)
 
void default_visit (ASTBase *) override
 
void emit_to_file (const str &filename)
 
void run_passes ()
 
void dump_ir () const
 
void VisitPackageImpl (Package *p)
 
void VisitIdentifierImpl (Identifier *p)
 
void VisitParenthesisImpl (Parenthesis *p)
 
void VisitIfImpl (If *p)
 
void VisitVarDeclImpl (VarDecl *p)
 
void VisitArgDeclImpl (ArgDecl *p)
 
void VisitReturnImpl (Return *p)
 
void VisitCompoundStmtImpl (CompoundStmt *p)
 
void VisitBinaryOrUnaryImpl (BinaryOrUnary *p)
 
void VisitBinaryOperatorImpl (BinaryOperator *p)
 
void VisitUnaryOperatorImpl (UnaryOperator *p)
 
void VisitCastImpl (Cast *p)
 
void VisitAssignmentImpl (Assignment *p)
 
void VisitFunctionCallImpl (FunctionCall *p)
 
void VisitFunctionDeclImpl (FunctionDecl *p)
 
void VisitImportImpl (Import *p)
 
void VisitIntrinsicImpl (Intrinsic *p)
 
void VisitArrayLiteralImpl (ArrayLiteral *p)
 
void VisitCharLiteralImpl (CharLiteral *p)
 
void VisitBoolLiteralImpl (BoolLiteral *p)
 
void VisitIntegerLiteralImpl (IntegerLiteral *p)
 
void VisitFloatLiteralImpl (FloatLiteral *p)
 
void VisitStringLiteralImpl (StringLiteral *p)
 
void VisitNullPointerLiteralImpl (NullPointerLiteral *p)
 
void VisitStructDeclImpl (StructDecl *p)
 
void VisitLoopImpl (Loop *p)
 
void VisitBreakContinueImpl (BreakContinue *p)
 
void VisitVarRefImpl (VarRef *p)
 
void VisitPackageDeclImpl (PackageDecl *p)
 
- Public Member Functions inherited from tanlang::CompilerAction< CodeGenerator, Package *, void >
void run (Package * input)
 
- Public Member Functions inherited from tanlang::ASTVisitor< Derived >
void VisitProgram (Program *p)
 
void VisitPackage (Package *p)
 
void VisitIdentifier (Identifier *p)
 
void VisitParenthesis (Parenthesis *p)
 
void VisitIf (If *p)
 
void VisitVarDecl (VarDecl *p)
 
void VisitArgDecl (ArgDecl *p)
 
void VisitReturn (Return *p)
 
void VisitCompoundStmt (CompoundStmt *p)
 
void VisitBinaryOrUnary (BinaryOrUnary *p)
 
void VisitBinaryOperator (BinaryOperator *p)
 
void VisitUnaryOperator (UnaryOperator *p)
 
void VisitCast (Cast *p)
 
void VisitAssignment (Assignment *p)
 
void VisitFunctionCall (FunctionCall *p)
 
void VisitFunctionDecl (FunctionDecl *p)
 
void VisitImport (Import *p)
 
void VisitIntrinsic (Intrinsic *p)
 
void VisitArrayLiteral (ArrayLiteral *p)
 
void VisitCharLiteral (CharLiteral *p)
 
void VisitBoolLiteral (BoolLiteral *p)
 
void VisitIntegerLiteral (IntegerLiteral *p)
 
void VisitFloatLiteral (FloatLiteral *p)
 
void VisitStringLiteral (StringLiteral *p)
 
void VisitNullPointerLiteral (NullPointerLiteral *p)
 
void VisitMemberAccess (MemberAccess *p)
 
void VisitStructDecl (StructDecl *p)
 
void VisitLoop (Loop *p)
 
void VisitBreakContinue (BreakContinue *p)
 
void VisitVarRef (VarRef *p)
 
void VisitPackageDecl (PackageDecl *p)
 
void visit (ASTBase *p)
 

Additional Inherited Members

- Public Types inherited from tanlang::CompilerAction< CodeGenerator, Package *, void >
using CompilerActionType = CompilerAction< CodeGenerator, Package *, void >
 

Detailed Description

Definition at line 26 of file code_generator.h.


The documentation for this class was generated from the following files: