▼Ctanlang::ASTNamed | All named AST nodes should inherit this class |
▼Ctanlang::Decl | |
Ctanlang::ArgDecl | |
Ctanlang::FunctionDecl | |
▼Ctanlang::TypeDecl | |
Ctanlang::StructDecl | |
Ctanlang::VarDecl | |
Ctanlang::FunctionCall | |
Ctanlang::Identifier | |
Ctanlang::Intrinsic | A generic representation of Intrinsic variables/functions |
Ctanlang::VarRef | |
▼Ctanlang::ASTVisitor< Derived > | |
▼Ctanlang::CompilerAction< CodeGenerator, Package *, void > | |
Ctanlang::CodeGenerator | |
▼Ctanlang::CompilerAction< OrganizePackages, vector< Program * >, vector< Package * > > | |
Ctanlang::OrganizePackages | Organize a list of source files into their corresponding packages according to the code. Run this stage early since semantic analysis is performed on the package level |
▼Ctanlang::CompilerAction< Derived, Input, Output > | |
▼Ctanlang::SemanticAnalysisAction< RegisterDeclarations, Program *, void > | |
Ctanlang::RegisterDeclarations | Register all declarations (including local) in the corresponding scopes. Run this stage early to easily obtain a list of top-level declarations from each source file |
▼Ctanlang::SemanticAnalysisAction< TypePrecheck, Package *, void > | |
Ctanlang::TypePrecheck | Perform preliminary type checking. We try our best to resolve types, and remember those that cannot be fully resolved plus their symbol dependencies |
▼Ctanlang::SemanticAnalysisAction< TypeCheck, Package *, void > | |
Ctanlang::TypeCheck | |
▼Ctanlang::SemanticAnalysisAction< ScanImports, Package *, ScanImportsOutputType > | |
Ctanlang::ScanImports | Scans all dependencies in a package, and return their names and paths to relevant source files |
Ctanlang::SemanticAnalysisAction< Derived, Input, Output > | |
Ctanlang::CompilerDriver | Compile a list of C++ and/or tan source files, and perform linking |
Ctanlang::Context | |
Ctanlang::DefaultValue | |
Ctanlang::DependencyGraph< T > | |
Ctanlang::DependencyGraph< tanlang::ASTBase * > | |
Ctanlang::Error | |
▼Cstd::exception | STL class |
▼Cstd::runtime_error | STL class |
Ctanlang::CompileException | |
Ctanlang::Linker | |
Cllvm::yaml::MappingTraits< ClangInvocationInfo > | |
Cllvm::yaml::MappingTraits< UnsavedFileHash > | |
CPairHash | |
Ctanlang::Parser | Top Down Operator Precedence Parsing |
Ctanlang::ParserImpl | |
Ctanlang::ScopeGuard | |
Ctanlang::SourceFile | |
Ctanlang::SourceSpan | A span of source code tokens, inclusive on both ends |
▼Ctanlang::SourceTraceable | Represents the nodes that can be traced back to tokens in the source file |
▼Ctanlang::ASTBase | |
▼Ctanlang::Expr | |
Ctanlang::Assignment | |
▼Ctanlang::BinaryOperator | |
Ctanlang::MemberAccess | |
Ctanlang::BinaryOrUnary | |
Ctanlang::Cast | |
Ctanlang::Decl | |
Ctanlang::FunctionCall | |
Ctanlang::Identifier | |
Ctanlang::Intrinsic | A generic representation of Intrinsic variables/functions |
▼Ctanlang::Literal | |
Ctanlang::ArrayLiteral | |
Ctanlang::BoolLiteral | |
Ctanlang::CharLiteral | |
Ctanlang::FloatLiteral | |
Ctanlang::IntegerLiteral | |
Ctanlang::NullPointerLiteral | |
Ctanlang::StringLiteral | |
Ctanlang::Parenthesis | |
Ctanlang::UnaryOperator | |
Ctanlang::VarRef | |
Ctanlang::Package | |
▼Ctanlang::Stmt | |
▼Ctanlang::BreakContinue | |
Ctanlang::Break | |
Ctanlang::Continue | |
▼Ctanlang::CompoundStmt | |
Ctanlang::Program | |
Ctanlang::TestCompError | |
Ctanlang::If | Represent if-[else] or if-elif-[else] statements |
Ctanlang::Import | |
Ctanlang::Loop | |
Ctanlang::PackageDecl | |
Ctanlang::Return | |
Ctanlang::SrcLoc | |
Ctanlang::TanCompilation | Compilation configuration |
Ctanlang::Token | |
Ctanlang::TokenizedSourceFile | Different from SourceFile, TokenizedSourceFile manages the tokenized text of a source file |
Ctanlang::TokenSpan | Different from SourceSpan, TokenSpan operates on the token level |
▼Ctanlang::Type | Type is immutable once created. The exception is StructType. Its information is updated in multiple semantic analysis stages. We make sure that GetXXType() doesn't create duplicated instances of the same type |
Ctanlang::ArrayType | |
Ctanlang::FunctionType | |
Ctanlang::PointerType | |
Ctanlang::PrimitiveType | |
Ctanlang::StringType | |
Ctanlang::StructType | |
Ctanlang::TypeRef | Placeholder during parsing |
▼Ctanlang::Typed | All typed AST nodes should inherit this class |
Ctanlang::Expr | |