| ►Nast | |
| ►Nexprnode | |
| CExprValue | |
| CMemberName | |
| CMethodName | |
| CThisNode | |
| CTypeNode | |
| CLiteralNode | |
| CExprOp | |
| CMemberAccess | |
| CMethodInvocation | |
| CClassInstanceCreation | |
| CArrayInstanceCreation | |
| CArrayAccess | |
| CCast | |
| CUnaryOp | |
| CBinaryOp | |
| CAstNode | Base class for all AST nodes. Helps unify printing and dot printing |
| CDecl | Base class for all declarations |
| CDeclContext | Base class for all declaration contexts (i.e., methods) |
| CTypeResolver | Abstract base representing a (stateful) class used to resolve types |
| CType | Base class for all types |
| CStmt | Base class for all statements |
| CModifiers | |
| CScopeID | Immutable struct that represents a unique identifier for a scope. This captures the position of the lexical scope in the AST to be used after AST construction, when lexical information has been lost |
| CTypedDecl | Represents a variable declaration with: a name, a type and an optional initializer |
| CVarDecl | Represents a scoped (i.e., local) typed variable declaration |
| CFieldDecl | Represents a typed declaration with access modifiers |
| CImportDeclaration | |
| CCompilationUnit | |
| CLinkingUnit | |
| CClassDecl | |
| CInterfaceDecl | |
| CMethodDecl | |
| CExpr | |
| CBlockStatement | |
| CDeclStmt | |
| CExprStmt | |
| CIfStmt | |
| CWhileStmt | |
| CForStmt | |
| CReturnStmt | |
| CNullStmt | |
| CReturnType | Represents the return type of a method. This wraps ast::Type to allow for void return types (we don't consider void a type) |
| CBuiltInType | Represents a primitive type in the Java language |
| CReferenceType | Represents a reference type. This is a type that refers to either a class or an interface declaration. Creation of a reference type must result in a declaration being resolved to it |
| CUnresolvedType | Represents an unresolved reference type. This means that the underlying reference type is not yet resolved to a declaration. This class is used to represent types whose names are qualified with multiple parts, or simple type names |
| CArrayType | Represents an (unsized) array type |
| CMethodType | This is a synthetic MethodType that should not exist inside the AST |
| CExprEvaluator | |
| CExprNode | |
| CExprNodeList | A list of ExprNodes* that can be iterated and concatenated |
| CSemantic | |
| ►Ncodegen | |
| ►Ndetails | |
| CValueWrapper | Wraps a value for expression evaluation. This distinguishes an LValue from an RValue, wrapping the tir::Value* mapped from an ExprValue. The criteria for an L/R value is as follows: |
| CCodeGenerator | |
| CCGExprEvaluator | The code generator expression evaluator. This class is responsible for evaluating expressions and returning the corresponding tir::Value* |
| CMangler | |
| ►Ndiagnostics | |
| CDiagnosticStorage | |
| CDiagnosticBuilder | |
| CDiagnosticStream | |
| CDiagnosticEngine | |
| ►Njoos1 | |
| CPrintASTPass | |
| CJoos1WParserPass | |
| CAstContextPass | |
| CAstBuilderPass | |
| CLinkerPass | |
| CNameResolverPass | |
| CHierarchyCheckerPass | |
| ►Nparsetree | |
| CNode | The basic type-tagged node in the parse tree |
| CLiteral | A lex node in the parse tree representing a literal value |
| CIdentifier | A lex node in the parse tree representing an identifier |
| COperator | A lex node in the parse tree representing an operator |
| CModifier | A lex node in the parse tree representing a modifier |
| CBasicType | A lex node in the parse tree representing a basic type |
| CParseTreeException | |
| ►CParseTreeVisitor | |
| CTmpVarDecl | |
| ►Nsemantic | |
| ►Ninternal | |
| CExprNameWrapper | Represents a wrapper around a name that is being resolved. This is a list of either ExprNameWrapper or ast::ExprNodeList |
| ►CNameResolver | |
| CPkg | Represents a tree of packages. The leaf nodes are declarations |
| CHierarchyChecker | |
| CAstChecker | |
| CConstantReturnType | |
| CConstantTypeResolver | Will resolve a constant boolean expression if possible, or return a nullptr if the expression is not a constant expression |
| CDataflowAnalysis | |
| CExprResolver | |
| CExprStaticCheckerData | |
| CExprStaticCheckerState | |
| CExprStaticChecker | |
| CExprTypeResolver | Will resolve all types in the Expression. If a type cannot be resolved, then we assume an invalid type error has occurred (i.e., type checking) |
| ►CCFGNode | |
| CEmptyExpr | |
| CCFGBuilder | |
| ►Ntir | |
| ►CType | Type is the base class for all types in the TIR. It is immutable once created and is uniqued within a Context. The uniquing means that two types in the same context are equal if and only if they have the same address in memory |
| CChildTypeArray | |
| COpaquePointerType | The type of a pointer to an opaque type |
| CIntegerType | |
| CFunctionType | |
| CArrayType | |
| CStructType | |
| CConstant | |
| CConstantInt | |
| CConstantNullPointer | |
| CGlobalObject | |
| CGlobalVariable | |
| CArgument | |
| CFunction | |
| CIRBuilder | |
| CInstruction | Base class for all instructions in the TIR. Instructions are also Values, but they are not constants. Instructions are stored as a linked list, possibly belonging to a BasicBlock, or not. Instructions are also Users, meaning they can have other Values as operands (children) |
| CBranchInst | Conditional branch instruction. This instruction is a terminator and branches to one of two basic blocks based on the condition. The condition value must be an i1 type |
| CReturnInst | Return instruction. This instruction is a terminator and returns either a value or nothing (void) |
| CStoreInst | Store instruction. This instruction stores a value to a pointer |
| CLoadInst | Load instruction. This instruction loads a value from a pointer. The size of the value loaded is determined by the type of the load instr, not by the type of the pointer. Pointer types are opaque |
| CCallInst | Call instruction. This instruction calls a function with the given arguments. It returns the result of the function call |
| CBinaryInst | Binary instruction. This instruction performs a binary operation on two values. The type of the result is the same as the type of the two operands (which must be the same type also) |
| CCmpInst | Compare instruction. This instruction compares two values (of the same type) and returns a boolean value (i1) based on the comparison |
| CICastInst | Integer cast instruction. This instruction can either truncate, zero-extend, or sign-extend an integer value to a different integer type |
| CAllocaInst | Alloca instruction. This instruction allocates memory on the stack. This is equivalent to the TIR TEMP() node |
| CGetElementPtrInst | |
| CContextPImpl | |
| CContext | |
| CBasicBlock | |
| CValue | |
| CUser | |
| CCompilationUnit | |
| ►Nutils | |
| ►Ndetails | |
| Cis_callable | |
| Cis_callable< T, void, void_t< std::result_of_t< T > > > | |
| Cis_callable< T, R, void_t< std::result_of_t< T > > > | |
| Csignature_helper | |
| Csignature_helper< TReturn(TArgs...)> | |
| Cdependent_false | |
| Cfunction_ref | |
| Cfunction_ref< TReturn(TArgs...)> | |
| CCustomBufferResource | |
| Crange_ref | A non-owning, lightweight view of a range whose element types are convertible to T |
| CDotPrinter | A class to help print DOT graphs! |
| ►CGenerator | |
| CIter | |
| Cpromise_type | |
| CFatalError | |
| CAssertError | |
| CPassOptions | |
| CPass | |
| CPassManager | |
| CDFAPass | |
| CExprResolverPass | |
| CGlobalDCE | |
| CIRContextPass | |
| CJoos1WLexer | |
| CJoos1WParser | |
| CMemToReg | |
| CPrintCFG | |
| CSimplifyCFG | |
| CSourceFile | An opaque identifier representing a source file |
| CSourceLocation | A specific location (line, column) in a source file |
| CSourceManager | |
| CSourceRange | A range of locations in a source file |