►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 |