12. AST manipulation library
The AST module implements compilation time reflection for the Daslang syntax tree.
All functions and symbols are in “ast” module, use require to get access to it.
require ast
12.1. Type aliases
- bitfield TypeDeclFlags
| field | bit | value | 
|---|---|---|
| ref | 0 | 1 | 
| constant | 1 | 2 | 
| temporary | 2 | 4 | 
| _implicit | 3 | 8 | 
| removeRef | 4 | 16 | 
| removeConstant | 5 | 32 | 
| removeDim | 6 | 64 | 
| removeTemporary | 7 | 128 | 
| explicitConst | 8 | 256 | 
| aotAlias | 9 | 512 | 
| smartPtr | 10 | 1024 | 
| smartPtrNative | 11 | 2048 | 
| isExplicit | 12 | 4096 | 
| isNativeDim | 13 | 8192 | 
| isTag | 14 | 16384 | 
| explicitRef | 15 | 32768 | 
| isPrivateAlias | 16 | 65536 | 
| autoToAlias | 17 | 131072 | 
properties of the TypeDecl object.
- bitfield FieldDeclarationFlags
| field | bit | value | 
|---|---|---|
| moveSemantics | 0 | 1 | 
| parentType | 1 | 2 | 
| capturedConstant | 2 | 4 | 
| generated | 3 | 8 | 
| capturedRef | 4 | 16 | 
| doNotDelete | 5 | 32 | 
| privateField | 6 | 64 | 
| _sealed | 7 | 128 | 
| implemented | 8 | 256 | 
| classMethod | 9 | 512 | 
properties of the FieldDeclaration object.
- bitfield StructureFlags
| field | bit | value | 
|---|---|---|
| isClass | 0 | 1 | 
| genCtor | 1 | 2 | 
| cppLayout | 2 | 4 | 
| cppLayoutNotPod | 3 | 8 | 
| generated | 4 | 16 | 
| persistent | 5 | 32 | 
| isLambda | 6 | 64 | 
| privateStructure | 7 | 128 | 
| macroInterface | 8 | 256 | 
| _sealed | 9 | 512 | 
| skipLockCheck | 10 | 1024 | 
| circular | 11 | 2048 | 
| _generator | 12 | 4096 | 
| hasStaticMembers | 13 | 8192 | 
| hasStaticFunctions | 14 | 16384 | 
| hasInitFields | 15 | 32768 | 
| safeWhenUninitialized | 16 | 65536 | 
| isTemplate | 17 | 131072 | 
| hasDefaultInitializer | 18 | 262144 | 
properties of the Structure object.
- bitfield ExprGenFlags
| field | bit | value | 
|---|---|---|
| alwaysSafe | 0 | 1 | 
| generated | 1 | 2 | 
| userSaidItsSafe | 2 | 4 | 
generation (genFlags) properties of the Expression object.
- bitfield ExprLetFlags
| field | bit | value | 
|---|---|---|
| inScope | 0 | 1 | 
| hasEarlyOut | 1 | 2 | 
| itTupleExpansion | 2 | 4 | 
properties of the ExprLet object.
- bitfield ExprFlags
| field | bit | value | 
|---|---|---|
| constexpression | 0 | 1 | 
| noSideEffects | 1 | 2 | 
| noNativeSideEffects | 2 | 4 | 
| isForLoopSource | 3 | 8 | 
| isCallArgument | 4 | 16 | 
properties of the Expression object.
- bitfield ExprPrintFlags
| field | bit | value | 
|---|---|---|
| topLevel | 0 | 1 | 
| argLevel | 1 | 2 | 
| bottomLevel | 2 | 4 | 
printing properties of the Expression object.
- bitfield FunctionFlags
| field | bit | value | 
|---|---|---|
| builtIn | 0 | 1 | 
| policyBased | 1 | 2 | 
| callBased | 2 | 4 | 
| interopFn | 3 | 8 | 
| hasReturn | 4 | 16 | 
| copyOnReturn | 5 | 32 | 
| moveOnReturn | 6 | 64 | 
| exports | 7 | 128 | 
| init | 8 | 256 | 
| addr | 9 | 512 | 
| used | 10 | 1024 | 
| fastCall | 11 | 2048 | 
| knownSideEffects | 12 | 4096 | 
| hasToRunAtCompileTime | 13 | 8192 | 
| unsafeOperation | 14 | 16384 | 
| unsafeDeref | 15 | 32768 | 
| hasMakeBlock | 16 | 65536 | 
| aotNeedPrologue | 17 | 131072 | 
| noAot | 18 | 262144 | 
| aotHybrid | 19 | 524288 | 
| aotTemplate | 20 | 1048576 | 
| generated | 21 | 2097152 | 
| privateFunction | 22 | 4194304 | 
| _generator | 23 | 8388608 | 
| _lambda | 24 | 16777216 | 
| firstArgReturnType | 25 | 33554432 | 
| noPointerCast | 26 | 67108864 | 
| isClassMethod | 27 | 134217728 | 
| isTypeConstructor | 28 | 268435456 | 
| shutdown | 29 | 536870912 | 
| anyTemplate | 30 | 1073741824 | 
| macroInit | 31 | 2147483648 | 
properties of the Function object.
- bitfield MoreFunctionFlags
| field | bit | value | 
|---|---|---|
| macroFunction | 0 | 1 | 
| needStringCast | 1 | 2 | 
| aotHashDeppendsOnArguments | 2 | 4 | 
| lateInit | 3 | 8 | 
| requestJit | 4 | 16 | 
| unsafeOutsideOfFor | 5 | 32 | 
| skipLockCheck | 6 | 64 | 
| safeImplicit | 7 | 128 | 
| deprecated | 8 | 256 | 
| aliasCMRES | 9 | 512 | 
| neverAliasCMRES | 10 | 1024 | 
| addressTaken | 11 | 2048 | 
| propertyFunction | 12 | 4096 | 
| pinvoke | 13 | 8192 | 
| jitOnly | 14 | 16384 | 
| isStaticClassMethod | 15 | 32768 | 
| requestNoJit | 16 | 65536 | 
| jitContextAndLineInfo | 17 | 131072 | 
| nodiscard | 18 | 262144 | 
| captureString | 19 | 524288 | 
| callCaptureString | 20 | 1048576 | 
| hasStringBuilder | 21 | 2097152 | 
| recursive | 22 | 4194304 | 
| isTemplate | 23 | 8388608 | 
additional properties of the Function object.
- bitfield FunctionSideEffectFlags
| field | bit | value | 
|---|---|---|
| _unsafe | 0 | 1 | 
| userScenario | 1 | 2 | 
| modifyExternal | 2 | 4 | 
| modifyArgument | 3 | 8 | 
| accessGlobal | 4 | 16 | 
| invoke | 5 | 32 | 
side-effect properties of the Function object.
- bitfield VariableFlags
| field | bit | value | 
|---|---|---|
| init_via_move | 0 | 1 | 
| init_via_clone | 1 | 2 | 
| used | 2 | 4 | 
| aliasCMRES | 3 | 8 | 
| marked_used | 4 | 16 | 
| global_shared | 5 | 32 | 
| do_not_delete | 6 | 64 | 
| generated | 7 | 128 | 
| capture_as_ref | 8 | 256 | 
| can_shadow | 9 | 512 | 
| private_variable | 10 | 1024 | 
| tag | 11 | 2048 | 
| global | 12 | 4096 | 
| inScope | 13 | 8192 | 
| no_capture | 14 | 16384 | 
| early_out | 15 | 32768 | 
| used_in_finally | 16 | 65536 | 
| static_class_member | 17 | 131072 | 
| bitfield_constant | 18 | 262144 | 
properties of the Variable object.
- bitfield VariableAccessFlags
| field | bit | value | 
|---|---|---|
| access_extern | 0 | 1 | 
| access_get | 1 | 2 | 
| access_ref | 2 | 4 | 
| access_init | 3 | 8 | 
| access_pass | 4 | 16 | 
| access_fold | 5 | 32 | 
access properties of the Variable object.
- bitfield ExprBlockFlags
| field | bit | value | 
|---|---|---|
| isClosure | 0 | 1 | 
| hasReturn | 1 | 2 | 
| copyOnReturn | 2 | 4 | 
| moveOnReturn | 3 | 8 | 
| inTheLoop | 4 | 16 | 
| finallyBeforeBody | 5 | 32 | 
| finallyDisabled | 6 | 64 | 
| aotSkipMakeBlock | 7 | 128 | 
| aotDoNotSkipAnnotationData | 8 | 256 | 
| isCollapseable | 9 | 512 | 
| needCollapse | 10 | 1024 | 
| hasMakeBlock | 11 | 2048 | 
| hasEarlyOut | 12 | 4096 | 
| forLoop | 13 | 8192 | 
| hasExitByLabel | 14 | 16384 | 
| isLambdaBlock | 15 | 32768 | 
properties of the ExrpBlock object.
- bitfield ExprAtFlags
| field | bit | value | 
|---|---|---|
| r2v | 0 | 1 | 
| r2cr | 1 | 2 | 
| write | 2 | 4 | 
| no_promotion | 3 | 8 | 
properties of the ExprAt object.
- bitfield ExprMakeLocalFlags
| field | bit | value | 
|---|---|---|
| useStackRef | 0 | 1 | 
| useCMRES | 1 | 2 | 
| doesNotNeedSp | 2 | 4 | 
| doesNotNeedInit | 3 | 8 | 
| initAllFields | 4 | 16 | 
| alwaysAlias | 5 | 32 | 
properties of the ExprMakeLocal object (ExprMakeArray, ExprMakeStruct, ‘ExprMakeTuple’, ‘ExprMakeVariant’).
- bitfield ExprAscendFlags
| field | bit | value | 
|---|---|---|
| useStackRef | 0 | 1 | 
| needTypeInfo | 1 | 2 | 
| isMakeLambda | 2 | 4 | 
properties of the ExprAscend object.
- bitfield ExprCastFlags
| field | bit | value | 
|---|---|---|
| upcastCast | 0 | 1 | 
| reinterpretCast | 1 | 2 | 
properties of the ExprCast object.
- bitfield ExprVarFlags
| field | bit | value | 
|---|---|---|
| local | 0 | 1 | 
| argument | 1 | 2 | 
| _block | 2 | 4 | 
| thisBlock | 3 | 8 | 
| r2v | 4 | 16 | 
| r2cr | 5 | 32 | 
| write | 6 | 64 | 
| under_clone | 7 | 128 | 
properties of the ExprVar object.
- bitfield ExprMakeStructFlags
| field | bit | value | 
|---|---|---|
| useInitializer | 0 | 1 | 
| isNewHandle | 1 | 2 | 
| usedInitializer | 2 | 4 | 
| nativeClassInitializer | 3 | 8 | 
| isNewClass | 4 | 16 | 
| forceClass | 5 | 32 | 
| forceStruct | 6 | 64 | 
| forceVariant | 7 | 128 | 
| forceTuple | 8 | 256 | 
| alwaysUseInitializer | 9 | 512 | 
| ignoreVisCheck | 10 | 1024 | 
| canShadowBlock | 11 | 2048 | 
properties of the ExprMakeStruct object.
- bitfield MakeFieldDeclFlags
| field | bit | value | 
|---|---|---|
| moveSemantics | 0 | 1 | 
| cloneSemantics | 1 | 2 | 
properties of the MakeFieldDecl object.
- bitfield ExprFieldDerefFlags
| field | bit | value | 
|---|---|---|
| unsafeDeref | 0 | 1 | 
| ignoreCaptureConst | 1 | 2 | 
dereferencing properties of the ExprField object.
- bitfield ExprFieldFieldFlags
| field | bit | value | 
|---|---|---|
| r2v | 0 | 1 | 
| r2cr | 1 | 2 | 
| write | 2 | 4 | 
| no_promotion | 3 | 8 | 
| under_clone | 4 | 16 | 
field properties of the ExprField object.
- bitfield ExprSwizzleFieldFlags
| field | bit | value | 
|---|---|---|
| r2v | 0 | 1 | 
| r2cr | 1 | 2 | 
| write | 2 | 4 | 
properties of the ExprSwizzle object.
- bitfield ExprYieldFlags
| field | bit | value | 
|---|---|---|
| moveSemantics | 0 | 1 | 
| skipLockCheck | 1 | 2 | 
properties of the ExprYield object.
- bitfield ExprReturnFlags
| field | bit | value | 
|---|---|---|
| moveSemantics | 0 | 1 | 
| returnReference | 1 | 2 | 
| returnInBlock | 2 | 4 | 
| takeOverRightStack | 3 | 8 | 
| returnCallCMRES | 4 | 16 | 
| returnCMRES | 5 | 32 | 
| fromYield | 6 | 64 | 
| fromComprehension | 7 | 128 | 
| skipLockCheck | 8 | 256 | 
properties of the ExprReturn object.
- bitfield ExprMakeBlockFlags
| field | bit | value | 
|---|---|---|
| isLambda | 0 | 1 | 
| isLocalFunction | 1 | 2 | 
properties of the ExprMakeBlock object.
- bitfield CopyFlags
| field | bit | value | 
|---|---|---|
| allowCopyTemp | 0 | 1 | 
| takeOverRightStack | 1 | 2 | 
| promoteToClone | 2 | 4 | 
properties of the ExprCopy object.
- bitfield MoveFlags
| field | bit | value | 
|---|---|---|
| skipLockCheck | 0 | 1 | 
| takeOverRightStack | 1 | 2 | 
properties of the ExprMove object.
- bitfield IfFlags
| field | bit | value | 
|---|---|---|
| isStatic | 0 | 1 | 
| doNotFold | 1 | 2 | 
properties of the ExprIf object.
- ExpressionPtr = smart_ptr<Expression>
Smart pointer to Expression object.
- ProgramPtr = smart_ptr<Program>
Smart pointer to Program object.
- TypeDeclPtr = smart_ptr<TypeDecl>
Smart pointer to TypeDecl object.
- VectorTypeDeclPtr = dasvector`smart_ptr`TypeDecl
Smart pointer to das::vector<ExpressionPtr>.
- EnumerationPtr = smart_ptr<Enumeration>
Smart pointer to Enumeration object.
- StructurePtr = smart_ptr<Structure>
Smart pointer to Structure object.
- FunctionPtr = smart_ptr<Function>
Smart pointer to Function object.
- VariablePtr = smart_ptr<Variable>
Smart pointer to Variable object.
- MakeFieldDeclPtr = smart_ptr<MakeFieldDecl>
Smart pointer to MakeFieldDecl object.
- ExprMakeBlockPtr = smart_ptr<ExprMakeBlock>
Smart pointer to ‘ExprMakeBlock’.
- FunctionAnnotationPtr = smart_ptr<FunctionAnnotation>
Smart pointer to FunctionAnnotation object.
- StructureAnnotationPtr = smart_ptr<StructureAnnotation>
Smart pointer to StructureAnnotation object.
- EnumerationAnnotationPtr = smart_ptr<EnumerationAnnotation>
Smart pointer to EnumerationAnnotation object.
- PassMacroPtr = smart_ptr<PassMacro>
Smart pointer to PassMacro object.
- VariantMacroPtr = smart_ptr<VariantMacro>
Smart pointer to VariantMacro object.
- ReaderMacroPtr = smart_ptr<ReaderMacro>
Smart pointer to ReaderMacro object.
- CommentReaderPtr = smart_ptr<CommentReader>
Smart pointer to CommentReader object.
- CallMacroPtr = smart_ptr<CallMacro>
Smart pointer to CallMacro object.
- TypeInfoMacroPtr = smart_ptr<TypeInfoMacro>
Smart pointer to TypeInfoMacro object.
- ForLoopMacroPtr = smart_ptr<ForLoopMacro>
Smart pointer to ‘ForLoopMacro’.
- CaptureMacroPtr = smart_ptr<CaptureMacro>
Smart pointer to ‘CaptureMacro’.
- TypeMacroPtr = smart_ptr<TypeMacro>
Smart pointer to TypeMacro object.
- SimulateMacroPtr = smart_ptr<SimulateMacro>
Smart pointer to SimulateMacro object.
12.2. Enumerations
- CaptureMode
| capture_any | 0 | 
| capture_by_copy | 1 | 
| capture_by_reference | 2 | 
| capture_by_clone | 3 | 
| capture_by_move | 4 | 
Enumeration with lambda variables capture modes.
- SideEffects
| none | 0 | 
| unsafe | 1 | 
| userScenario | 2 | 
| modifyExternal | 4 | 
| accessExternal | 4 | 
| modifyArgument | 8 | 
| modifyArgumentAndExternal | 12 | 
| worstDefault | 12 | 
| accessGlobal | 16 | 
| invoke | 32 | 
| inferredSideEffects | 56 | 
Enumeration with all possible side effects of expression or function.
12.3. Handled structures
- ModuleLibrary
Object which holds list of Module and provides access to them.
- Expression
Expression fields are
| at | |
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Any expression (base class).
- TypeDecl
TypeDecl fields are
| alias | |
| annotation | |
| dimExpr | vector<smart_ptr<Expression>> | 
| argTypes | vector<smart_ptr<TypeDecl>> | 
| dim | vector<int> | 
| _module | |
| secondType | smart_ptr< ast::TypeDecl > | 
| at | |
| enumType | |
| argNames | vector<das_string> | 
| baseType | |
| firstType | smart_ptr< ast::TypeDecl > | 
| structType | |
| flags | |
TypeDecl property operators are
| canAot | bool const | 
| isExprType | bool const | 
| isSimpleType | bool const | 
| isArray | bool const | 
| isGoodIteratorType | bool const | 
| isGoodArrayType | bool const | 
| isGoodTableType | bool const | 
| isGoodBlockType | bool const | 
| isGoodFunctionType | bool const | 
| isGoodLambdaType | bool const | 
| isGoodTupleType | bool const | 
| isGoodVariantType | bool const | 
| isVoid | bool const | 
| isAnyType | bool const | 
| isRef | bool const | 
| isRefType | bool const | 
| canWrite | bool const | 
| isAotAlias | bool const | 
| isShareable | bool const | 
| isIndex | bool const | 
| isBool | bool const | 
| isInteger | bool const | 
| isSignedInteger | bool const | 
| isUnsignedInteger | bool const | 
| isSignedIntegerOrIntVec | bool const | 
| isUnsignedIntegerOrIntVec | bool const | 
| isFloatOrDouble | bool const | 
| isNumeric | bool const | 
| isNumericComparable | bool const | 
| isPointer | bool const | 
| isSmartPointer | bool const | 
| isVoidPointer | bool const | 
| isIterator | bool const | 
| isEnum | bool const | 
| isEnumT | bool const | 
| isHandle | bool const | 
| isStructure | bool const | 
| isClass | bool const | 
| isFunction | bool const | 
| isTuple | bool const | 
| isVariant | bool const | 
| sizeOf | int const | 
| countOf | int const | 
| alignOf | int const | 
| baseSizeOf | int const | 
| stride | int const | 
| tupleSize | int const | 
| tupleAlign | int const | 
| variantSize | int const | 
| variantAlign | int const | 
| canCopy | bool const | 
| canMove | bool const | 
| canClone | bool const | 
| canCloneFromConst | bool const | 
| canNew | bool const | 
| canDeletePtr | bool const | 
| canDelete | bool const | 
| needDelete | bool const | 
| isPod | bool const | 
| isRawPod | bool const | 
| isNoHeapType | bool const | 
| isWorkhorseType | bool const | 
| isPolicyType | bool const | 
| isVecPolicyType | bool const | 
| isReturnType | bool const | 
| isCtorType | bool const | 
| isRange | bool const | 
| isString | bool const | 
| isConst | bool const | 
| isFoldable | bool const | 
| isAlias | bool const | 
| isAutoArrayResolved | bool const | 
| isAuto | bool const | 
| isAutoOrAlias | bool const | 
| isVectorType | bool const | 
| isBitfield | bool const | 
| isLocal | bool const | 
| hasClasses | bool const | 
| hasNonTrivialCtor | bool const | 
| hasNonTrivialDtor | bool const | 
| hasNonTrivialCopy | bool const | 
| canBePlacedInContainer | bool const | 
| vectorBaseType | rtti::Type const | 
| vectorDim | int const | 
| canInitWithZero | bool const | 
| rangeBaseType | rtti::Type const | 
| unsafeInit | bool const | 
| get_mnh | uint64 const | 
Any type declaration.
- Structure
Structure fields are
| _module | |
| at | |
| parent | |
| annotations | |
| name | |
| fields | vector<FieldDeclaration> | 
| flags | |
Structure property operators are
| sizeOf | int const | 
Structure declaration.
- FieldDeclaration
FieldDeclaration fields are
| annotation | |
| at | |
| name | |
| init | smart_ptr< ast::Expression > | 
| offset | int | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
Structure field declaration.
- EnumEntry
EnumEntry fields are
| value | smart_ptr< ast::Expression > | 
| at | |
| cppName | |
| name | |
Entry in the enumeration.
- Enumeration
Enumeration fields are
| _module | |
| at | |
| isPrivate | bool | 
| cppName | |
| list | vector<EnumEntry> | 
| annotations | |
| name | |
| external | bool | 
| baseType | |
Enumeration declaration.
- Function
Function fields are
| arguments | vector<smart_ptr<Variable>> | 
| fromGeneric | smart_ptr< ast::Function > | 
| result | smart_ptr< ast::TypeDecl > | 
| aotHash | uint64 | 
| totalGenLabel | int | 
| _module | |
| index | int | 
| at | |
| inferStack | vector<InferHistory> | 
| body | smart_ptr< ast::Expression > | 
| atDecl | |
| sideEffectFlags | |
| annotations | |
| totalStackSize | uint | 
| name | |
| moreFlags | |
| hash | uint64 | 
| classParent | |
| flags | |
Function property operators are
| origin | |
| getMangledNameHash | uint64 const | 
| isGeneric | bool const | 
Function declaration.
- BuiltInFunction
BuiltInFunction fields are
| arguments | vector<smart_ptr<Variable>> | 
| fromGeneric | smart_ptr< ast::Function > | 
| result | smart_ptr< ast::TypeDecl > | 
| aotHash | uint64 | 
| totalGenLabel | int | 
| _module | |
| index | int | 
| at | |
| inferStack | vector<InferHistory> | 
| body | smart_ptr< ast::Expression > | 
| atDecl | |
| cppName | |
| sideEffectFlags | |
| annotations | |
| totalStackSize | uint | 
| name | |
| moreFlags | |
| hash | uint64 | 
| classParent | |
| flags | |
Bindings for the ‘BuiltInFunction’, which is used for the builtin (bound) functions in Daslang.
- ExternalFnBase
ExternalFnBase fields are
| arguments | vector<smart_ptr<Variable>> | 
| fromGeneric | smart_ptr< ast::Function > | 
| result | smart_ptr< ast::TypeDecl > | 
| aotHash | uint64 | 
| totalGenLabel | int | 
| _module | |
| index | int | 
| at | |
| inferStack | vector<InferHistory> | 
| body | smart_ptr< ast::Expression > | 
| atDecl | |
| cppName | |
| sideEffectFlags | |
| annotations | |
| totalStackSize | uint | 
| name | |
| moreFlags | |
| hash | uint64 | 
| classParent | |
| flags | |
Base class for external function bindings.
- InferHistory
InferHistory fields are
| func | |
| at | |
Generic function infer history. Contains stack on where the function was first instantiated from (Function and LineInfo pairs).
- Variable
Variable fields are
| annotation | |
| initStackSize | uint | 
| _module | |
| index | int | 
| at | |
| stackTop | uint | 
| name | |
| init | smart_ptr< ast::Expression > | 
| _aka | |
| access_flags | |
| source | smart_ptr< ast::Expression > | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
Variable property operators are
| isAccessUnused | bool const | 
| getMangledNameHash | uint64 const | 
Variable declaration.
- AstContext
AstContext fields are
| func | smart_ptr< ast::Function > | 
| scopes | vector<smart_ptr<Expression>> | 
| blocks | vector<smart_ptr<Expression>> | 
| _loop | vector<smart_ptr<Expression>> | 
| _with | vector<smart_ptr<Expression>> | 
Lexical context for the particular expression. Contains current function, loops, blocks, scopes, and with sections.
- ExprBlock
ExprBlock fields are
| stackVarBottom | uint | 
| annotationDataSid | uint64 | 
| arguments | vector<smart_ptr<Variable>> | 
| at | |
| stackCleanVars | vector<pair`uint`uint> | 
| list | vector<smart_ptr<Expression>> | 
| returnType | smart_ptr< ast::TypeDecl > | 
| printFlags | |
| annotations | |
| stackTop | uint | 
| maxLabelIndex | int | 
| blockFlags | |
| finalList | vector<smart_ptr<Expression>> | 
| genFlags | |
| inFunction | |
| annotationData | uint64 | 
| stackVarTop | uint | 
| flags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
Any block expression, including regular blocks and all types of closures. For the closures block arguments are defined. Finally section is defined, if exists.
- ExprLet
ExprLet fields are
| atInit | |
| at | |
| letFlags | |
| printFlags | |
| genFlags | |
| variables | vector<smart_ptr<Variable>> | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Local variable declaration (let v = expr;).
- ExprStringBuilder
ExprStringBuilder fields are
| stringBuilderFlags | StringBuilderFlags | 
| at | |
| elements | vector<smart_ptr<Expression>> | 
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
String builder expression (“blah{blah1}blah2”).
- MakeFieldDecl
MakeFieldDecl fields are
| value | smart_ptr< ast::Expression > | 
| at | |
| name | |
| tag | smart_ptr< ast::Expression > | 
| flags | |
Part of ExprMakeStruct, declares single field (a = expr or a <- expr etc)
- ExprNamedCall
ExprNamedCall fields are
| arguments | |
| at | |
| nonNamedArguments | vector<smart_ptr<Expression>> | 
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Named call (call([argname1=expr1, argname2=expr2])).
- ExprLooksLikeCall
ExprLooksLikeCall fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Anything which looks like call (call(expr1,expr2)).
- ExprCallFunc
ExprCallFunc fields are
| atEnclosure | |
| func | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| stackTop | uint | 
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Actual function call (func(expr1,…)).
- ExprNew
ExprNew fields are
| atEnclosure | |
| func | |
| typeexpr | smart_ptr< ast::TypeDecl > | 
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| initializer | bool | 
| printFlags | |
| stackTop | uint | 
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
New expression (new Foo, new Bar(expr1..), but NOT new [[Foo …]])
- ExprCall
ExprCall fields are
| atEnclosure | |
| func | |
| arguments | vector<smart_ptr<Expression>> | 
| notDiscarded | bool | 
| at | |
| printFlags | |
| stackTop | uint | 
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| cmresAlias | bool | 
| doesNotNeedSp | bool | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Anything which looks like call (call(expr1,expr2)).
- ExprPtr2Ref
ExprPtr2Ref fields are
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| unsafeDeref | bool | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| assumeNoAlias | bool | 
| __rtti | string const | 
Pointer dereference (*expr or deref(expr)).
- ExprNullCoalescing
ExprNullCoalescing fields are
| defaultValue | smart_ptr< ast::Expression > | 
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| unsafeDeref | bool | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| assumeNoAlias | bool | 
| __rtti | string const | 
Null coalescing (expr1 ?? expr2).
- ExprAt
ExprAt fields are
| index | smart_ptr< ast::Expression > | 
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| atFlags | |
Index lookup (expr[expr1]).
- ExprSafeAt
ExprSafeAt fields are
| index | smart_ptr< ast::Expression > | 
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| atFlags | |
Safe index lookup (expr?[expr1]).
- ExprIs
ExprIs fields are
| typeexpr | smart_ptr< ast::TypeDecl > | 
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Is expression for variants and such (expr is Foo).
- ExprOp
Compilation time only base class for any operator.
- ExprOp2
ExprOp2 fields are
| atEnclosure | |
| func | |
| arguments | vector<smart_ptr<Expression>> | 
| right | smart_ptr< ast::Expression > | 
| at | |
| op | |
| printFlags | |
| stackTop | uint | 
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| left | smart_ptr< ast::Expression > | 
Two operand operator (expr1 + expr2)
- ExprOp3
ExprOp3 fields are
| atEnclosure | |
| func | |
| arguments | vector<smart_ptr<Expression>> | 
| right | smart_ptr< ast::Expression > | 
| at | |
| op | |
| printFlags | |
| stackTop | uint | 
| name | |
| subexpr | smart_ptr< ast::Expression > | 
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| left | smart_ptr< ast::Expression > | 
Three operand operator (cond ? expr1 : expr2)
- ExprCopy
ExprCopy fields are
| atEnclosure | |
| func | |
| arguments | vector<smart_ptr<Expression>> | 
| right | smart_ptr< ast::Expression > | 
| at | |
| copy_flags | |
| op | |
| printFlags | |
| stackTop | uint | 
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| left | smart_ptr< ast::Expression > | 
Copy operator (expr1 = expr2)
- ExprMove
ExprMove fields are
| atEnclosure | |
| func | |
| arguments | vector<smart_ptr<Expression>> | 
| right | smart_ptr< ast::Expression > | 
| at | |
| op | |
| move_flags | |
| printFlags | |
| stackTop | uint | 
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| left | smart_ptr< ast::Expression > | 
Move operator (expr1 <- expr2)
- ExprClone
ExprClone fields are
| atEnclosure | |
| func | |
| arguments | vector<smart_ptr<Expression>> | 
| right | smart_ptr< ast::Expression > | 
| at | |
| op | |
| printFlags | |
| stackTop | uint | 
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| left | smart_ptr< ast::Expression > | 
Clone operator (expr1 := expr2)
- ExprWith
ExprWith fields are
| at | |
| body | smart_ptr< ast::Expression > | 
| printFlags | |
| genFlags | |
| _with | smart_ptr< ast::Expression > | 
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
With section (with expr {your; block; here}).
- ExprAssume
ExprAssume fields are
| alias | |
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Assume expression (assume name = expr).
- ExprWhile
ExprWhile fields are
| at | |
| body | smart_ptr< ast::Expression > | 
| cond | smart_ptr< ast::Expression > | 
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
While loop (while expr {your; block; here;})
- ExprTryCatch
ExprTryCatch fields are
| try_block | smart_ptr< ast::Expression > | 
| at | |
| catch_block | smart_ptr< ast::Expression > | 
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Try-recover expression (try {your; block; here;} recover {your; recover; here;})
- ExprIfThenElse
ExprIfThenElse fields are
| if_flags | |
| at | |
| if_false | smart_ptr< ast::Expression > | 
| cond | smart_ptr< ast::Expression > | 
| printFlags | |
| genFlags | |
| if_true | smart_ptr< ast::Expression > | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
If-then-else expression (if expr1 {your; block; here;} else {your; block; here;}) including static_if’s.
- ExprFor
ExprFor fields are
| visibility | |
| allowIteratorOptimization | bool | 
| canShadow | bool | 
| iteratorsTags | vector<smart_ptr<Expression>> | 
| at | |
| body | smart_ptr< ast::Expression > | 
| iteratorsAt | vector<LineInfo> | 
| printFlags | |
| iterators | vector<das_string> | 
| iteratorVariables | vector<smart_ptr<Variable>> | 
| genFlags | |
| iteratorsAka | vector<das_string> | 
| sources | vector<smart_ptr<Expression>> | 
| iteratorsTupleExpansion | vector<uint8> | 
| flags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
For loop (for expr1 in expr2 {your; block; here;})
- ExprMakeLocal
ExprMakeLocal fields are
| makeType | smart_ptr< ast::TypeDecl > | 
| at | |
| printFlags | |
| makeFlags | |
| stackTop | uint | 
| extraOffset | uint | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Any make expression (ExprMakeBlock, ExprMakeTuple, ExprMakeVariant, ExprMakeStruct)
- ExprMakeStruct
ExprMakeStruct fields are
| makeType | smart_ptr< ast::TypeDecl > | 
| constructor | |
| at | |
| structs | vector<smart_ptr<MakeStruct>> | 
| printFlags | |
| makeFlags | |
| stackTop | uint | 
| extraOffset | uint | 
| genFlags | |
| _block | smart_ptr< ast::Expression > | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| makeStructFlags | |
Make structure expression ([[YourStruct v1=expr1elem1, v2=expr2elem1, …; v1=expr1elem2, … ]])
- ExprMakeVariant
ExprMakeVariant fields are
| variants | vector<smart_ptr<MakeFieldDecl>> | 
| makeType | smart_ptr< ast::TypeDecl > | 
| at | |
| printFlags | |
| makeFlags | |
| stackTop | uint | 
| extraOffset | uint | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Make variant expression ([YourVariant variantName=expr1])
- ExprMakeArray
ExprMakeArray fields are
| makeType | smart_ptr< ast::TypeDecl > | 
| values | vector<smart_ptr<Expression>> | 
| at | |
| recordType | smart_ptr< ast::TypeDecl > | 
| printFlags | |
| makeFlags | |
| stackTop | uint | 
| extraOffset | uint | 
| genFlags | |
| gen2 | bool | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Make array expression ([[auto 1;2;3]] or [{auto “foo”;”bar”}] for static and dynamic arrays accordingly).
- ExprMakeTuple
ExprMakeTuple fields are
| makeType | smart_ptr< ast::TypeDecl > | 
| values | vector<smart_ptr<Expression>> | 
| at | |
| recordType | smart_ptr< ast::TypeDecl > | 
| printFlags | |
| makeFlags | |
| stackTop | uint | 
| extraOffset | uint | 
| genFlags | |
| gen2 | bool | 
| isKeyValue | bool | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Make tuple expression ([[auto f1,f2,f3]])
- ExprArrayComprehension
ExprArrayComprehension fields are
| tableSyntax | bool | 
| at | |
| printFlags | |
| generatorSyntax | bool | 
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| exprFor | smart_ptr< ast::Expression > | 
| exprWhere | smart_ptr< ast::Expression > | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Array comprehension ([{for x in 0..3; x}], [[for y in range(100); x*2; where x!=13]] for arrays or generators accordingly).
- TypeInfoMacro
TypeInfoMacro fields are
| _module | |
| name | |
Compilation time only structure which holds live information about typeinfo expression for the specific macro.
- ExprTypeInfo
ExprTypeInfo fields are
| typeexpr | smart_ptr< ast::TypeDecl > | 
| extratrait | |
| macro | |
| subtrait | |
| at | |
| trait | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
typeinfo() expression (typeinfo(dim a), typeinfo(is_ref_type type<int&>))
- ExprTypeDecl
ExprTypeDecl fields are
| typeexpr | smart_ptr< ast::TypeDecl > | 
| at | |
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
typedecl() expression (typedecl(1+2))
- ExprLabel
ExprLabel fields are
| comment | |
| at | |
| labelName | int | 
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Label (label 13:)
- ExprGoto
ExprGoto fields are
| at | |
| labelName | int | 
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Goto expression (goto label 13, goto x)
- ExprRef2Value
ExprRef2Value fields are
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Compilation time only structure which holds reference to value conversion for the value types, i.e. goes from int& to int and such.
- ExprRef2Ptr
ExprRef2Ptr fields are
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Addr expresion (addr(expr))
- ExprAddr
ExprAddr fields are
| func | |
| target | |
| at | |
| funcType | smart_ptr< ast::TypeDecl > | 
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Function address (@@foobarfunc or @@foobarfunc<(int;int):bool>)
- ExprAssert
ExprAssert fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| isVerify | bool | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Assert expression (assert(x<13) or assert(x<13, “x is too big”))
- ExprQuote
ExprQuote fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Compilation time expression which holds its subexpressions but does not infer them (quote() <| x+5)
- ExprStaticAssert
ExprStaticAssert fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Static assert expression (static_assert(x<13) or static_assert(x<13, “x is too big”))
- ExprDebug
ExprDebug fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Debug expression (debug(x) or debug(x,”x=”))
- ExprInvoke
ExprInvoke fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| stackTop | uint | 
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| isInvokeMethod | bool | 
| cmresAlias | bool | 
| doesNotNeedSp | bool | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
ExprInvoke property operators are
| isCopyOrMove | bool const | 
Invoke expression (invoke(fn) or invoke(lamb, arg1, arg2, …))
- ExprErase
ExprErase fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Erase expression (erase(tab,key))
- ExprSetInsert
ExprSetInsert fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
insert(tab, at) for the table<keyType; void> aka table<keyType>
- ExprFind
ExprFind fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Find expression (find(tab,key) <| { your; block; here; })
- ExprKeyExists
ExprKeyExists fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Key exists expression (key_exists(tab,key))
- ExprAscend
ExprAscend fields are
| ascType | smart_ptr< ast::TypeDecl > | 
| at | |
| printFlags | |
| stackTop | uint | 
| ascendFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
New expression for ExprMakeLocal (new [[Foo fld=val,…]] or new [[Foo() fld=…]], but NOT new Foo())
- ExprCast
ExprCast fields are
| castFlags | |
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| castType | smart_ptr< ast::TypeDecl > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Any cast expression (cast<int> a, upcast<Foo> b or reinterpret<Bar?> c)
- ExprDelete
ExprDelete fields are
| at | |
| sizeexpr | smart_ptr< ast::Expression > | 
| native | bool | 
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Delete expression (delete blah)
- ExprVar
ExprVar fields are
| at | |
| variable | smart_ptr< ast::Variable > | 
| varFlags | |
| printFlags | |
| argumentIndex | int | 
| name | |
| genFlags | |
| pBlock | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Variable access (foo)
- ExprTag
ExprTag fields are
| value | smart_ptr< ast::Expression > | 
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| name | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Compilation time only tag expression, used for reification. For example $c(….).
- ExprSwizzle
ExprSwizzle fields are
| value | smart_ptr< ast::Expression > | 
| at | |
| fieldFlags | |
| mask | |
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
| fields | vector<uint8> | 
Vector swizzle operatrion (vec.xxy or vec.y)
- ExprField
ExprField fields are
| annotation | smart_ptr< rtti::TypeAnnotation > | 
| value | smart_ptr< ast::Expression > | 
| at | |
| fieldIndex | int | 
| fieldFlags | |
| derefFlags | |
| printFlags | |
| name | |
| atField | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
ExprField property operators are
| field | |
Field lookup (foo.bar)
- ExprSafeField
ExprSafeField fields are
| annotation | smart_ptr< rtti::TypeAnnotation > | 
| value | smart_ptr< ast::Expression > | 
| at | |
| fieldIndex | int | 
| fieldFlags | |
| skipQQ | bool | 
| derefFlags | |
| printFlags | |
| name | |
| atField | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Safe field lookup (foo?.bar)
- ExprIsVariant
ExprIsVariant fields are
| annotation | smart_ptr< rtti::TypeAnnotation > | 
| value | smart_ptr< ast::Expression > | 
| at | |
| fieldIndex | int | 
| fieldFlags | |
| derefFlags | |
| printFlags | |
| name | |
| atField | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Is expression (foo is bar)
- ExprAsVariant
ExprAsVariant fields are
| annotation | smart_ptr< rtti::TypeAnnotation > | 
| value | smart_ptr< ast::Expression > | 
| at | |
| fieldIndex | int | 
| fieldFlags | |
| derefFlags | |
| printFlags | |
| name | |
| atField | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
As expression (foo as bar)
- ExprSafeAsVariant
ExprSafeAsVariant fields are
| annotation | smart_ptr< rtti::TypeAnnotation > | 
| value | smart_ptr< ast::Expression > | 
| at | |
| fieldIndex | int | 
| fieldFlags | |
| skipQQ | bool | 
| derefFlags | |
| printFlags | |
| name | |
| atField | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Safe as expression (foo? as bar)
- ExprOp1
ExprOp1 fields are
| atEnclosure | |
| func | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| op | |
| printFlags | |
| stackTop | uint | 
| name | |
| subexpr | smart_ptr< ast::Expression > | 
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Single operator expression (+a or -a or !a or ~a)
- ExprReturn
ExprReturn fields are
| returnFunc | |
| at | |
| printFlags | |
| stackTop | uint | 
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _block | |
| refStackTop | uint | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| returnFlags | |
| __rtti | string const | 
Return expression (return or return foo, or return <- foo)
- ExprYield
ExprYield fields are
| at | |
| printFlags | |
| subexpr | smart_ptr< ast::Expression > | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
| returnFlags | |
Yield expression (yield foo or yeild <- bar)
- ExprBreak
ExprBreak fields are
| at | |
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Break expression (break)
- ExprContinue
ExprContinue fields are
| at | |
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Continue expression (continue)
- ExprConst
ExprConst fields are
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Compilation time constant expression base class
- ExprFakeContext
ExprFakeContext fields are
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Compilation time only fake context expression. Will simulate as current evaluation Context.
- ExprFakeLineInfo
ExprFakeLineInfo fields are
| value | void? | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprFakeLineInfo property operators are
| getValue | void? | 
Compilation time only fake lineinfo expression. Will simulate as current file and line LineInfo.
- ExprConstPtr
ExprConstPtr fields are
| value | void? | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstPtr property operators are
| getValue | void? | 
Null (null). Technically can be any other pointer, but it is used for nullptr.
- ExprConstInt8
ExprConstInt8 fields are
| value | int8 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstInt8 property operators are
| getValue | int8 const | 
Holds int8 constant.
- ExprConstInt16
ExprConstInt16 fields are
| value | int16 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstInt16 property operators are
| getValue | int16 const | 
Holds int16 constant.
- ExprConstInt64
ExprConstInt64 fields are
| value | int64 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstInt64 property operators are
| getValue | int64 const | 
Holds int64 constant.
- ExprConstInt
ExprConstInt fields are
| value | int | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstInt property operators are
| getValue | int const | 
Holds int constant.
- ExprConstInt2
ExprConstInt2 fields are
| value | int2 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstInt2 property operators are
| getValue | int2 const | 
Holds int2 constant.
- ExprConstInt3
ExprConstInt3 fields are
| value | int3 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstInt3 property operators are
| getValue | int3 const | 
Holds int3 constant.
- ExprConstInt4
ExprConstInt4 fields are
| value | int4 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstInt4 property operators are
| getValue | int4 const | 
Holds int4 constant.
- ExprConstUInt8
ExprConstUInt8 fields are
| value | uint8 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstUInt8 property operators are
| getValue | uint8 const | 
Holds uint8 constant.
- ExprConstUInt16
ExprConstUInt16 fields are
| value | uint16 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstUInt16 property operators are
| getValue | uint16 const | 
Holds uint16 constant.
- ExprConstUInt64
ExprConstUInt64 fields are
| value | uint64 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstUInt64 property operators are
| getValue | uint64 const | 
Holds uint64 constant.
- ExprConstUInt
ExprConstUInt fields are
| value | uint | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstUInt property operators are
| getValue | uint const | 
Holds uint constant.
- ExprConstUInt2
ExprConstUInt2 fields are
| value | uint2 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstUInt2 property operators are
| getValue | uint2 const | 
Holds uint2 constant.
- ExprConstUInt3
ExprConstUInt3 fields are
| value | uint3 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstUInt3 property operators are
| getValue | uint3 const | 
Holds uint3 constant.
- ExprConstUInt4
ExprConstUInt4 fields are
| value | uint4 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstUInt4 property operators are
| getValue | uint4 const | 
Holds uint4 constant.
- ExprConstRange
ExprConstRange fields are
| value | range | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstRange property operators are
| getValue | range const | 
Holds range constant.
- ExprConstURange
ExprConstURange fields are
| value | urange | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstURange property operators are
| getValue | urange const | 
Holds urange constant.
- ExprConstRange64
ExprConstRange64 fields are
| value | range64 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstRange64 property operators are
| getValue | range64 const | 
Holds range64 constant.
- ExprConstURange64
ExprConstURange64 fields are
| value | urange64 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstURange64 property operators are
| getValue | urange64 const | 
Holds urange64 constant.
- ExprConstFloat
ExprConstFloat fields are
| value | float | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstFloat property operators are
| getValue | float const | 
Holds float constant.
- ExprConstFloat2
ExprConstFloat2 fields are
| value | float2 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstFloat2 property operators are
| getValue | float2 const | 
Holds float2 constant.
- ExprConstFloat3
ExprConstFloat3 fields are
| value | float3 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstFloat3 property operators are
| getValue | float3 const | 
Holds float3 constant.
- ExprConstFloat4
ExprConstFloat4 fields are
| value | float4 | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstFloat4 property operators are
| getValue | float4 const | 
Holds float4 constant.
- ExprConstDouble
ExprConstDouble fields are
| value | double | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstDouble property operators are
| getValue | double const | 
Holds double constant.
- ExprConstBool
ExprConstBool fields are
| value | bool | 
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
ExprConstBool property operators are
| getValue | bool const | 
Holds bool constant.
- CaptureEntry
CaptureEntry fields are
| name | |
| mode | |
Single entry in lambda capture.
- ExprMakeBlock
ExprMakeBlock fields are
| mmFlags | |
| at | |
| printFlags | |
| stackTop | uint | 
| aotFunctorName | |
| genFlags | |
| _block | smart_ptr< ast::Expression > | 
| _capture | vector<CaptureEntry> | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Any closure. Holds block as well as capture information in CaptureEntry.
- ExprMakeGenerator
ExprMakeGenerator fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| iterType | smart_ptr< ast::TypeDecl > | 
| _capture | vector<CaptureEntry> | 
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Generator closure (generator<int> or generator<Foo&>)
- ExprMemZero
ExprMemZero fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Memzero (memzero(expr))
- ExprConstEnumeration
ExprConstEnumeration fields are
| value | |
| at | |
| printFlags | |
| enumType | smart_ptr< ast::Enumeration > | 
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Holds enumeration constant, both type and entry (Foo bar).
- ExprConstBitfield
ExprConstBitfield fields are
| value | bitfield<> | 
| at | |
| bitfieldType | smart_ptr< ast::TypeDecl > | 
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
ExprConstBitfield property operators are
| getValue | uint64 const | 
Holds bitfield constant (Foo bar).
- ExprConstString
ExprConstString fields are
| value | |
| at | |
| printFlags | |
| genFlags | |
| baseType | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Holds string constant.
- ExprUnsafe
ExprUnsafe fields are
| at | |
| body | smart_ptr< ast::Expression > | 
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Unsafe expression (unsafe(addr(x)))
- VisitorAdapter
Adapter for the AstVisitor interface.
- FunctionAnnotation
Adapter for the AstFunctionAnnotation.
- StructureAnnotation
Adapter for the AstStructureAnnotation.
- EnumerationAnnotation
Adapater for the AstEnumearationAnnotation.
- PassMacro
PassMacro fields are
| name | |
Adapter for the AstPassMacro.
- ReaderMacro
ReaderMacro fields are
| _module | |
| name | |
Adapter for the AstReaderMacro.
- CommentReader
Adapter for the AstCommentReader.
- CallMacro
CallMacro fields are
| _module | |
| name | |
Adapter for the AstCallMacro.
- VariantMacro
VariantMacro fields are
| name | |
Adapter for the AstVariantMacro.
- ForLoopMacro
ForLoopMacro fields are
| name | |
Adapter for the ‘AstForLoopMacro’.
- CaptureMacro
CaptureMacro fields are
| name | |
Adapter for the AstCaptureMacro.
- TypeMacro
TypeMacro fields are
| name | |
Compilation time only structure which holds live information about type macro.
- SimulateMacro
SimulateMacro fields are
| name | |
Adapter for the AstSimulateMacro.
- ExprReader
ExprReader fields are
| macro | smart_ptr< ast::ReaderMacro > | 
| sequence | |
| at | |
| printFlags | |
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| __rtti | string const | 
| flags | |
Compilation time only expression which holds temporary information for the AstReaderMacro.
- ExprCallMacro
ExprCallMacro fields are
| atEnclosure | |
| arguments | vector<smart_ptr<Expression>> | 
| macro | |
| at | |
| printFlags | |
| name | |
| argumentsFailedToInfer | bool | 
| genFlags | |
| _type | smart_ptr< ast::TypeDecl > | 
| flags | |
| __rtti | string const | 
Compilation time only expression which holds temporary infromation for the AstCallMacro.
12.4. Call macros
- quote
Returns ast expression tree of the input, without evaluating or infering it. This is useful for macros which generate code as a shortcut for generating boilerplate code.
12.5. Typeinfo macros
- ast_typedecl
Returns TypeDeclPtr of the type specified via type<> or subexpression type, for example typeinfo(ast_typedecl type<int?>)
- ast_function
Returns FunctionPtr to the function specified by subexrepssion, for example typeinfo(ast_function @@foo)
12.7. Classes
- AstFunctionAnnotation
Annotation macro which is attached to the Function.
it defines as follows
- AstFunctionAnnotation.transform(self: AstFunctionAnnotation; call: smart_ptr<ExprCallFunc>; errors: das_string)
transform returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| call | smart_ptr< ast::ExprCallFunc > | 
| errors | |
This callback occurs during the infer pass of the compilation. If no transformation is needed, the callback should return null. errors is filled with the transformation errors should they occur. Returned value replaces function call in the ast.
- AstFunctionAnnotation.verifyCall(self: AstFunctionAnnotation; call: smart_ptr<ExprCallFunc>; args: AnnotationArgumentList const; progArgs: AnnotationArgumentList const; errors: das_string)
verifyCall returns bool
| argument | argument type | 
|---|---|
| self | |
| call | smart_ptr< ast::ExprCallFunc > | 
| args | |
| progArgs | |
| errors | |
This callback occurs during the lint pass of the compilation. If call has lint errors it should return false and errors is filled with the lint errors.
- AstFunctionAnnotation.apply(self: AstFunctionAnnotation; func: FunctionPtr; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string)
apply returns bool
| argument | argument type | 
|---|---|
| self | |
| func | |
| group | |
| args | |
| errors | |
This callback occurs during the parse pass of the compilation on the function itself. If function has application errors it should return false and errors field.
- AstFunctionAnnotation.generic_apply(self: AstFunctionAnnotation; func: FunctionPtr; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string)
generic_apply returns bool
| argument | argument type | 
|---|---|
| self | |
| func | |
| group | |
| args | |
| errors | |
This call occurs during the infer pass of the compilation, when generic function is instanced on the instance of the function. If function has application errors it should return false and errors field.
- AstFunctionAnnotation.finish(self: AstFunctionAnnotation; func: FunctionPtr; group: ModuleGroup; args: AnnotationArgumentList const; progArgs: AnnotationArgumentList const; errors: das_string)
finish returns bool
| argument | argument type | 
|---|---|
| self | |
| func | |
| group | |
| args | |
| progArgs | |
| errors | |
This callback occurs during the finalize allocations pass of the compilation, after the stack is allocated, on the function itself. If function has finalization errors it should return false and errors field.
- AstFunctionAnnotation.patch(self: AstFunctionAnnotation; func: FunctionPtr; group: ModuleGroup; args: AnnotationArgumentList const; progArgs: AnnotationArgumentList const; errors: das_string; astChanged: bool&)
patch returns bool
| argument | argument type | 
|---|---|
| self | |
| func | |
| group | |
| args | |
| progArgs | |
| errors | |
| astChanged | bool& | 
This callback occurs right after the infer pass of the compilation on the function itself. If function has patching errors it should return false and errors field. If the astChanged flag is set, infer pass will be repeated. This allows to fix up the function after the infer pass with all the type information fully available.
- AstFunctionAnnotation.fixup(self: AstFunctionAnnotation; func: FunctionPtr; group: ModuleGroup; args: AnnotationArgumentList const; progArgs: AnnotationArgumentList const; errors: das_string)
fixup returns bool
| argument | argument type | 
|---|---|
| self | |
| func | |
| group | |
| args | |
| progArgs | |
| errors | |
This callback occurs during the finalize allocations pass of the compilation, before the stack is allocated, on the function itself. If function has fixup errors it should return false and errors field.
- AstFunctionAnnotation.lint(self: AstFunctionAnnotation; func: FunctionPtr; group: ModuleGroup; args: AnnotationArgumentList const; progArgs: AnnotationArgumentList const; errors: das_string)
lint returns bool
| argument | argument type | 
|---|---|
| self | |
| func | |
| group | |
| args | |
| progArgs | |
| errors | |
This callback occurs during the lint pass of the compilation on the function itself. If function has lint errors it should return false and errors field.
- AstFunctionAnnotation.complete(self: AstFunctionAnnotation; func: FunctionPtr; ctx: smart_ptr<Context>)
| argument | argument type | 
|---|---|
| self | |
| func | |
| ctx | smart_ptr< rtti::Context > | 
This callback occurs as the final stage of Context simulation.
- AstFunctionAnnotation.isCompatible(self: AstFunctionAnnotation; func: FunctionPtr; types: VectorTypeDeclPtr; decl: AnnotationDeclaration const; errors: das_string)
isCompatible returns bool
| argument | argument type | 
|---|---|
| self | |
| func | |
| types | |
| decl | |
| errors | |
This callback occurs during function type matching for both generic and regular functions. If function can accept given argument types it should return true, otherwise errors is filled with the matching problems.
- AstFunctionAnnotation.isSpecialized(self: AstFunctionAnnotation)
isSpecialized returns bool
This callback occurs during function type matching. If function requires special type matching (i.e. isCompatible` is implemented) it should return true.
- AstFunctionAnnotation.appendToMangledName(self: AstFunctionAnnotation; func: FunctionPtr; decl: AnnotationDeclaration const; mangledName: das_string)
| argument | argument type | 
|---|---|
| self | |
| func | |
| decl | |
| mangledName | |
This call occurs when the function mangled name is requested. This is the way for the macro to ensure function is unique, even though type signature may be identical.
- AstBlockAnnotation
Annotation macro which is attached to the ExprBlock.
it defines as follows
- AstBlockAnnotation.apply(self: AstBlockAnnotation; blk: smart_ptr<ExprBlock>; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string)
apply returns bool
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > | 
| group | |
| args | |
| errors | |
This callback occurs during the parse pass of the compilation. If block has application errors it should return false and errors field.
- AstBlockAnnotation.finish(self: AstBlockAnnotation; blk: smart_ptr<ExprBlock>; group: ModuleGroup; args: AnnotationArgumentList const; progArgs: AnnotationArgumentList const; errors: das_string)
finish returns bool
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > | 
| group | |
| args | |
| progArgs | |
| errors | |
This callback occurs during the finalize allocations pass of the compilation, after the stack is allocated. If block has finalization errors it should return false and errors field.
- AstStructureAnnotation
Annotation macro which is attached to the Structure.
it defines as follows
- AstStructureAnnotation.apply(self: AstStructureAnnotation; st: StructurePtr; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string)
apply returns bool
| argument | argument type | 
|---|---|
| self | |
| st | |
| group | |
| args | |
| errors | |
This callback occurs during the parse pass of the compilation. If structure has application errors it should return false and errors field.
- AstStructureAnnotation.finish(self: AstStructureAnnotation; st: StructurePtr; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string)
finish returns bool
| argument | argument type | 
|---|---|
| self | |
| st | |
| group | |
| args | |
| errors | |
This callback occurs during the finalize allocations pass of the compilation, after the stack is allocated. If structure has finalization errors it should return false and errors field.
- AstStructureAnnotation.patch(self: AstStructureAnnotation; st: StructurePtr; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string; astChanged: bool&)
patch returns bool
| argument | argument type | 
|---|---|
| self | |
| st | |
| group | |
| args | |
| errors | |
| astChanged | bool& | 
This callback occurs right after the infer pass of the compilation on the structure itself. If structure has patching errors it should return false and errors field. If the astChanged flag is set, infer pass will be repeated. This allows to fix up the function after the infer pass with all the type information fully available.
- AstStructureAnnotation.complete(self: AstStructureAnnotation; st: StructurePtr; ctx: smart_ptr<Context>)
| argument | argument type | 
|---|---|
| self | |
| st | |
| ctx | smart_ptr< rtti::Context > | 
This callback occurs as the final stage of Context simulation.
- AstStructureAnnotation.aotPrefix(self: AstStructureAnnotation; st: StructurePtr; args: AnnotationArgumentList const; writer: StringBuilderWriter)
| argument | argument type | 
|---|---|
| self | |
| st | |
| args | |
| writer | |
This callback occurs during the AOT. It is used to generate CPP code before the structure declaration.
- AstStructureAnnotation.aotBody(self: AstStructureAnnotation; st: StructurePtr; args: AnnotationArgumentList const; writer: StringBuilderWriter)
| argument | argument type | 
|---|---|
| self | |
| st | |
| args | |
| writer | |
This callback occurs during the AOT. It is used to generate CPP code in the body of the structure.
- AstStructureAnnotation.aotSuffix(self: AstStructureAnnotation; st: StructurePtr; args: AnnotationArgumentList const; writer: StringBuilderWriter)
| argument | argument type | 
|---|---|
| self | |
| st | |
| args | |
| writer | |
This callback occurs during the AOT. It is used to generate CPP code after the structure declaration.
- AstPassMacro
This macro is used to implement custom infer passes.
it defines as follows
- AstPassMacro.apply(self: AstPassMacro; prog: ProgramPtr; mod: Module? const)
apply returns bool
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
This callback is called after infer pass. If macro did any work it returns true; infer pass is restarted a the memoent when first macro which did any work.
- AstVariantMacro
This macro is used to implement custom is, as and ?as expressions.
it defines as follows
- AstVariantMacro.visitExprIsVariant(self: AstVariantMacro; prog: ProgramPtr; mod: Module? const; expr: smart_ptr<ExprIsVariant> const)
visitExprIsVariant returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | smart_ptr< ast::ExprIsVariant > const | 
This callback occurs during the infer pass for every ExprIsVariant (a is b). If no work is necessary it should return null, otherwise expression will be replaced by the result.
- AstVariantMacro.visitExprAsVariant(self: AstVariantMacro; prog: ProgramPtr; mod: Module? const; expr: smart_ptr<ExprAsVariant> const)
visitExprAsVariant returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | smart_ptr< ast::ExprAsVariant > const | 
This callback occurs during the infer pass for every ExprAsVariant (a as b). If no work is necessary it should return null, otherwise expression will be replaced by the result.
- AstVariantMacro.visitExprSafeAsVariant(self: AstVariantMacro; prog: ProgramPtr; mod: Module? const; expr: smart_ptr<ExprSafeAsVariant> const)
visitExprSafeAsVariant returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | smart_ptr< ast::ExprSafeAsVariant > const | 
This callback occurs during the infer pass for every ExprSafeIsVariant (a ?as b). If no work is necessary it should return null, otherwise expression will be replaced by the result.
- AstForLoopMacro
This macro is used to implement custom for-loop handlers. It is similar to visitExprFor callback of the AstVisitor.
it defines as follows
- AstForLoopMacro.visitExprFor(self: AstForLoopMacro; prog: ProgramPtr; mod: Module? const; expr: smart_ptr<ExprFor> const)
visitExprFor returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | smart_ptr< ast::ExprFor > const | 
This callback occurs during the infer pass for every ExprFor. If no work is necessary it should return null, otherwise expression will be replaced by the result.
- AstCaptureMacro
This macro is used to implement custom lambda capturing functionality.
it defines as follows
- AstCaptureMacro.captureExpression(self: AstCaptureMacro; prog: Program? const; mod: Module? const; expr: ExpressionPtr; etype: TypeDeclPtr)
captureExpression returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| prog | rtti::Program ? const | 
| mod | rtti::Module ? const | 
| expr | |
| etype | |
This callback occurs during the ‘infer’ pass for every time a lambda expression (or generator) is captured for every captured expression.
- AstCaptureMacro.captureFunction(self: AstCaptureMacro; prog: Program? const; mod: Module? const; lcs: Structure?; fun: FunctionPtr)
| argument | argument type | 
|---|---|
| self | |
| prog | rtti::Program ? const | 
| mod | rtti::Module ? const | 
| lcs | |
| fun | |
This callback occurs during the ‘infer’ pass for every time a lambda expression (or generator) is captured, for every generated lambda (or generator) function.
- AstTypeMacro
Macro which is part of the type declaration, for example $type_macro_name<type_macro_type_args…>(type_macro_args).
it defines as follows
- AstTypeMacro.visit(self: AstTypeMacro; prog: ProgramPtr; mod: Module? const; td: TypeDeclPtr; passT: TypeDeclPtr)
visit returns TypeDeclPtr
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| td | |
| passT | |
This callback occurs after the type macro is visited.
- AstSimulateMacro
Macro which is attached to the context simulation.
it defines as follows
- AstSimulateMacro.preSimulate(self: AstSimulateMacro; prog: Program? const; ctx: Context? const)
preSimulate returns bool
| argument | argument type | 
|---|---|
| self | |
| prog | rtti::Program ? const | 
| ctx | rtti::Context ? const | 
This callback occurs before the context simulation.
- AstSimulateMacro.simulate(self: AstSimulateMacro; prog: Program? const; ctx: Context? const)
simulate returns bool
| argument | argument type | 
|---|---|
| self | |
| prog | rtti::Program ? const | 
| ctx | rtti::Context ? const | 
This callback occurs after the context simulation.
- AstReaderMacro
This macro is used to implement custom parsing functionality, i.e. anything starting with %NameOfTheMacro~ and ending when the macro says it ends.
it defines as follows
- AstReaderMacro.accept(self: AstReaderMacro; prog: ProgramPtr; mod: Module? const; expr: ExprReader? const; ch: int const; info: LineInfo const)
accept returns bool
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | ast::ExprReader ? const | 
| ch | int const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass for every character. When the macro is done with the input (i.e. recognizeable input ends) it should return false. Typically characters are appended to the expr.sequence inside the ExprReader.
- AstReaderMacro.suffix(self: AstReaderMacro; prog: ProgramPtr; mod: Module? const; expr: ExprReader? const; info: LineInfo const; outLine: int&; outFile: FileInfo?&)
suffix returns string
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | ast::ExprReader ? const | 
| info | rtti::LineInfo const | 
| outLine | int& | 
| outFile | |
This callback occurs during the parse pass after the macro is done with the input. It returns text, which is to be parsed again by the parser.
- AstReaderMacro.visit(self: AstReaderMacro; prog: ProgramPtr; mod: Module? const; expr: smart_ptr<ExprReader> const)
visit returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | smart_ptr< ast::ExprReader > const | 
This callback occurs during the infer pass for every instance of ExprReader for that specific macro. Macro needs to convert ExprReader to some meaningful expression.
- AstCommentReader
This macro is used to implement custom comment parsing function (such as doxygen-style documentation etc).
it defines as follows
- AstCommentReader.open(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; cpp: bool const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| cpp | bool const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass for every // or /* sequence which indicated begining of the comment section.
- AstCommentReader.accept(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; ch: int const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| ch | int const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass for every character in the comment section.
- AstCommentReader.close(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass for every new line or */ sequence which indicates end of the comment section.
- AstCommentReader.beforeStructure(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass before the structure body block.
- AstCommentReader.afterStructure(self: AstCommentReader; st: StructurePtr; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| st | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass after the structure body block.
- AstCommentReader.beforeStructureFields(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass before the first structure field is declared.
- AstCommentReader.afterStructureField(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass after the structure field is declared (after the following comment section, should it have one).
- AstCommentReader.afterStructureFields(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass after the last structure field is declared.
- AstCommentReader.beforeFunction(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass before the function body block.
- AstCommentReader.afterFunction(self: AstCommentReader; fn: FunctionPtr; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| fn | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass after the function body block.
- AstCommentReader.beforeGlobalVariables(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass before the first global variable declaration but after let or var keyword.
- AstCommentReader.afterGlobalVariable(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass after global variable is declaraed (after the following comment section, should it have one).
- AstCommentReader.afterGlobalVariables(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass after every global variable in the declaration is declared.
- AstCommentReader.beforeVariant(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass before the variant alias declaration.
- AstCommentReader.beforeVariantEntries(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse before the first variant entry is declared.
- AstCommentReader.afterVariantEntry(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the variant entry is declared (after the following comment section, should it have one).
- AstCommentReader.afterVariantEntries(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the last variant entry is declared.
- AstCommentReader.afterVariant(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the variant alias declaration.
- AstCommentReader.beforeTuple(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass before the tuple declaration.
- AstCommentReader.beforeTupleEntries(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse before the first tuple entry is declared.
- AstCommentReader.afterTupleEntry(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the tuple entry is declared (after the following comment section, should it have one).
- AstCommentReader.afterTupleEntries(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the last tuple entry is declared.
- AstCommentReader.afterTuple(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the tuple declaration.
- AstCommentReader.beforeBitfield(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse before the bitfield declaration.
- AstCommentReader.beforeBitfieldEntries(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse before the first bitfield entry is declared.
- AstCommentReader.afterBitfieldEntry(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the bitfield entry is declared (after the following comment section, should it have one).
- AstCommentReader.afterBitfieldEntries(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the last bitfield entry is declared.
- AstCommentReader.afterBitfield(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the bitfield declaration.
- AstCommentReader.beforeEnumeration(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse before the enumeration declaration.
- AstCommentReader.beforeEnumerationEntries(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse before the first enumeration entry is declared.
- AstCommentReader.afterEnumerationEntry(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the enumeration entry is declared (after the following comment section, should it have one).
- AstCommentReader.afterEnumerationEntries(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the last enumeration entry is declared.
- AstCommentReader.afterEnumeration(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse after the enumeration declaration.
- AstCommentReader.beforeAlias(self: AstCommentReader; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass before the type alias declaration.
- AstCommentReader.afterAlias(self: AstCommentReader; name: string const; prog: ProgramPtr; mod: Module? const; info: LineInfo const)
| argument | argument type | 
|---|---|
| self | |
| name | string const | 
| prog | |
| mod | rtti::Module ? const | 
| info | rtti::LineInfo const | 
This callback occurs during the parse pass after the type alias declaration.
- AstCallMacro
This macro is used to implement custom call-like expressions ( like foo(bar,bar2,…) ).
it defines as follows
- AstCallMacro.preVisit(self: AstCallMacro; prog: ProgramPtr; mod: Module? const; expr: smart_ptr<ExprCallMacro> const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | smart_ptr< ast::ExprCallMacro > const | 
This callback occurs during the infer pass for every ExprCallMacro, before its arguments are inferred.
- AstCallMacro.visit(self: AstCallMacro; prog: ProgramPtr; mod: Module? const; expr: smart_ptr<ExprCallMacro> const)
visit returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
| expr | smart_ptr< ast::ExprCallMacro > const | 
This callback occurs during the infer pass for every ExprCallMacro, after its arguments are inferred. When fully inferred macro is expected to replace ExprCallMacro with meaningful expression.
- AstCallMacro.canVisitArgument(self: AstCallMacro; expr: smart_ptr<ExprCallMacro> const; argIndex: int const)
canVisitArgument returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCallMacro > const | 
| argIndex | int const | 
This callback occurs during the infer pass before the arguments of the call macro are visited. If callback returns true, the argument of given index is visited, otherwise it acts like a query expression.
- AstCallMacro.canFoldReturnResult(self: AstCallMacro; expr: smart_ptr<ExprCallMacro> const)
canFoldReturnResult returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCallMacro > const | 
If true the enclosing function can infer return result as void when unspecified. If false function will have to wait for the macro to fold.
- AstTypeInfoMacro
This macro is used to implement type info traits, i.e. typeinfo(YourTraitHere …) expressions.
it defines as follows
- AstTypeInfoMacro.getAstChange(self: AstTypeInfoMacro; expr: smart_ptr<ExprTypeInfo> const; errors: das_string)
getAstChange returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTypeInfo > const | 
| errors | |
This callback occurs during the infer pass. If no changes are necessary it should return null, otherwise expression will be replaced by the result. errors should be filled if trait is malformed.
- AstTypeInfoMacro.getAstType(self: AstTypeInfoMacro; lib: ModuleLibrary; expr: smart_ptr<ExprTypeInfo> const; errors: das_string)
getAstType returns TypeDeclPtr
| argument | argument type | 
|---|---|
| self | |
| lib | |
| expr | smart_ptr< ast::ExprTypeInfo > const | 
| errors | |
This callback occurs during the infer pass. It should return type of the typeinfo expression. That way trait can return Type, and not Expression.
- AstEnumerationAnnotation
Annotation macro which is attached to Enumeration.
it defines as follows
- AstEnumerationAnnotation.apply(self: AstEnumerationAnnotation; st: EnumerationPtr; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string)
apply returns bool
| argument | argument type | 
|---|---|
| self | |
| st | |
| group | |
| args | |
| errors | |
This callback occurs during the parse pass. If any errors occur errors should be filled and false should be returned.
- AstVisitor
This class implements Visitor interface for the ast tree. For typical expression two methods are provided: preVisitExpr and visitExpr. preVisitExpr occurs before the subexpressions are visited, and visitExpr occurs after the subexpressions are visited. visitExpr can return new expression which will replace the original one, or original expression - if no changes are necessary. There are other potential callbacks deppending of the nature of expression, which represent particular sections of the ast tree. Additionally ‘preVisitExpression’ and visitExpression are called before and after expression specific callbacks.
it defines as follows
- AstVisitor.preVisitProgram(self: AstVisitor; prog: ProgramPtr)
| argument | argument type | 
|---|---|
| self | |
| prog | |
before entire program, put your initialization there.
- AstVisitor.visitProgram(self: AstVisitor; porg: ProgramPtr)
| argument | argument type | 
|---|---|
| self | |
| porg | |
after entire program, put your finalizers there.
- AstVisitor.preVisitProgramBody(self: AstVisitor; prog: ProgramPtr; mod: Module? const)
| argument | argument type | 
|---|---|
| self | |
| prog | |
| mod | rtti::Module ? const | 
after enumerations, structures, and aliases, but before global variables, generics and functions.
- AstVisitor.preVisitModule(self: AstVisitor; mod: Module? const)
| argument | argument type | 
|---|---|
| self | |
| mod | rtti::Module ? const | 
before each module
- AstVisitor.visitModule(self: AstVisitor; mod: Module? const)
| argument | argument type | 
|---|---|
| self | |
| mod | rtti::Module ? const | 
after each module
- AstVisitor.preVisitExprTypeDecl(self: AstVisitor; expr: smart_ptr<ExprTypeDecl> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTypeDecl > const | 
before ExprTypeDecl
- AstVisitor.visitExprTypeDecl(self: AstVisitor; expr: smart_ptr<ExprTypeDecl> const)
visitExprTypeDecl returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTypeDecl > const | 
after ExprTypeDecl
- AstVisitor.preVisitTypeDecl(self: AstVisitor; typ: TypeDeclPtr)
| argument | argument type | 
|---|---|
| self | |
| typ | |
before a type declaration anywhere. yor type validation code typically goes here
- AstVisitor.visitTypeDecl(self: AstVisitor; typ: TypeDeclPtr)
visitTypeDecl returns TypeDeclPtr
| argument | argument type | 
|---|---|
| self | |
| typ | |
after a type declaration
- AstVisitor.preVisitAlias(self: AstVisitor; typ: TypeDeclPtr; name: das_string const)
| argument | argument type | 
|---|---|
| self | |
| typ | |
| name | builtin::das_string const | 
before TypeDecl
- AstVisitor.visitAlias(self: AstVisitor; typ: TypeDeclPtr; name: das_string const)
visitAlias returns TypeDeclPtr
| argument | argument type | 
|---|---|
| self | |
| typ | |
| name | builtin::das_string const | 
after TypeDecl
- AstVisitor.canVisitEnumeration(self: AstVisitor; arg: Enumeration? const)
canVisitEnumeration returns bool
| argument | argument type | 
|---|---|
| self | |
| arg | ast::Enumeration ? const | 
if true Enumeration will be visited
- AstVisitor.preVisitEnumeration(self: AstVisitor; enu: EnumerationPtr)
| argument | argument type | 
|---|---|
| self | |
| enu | |
before Enumeration
- AstVisitor.preVisitEnumerationValue(self: AstVisitor; enu: EnumerationPtr; name: das_string const; value: ExpressionPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| enu | |
| name | builtin::das_string const | 
| value | |
| last | bool const | 
before every enumeration entry
- AstVisitor.visitEnumerationValue(self: AstVisitor; enu: EnumerationPtr; name: das_string const; value: ExpressionPtr; last: bool const)
visitEnumerationValue returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| enu | |
| name | builtin::das_string const | 
| value | |
| last | bool const | 
after every enumeration entry
- AstVisitor.visitEnumeration(self: AstVisitor; enu: EnumerationPtr)
visitEnumeration returns EnumerationPtr
| argument | argument type | 
|---|---|
| self | |
| enu | |
after Enumeration
- AstVisitor.canVisitStructure(self: AstVisitor; arg: Structure? const)
canVisitStructure returns bool
| argument | argument type | 
|---|---|
| self | |
| arg | ast::Structure ? const | 
if true Structure will be visited
- AstVisitor.preVisitStructure(self: AstVisitor; str: StructurePtr)
| argument | argument type | 
|---|---|
| self | |
| str | |
before Structure
- AstVisitor.preVisitStructureField(self: AstVisitor; str: StructurePtr; decl: FieldDeclaration const; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| str | |
| decl | ast::FieldDeclaration const | 
| last | bool const | 
before every structure field
- AstVisitor.canVisitStructureFieldInit(self: AstVisitor; st: StructurePtr)
canVisitStructureFieldInit returns bool
| argument | argument type | 
|---|---|
| self | |
| st | |
if true structure field initialization expressions will be visited
- AstVisitor.visitStructureField(self: AstVisitor; str: StructurePtr; decl: FieldDeclaration const; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| str | |
| decl | ast::FieldDeclaration const | 
| last | bool const | 
after every structure field
- AstVisitor.visitStructure(self: AstVisitor; str: StructurePtr)
visitStructure returns StructurePtr
| argument | argument type | 
|---|---|
| self | |
| str | |
after Structure
- AstVisitor.canVisitFunction(self: AstVisitor; fun: Function? const)
canVisitFunction returns bool
| argument | argument type | 
|---|---|
| self | |
| fun | ast::Function ? const | 
if true Function will be visited
- AstVisitor.canVisitFunctionArgumentInit(self: AstVisitor; fun: Function? const; arg: VariablePtr; value: ExpressionPtr)
canVisitFunctionArgumentInit returns bool
| argument | argument type | 
|---|---|
| self | |
| fun | ast::Function ? const | 
| arg | |
| value | |
if true function argument initialization expressions will be visited
- AstVisitor.preVisitFunction(self: AstVisitor; fun: FunctionPtr)
| argument | argument type | 
|---|---|
| self | |
| fun | |
before Function
- AstVisitor.visitFunction(self: AstVisitor; fun: FunctionPtr)
visitFunction returns FunctionPtr
| argument | argument type | 
|---|---|
| self | |
| fun | |
after Function
- AstVisitor.preVisitFunctionArgument(self: AstVisitor; fun: FunctionPtr; arg: VariablePtr; lastArg: bool const)
| argument | argument type | 
|---|---|
| self | |
| fun | |
| arg | |
| lastArg | bool const | 
before every argument
- AstVisitor.visitFunctionArgument(self: AstVisitor; fun: FunctionPtr; arg: VariablePtr; lastArg: bool const)
visitFunctionArgument returns VariablePtr
| argument | argument type | 
|---|---|
| self | |
| fun | |
| arg | |
| lastArg | bool const | 
after every argument
- AstVisitor.preVisitFunctionArgumentInit(self: AstVisitor; fun: FunctionPtr; arg: VariablePtr; value: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| fun | |
| arg | |
| value | |
before every argument initialization expression (should it have one), between ‘preVisitFunctionArgument’ and visitFunctionArgument
- AstVisitor.visitFunctionArgumentInit(self: AstVisitor; fun: FunctionPtr; arg: VariablePtr; value: ExpressionPtr)
visitFunctionArgumentInit returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| fun | |
| arg | |
| value | |
after every argument initialization expression (should it have one), between ‘preVisitFunctionArgument’ and visitFunctionArgument
- AstVisitor.preVisitFunctionBody(self: AstVisitor; fun: FunctionPtr; expr: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| fun | |
| expr | |
before the Function body block, between preVisitFunction and visitFunction (not for abstract functions)
- AstVisitor.visitFunctionBody(self: AstVisitor; fun: FunctionPtr; expr: ExpressionPtr)
visitFunctionBody returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| fun | |
| expr | |
after the Function body block, between preVisitFunction and visitFunction (not for abstract functions)
- AstVisitor.preVisitExpression(self: AstVisitor; expr: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | |
before every Expression
- AstVisitor.visitExpression(self: AstVisitor; expr: ExpressionPtr)
visitExpression returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | |
after every Expression
- AstVisitor.preVisitExprBlock(self: AstVisitor; blk: smart_ptr<ExprBlock> const)
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
before ExprBlock
- AstVisitor.visitExprBlock(self: AstVisitor; blk: smart_ptr<ExprBlock> const)
visitExprBlock returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
after ExprBlock
- AstVisitor.preVisitExprBlockArgument(self: AstVisitor; blk: smart_ptr<ExprBlock> const; arg: VariablePtr; lastArg: bool const)
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
| arg | |
| lastArg | bool const | 
before every block argument
- AstVisitor.visitExprBlockArgument(self: AstVisitor; blk: smart_ptr<ExprBlock> const; arg: VariablePtr; lastArg: bool const)
visitExprBlockArgument returns VariablePtr
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
| arg | |
| lastArg | bool const | 
after every block argument
- AstVisitor.preVisitExprBlockArgumentInit(self: AstVisitor; blk: smart_ptr<ExprBlock> const; arg: VariablePtr; expr: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
| arg | |
| expr | |
before every block argument initialization expression (should it have one), between ‘preVisitExprBlockArgument’ and visitExprBlockArgument
- AstVisitor.visitExprBlockArgumentInit(self: AstVisitor; blk: smart_ptr<ExprBlock> const; arg: VariablePtr; expr: ExpressionPtr)
visitExprBlockArgumentInit returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
| arg | |
| expr | |
after every block argument initialization expression (should it have one), between ‘preVisitExprBlockArgument’ and visitExprBlockArgument
- AstVisitor.preVisitExprBlockExpression(self: AstVisitor; blk: smart_ptr<ExprBlock> const; expr: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
| expr | |
before every block expression
- AstVisitor.visitExprBlockExpression(self: AstVisitor; blk: smart_ptr<ExprBlock> const; expr: ExpressionPtr)
visitExprBlockExpression returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
| expr | |
after every block expression
- AstVisitor.preVisitExprBlockFinal(self: AstVisitor; blk: smart_ptr<ExprBlock> const)
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
before finally` section of the block
- AstVisitor.visitExprBlockFinal(self: AstVisitor; blk: smart_ptr<ExprBlock> const)
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
after finally` section of the block
- AstVisitor.preVisitExprBlockFinalExpression(self: AstVisitor; blk: smart_ptr<ExprBlock> const; expr: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
| expr | |
before every block expression in the finally section, between preVisitExprBlockFinal and visitExprBlockFinal
- AstVisitor.visitExprBlockFinalExpression(self: AstVisitor; blk: smart_ptr<ExprBlock> const; expr: ExpressionPtr)
visitExprBlockFinalExpression returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprBlock > const | 
| expr | |
after every block expression in the finally` section, between preVisitExprBlockFinal and visitExprBlockFinal
- AstVisitor.preVisitExprLet(self: AstVisitor; expr: smart_ptr<ExprLet> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLet > const | 
before ExprLet
- AstVisitor.visitExprLet(self: AstVisitor; expr: smart_ptr<ExprLet> const)
visitExprLet returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLet > const | 
after ExprLet
- AstVisitor.preVisitExprLetVariable(self: AstVisitor; expr: smart_ptr<ExprLet> const; arg: VariablePtr; lastArg: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLet > const | 
| arg | |
| lastArg | bool const | 
before every variable
- AstVisitor.visitExprLetVariable(self: AstVisitor; expr: smart_ptr<ExprLet> const; arg: VariablePtr; lastArg: bool const)
visitExprLetVariable returns VariablePtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLet > const | 
| arg | |
| lastArg | bool const | 
after every variable
- AstVisitor.preVisitExprLetVariableInit(self: AstVisitor; blk: smart_ptr<ExprLet> const; arg: VariablePtr; expr: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprLet > const | 
| arg | |
| expr | |
before variable initialization (should it have one), between preVisitExprLetVariable and visitExprLetVariable
- AstVisitor.visitExprLetVariableInit(self: AstVisitor; blk: smart_ptr<ExprLet> const; arg: VariablePtr; expr: ExpressionPtr)
visitExprLetVariableInit returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| blk | smart_ptr< ast::ExprLet > const | 
| arg | |
| expr | |
after variable initialization (should it have one), between preVisitExprLetVariable and visitExprLetVariable
- AstVisitor.canVisitGlobalVariable(self: AstVisitor; arg: Variable? const)
canVisitGlobalVariable returns bool
| argument | argument type | 
|---|---|
| self | |
| arg | ast::Variable ? const | 
If true global variable declaration will be visited
- AstVisitor.preVisitGlobalLet(self: AstVisitor; prog: ProgramPtr)
| argument | argument type | 
|---|---|
| self | |
| prog | |
before global variable declaration
- AstVisitor.visitGlobalLet(self: AstVisitor; prog: ProgramPtr)
| argument | argument type | 
|---|---|
| self | |
| prog | |
after global variable declaration
- AstVisitor.preVisitGlobalLetVariable(self: AstVisitor; arg: VariablePtr; lastArg: bool const)
| argument | argument type | 
|---|---|
| self | |
| arg | |
| lastArg | bool const | 
before every global variable
- AstVisitor.visitGlobalLetVariable(self: AstVisitor; arg: VariablePtr; lastArg: bool const)
visitGlobalLetVariable returns VariablePtr
| argument | argument type | 
|---|---|
| self | |
| arg | |
| lastArg | bool const | 
after every global variable
- AstVisitor.preVisitGlobalLetVariableInit(self: AstVisitor; arg: VariablePtr; expr: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| arg | |
| expr | |
before global variable initialization (should it have one), between preVisitGlobalLetVariable and visitGlobalLetVariable
- AstVisitor.visitGlobalLetVariableInit(self: AstVisitor; arg: VariablePtr; expr: ExpressionPtr)
visitGlobalLetVariableInit returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| arg | |
| expr | |
after global variable initialization (should it have one), between preVisitGlobalLetVariable and visitGlobalLetVariable
- AstVisitor.preVisitExprStringBuilder(self: AstVisitor; expr: smart_ptr<ExprStringBuilder> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprStringBuilder > const | 
before ExprStringBuilder
- AstVisitor.visitExprStringBuilder(self: AstVisitor; expr: smart_ptr<ExprStringBuilder> const)
visitExprStringBuilder returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprStringBuilder > const | 
after ExprStringBuilder
- AstVisitor.preVisitExprStringBuilderElement(self: AstVisitor; expr: smart_ptr<ExprStringBuilder> const; elem: ExpressionPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprStringBuilder > const | 
| elem | |
| last | bool const | 
before any element of string builder (string or expression)
- AstVisitor.visitExprStringBuilderElement(self: AstVisitor; expr: smart_ptr<ExprStringBuilder> const; elem: ExpressionPtr; last: bool const)
visitExprStringBuilderElement returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprStringBuilder > const | 
| elem | |
| last | bool const | 
after any element of string builder
- AstVisitor.preVisitExprNew(self: AstVisitor; expr: smart_ptr<ExprNew> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNew > const | 
before ExprNew
- AstVisitor.visitExprNew(self: AstVisitor; expr: smart_ptr<ExprNew> const)
visitExprNew returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNew > const | 
after ExprNew
- AstVisitor.preVisitExprNewArgument(self: AstVisitor; expr: smart_ptr<ExprNew> const; arg: ExpressionPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNew > const | 
| arg | |
| last | bool const | 
before every argument
- AstVisitor.visitExprNewArgument(self: AstVisitor; expr: smart_ptr<ExprNew> const; arg: ExpressionPtr; last: bool const)
visitExprNewArgument returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNew > const | 
| arg | |
| last | bool const | 
after every argument
- AstVisitor.preVisitExprNamedCall(self: AstVisitor; expr: smart_ptr<ExprNamedCall> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNamedCall > const | 
before ExprNamedCall
- AstVisitor.visitExprNamedCall(self: AstVisitor; expr: smart_ptr<ExprNamedCall> const)
visitExprNamedCall returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNamedCall > const | 
after ExprNamedCall`
- AstVisitor.preVisitExprNamedCallArgument(self: AstVisitor; expr: smart_ptr<ExprNamedCall> const; arg: MakeFieldDeclPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNamedCall > const | 
| arg | |
| last | bool const | 
before every argument
- AstVisitor.visitExprNamedCallArgument(self: AstVisitor; expr: smart_ptr<ExprNamedCall> const; arg: MakeFieldDeclPtr; last: bool const)
visitExprNamedCallArgument returns MakeFieldDeclPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNamedCall > const | 
| arg | |
| last | bool const | 
after every argument
- AstVisitor.preVisitExprLooksLikeCall(self: AstVisitor; expr: smart_ptr<ExprLooksLikeCall> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLooksLikeCall > const | 
before ExprLooksLikeCall
- AstVisitor.visitExprLooksLikeCall(self: AstVisitor; expr: smart_ptr<ExprLooksLikeCall> const)
visitExprLooksLikeCall returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLooksLikeCall > const | 
after ExprLooksLikeCall
- AstVisitor.canVisitExprLooksLikeCallArgument(self: AstVisitor; expr: smart_ptr<ExprLooksLikeCall> const; arg: ExpressionPtr; last: bool const)
canVisitExprLooksLikeCallArgument returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLooksLikeCall > const | 
| arg | |
| last | bool const | 
If true ExprLooksLikeCall arguments will be visited
- AstVisitor.preVisitExprLooksLikeCallArgument(self: AstVisitor; expr: smart_ptr<ExprLooksLikeCall> const; arg: ExpressionPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLooksLikeCall > const | 
| arg | |
| last | bool const | 
before every argument
- AstVisitor.visitExprLooksLikeCallArgument(self: AstVisitor; expr: smart_ptr<ExprLooksLikeCall> const; arg: ExpressionPtr; last: bool const)
visitExprLooksLikeCallArgument returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLooksLikeCall > const | 
| arg | |
| last | bool const | 
after every argument
- AstVisitor.canVisitCall(self: AstVisitor; expr: ExprCall? const)
canVisitCall returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | ast::ExprCall ? const | 
If false call will be completely skipped, otherwise it behaves normally.
- AstVisitor.preVisitExprCall(self: AstVisitor; expr: smart_ptr<ExprCall> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCall > const | 
before ExprCall
- AstVisitor.visitExprCall(self: AstVisitor; expr: smart_ptr<ExprCall> const)
visitExprCall returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCall > const | 
after ExprCall
- AstVisitor.preVisitExprCallArgument(self: AstVisitor; expr: smart_ptr<ExprCall> const; arg: ExpressionPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCall > const | 
| arg | |
| last | bool const | 
before every argument
- AstVisitor.visitExprCallArgument(self: AstVisitor; expr: smart_ptr<ExprCall> const; arg: ExpressionPtr; last: bool const)
visitExprCallArgument returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCall > const | 
| arg | |
| last | bool const | 
after every argument
- AstVisitor.preVisitExprNullCoalescing(self: AstVisitor; expr: smart_ptr<ExprNullCoalescing> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNullCoalescing > const | 
before ExprNullCoalescing
- AstVisitor.visitExprNullCoalescing(self: AstVisitor; expr: smart_ptr<ExprNullCoalescing> const)
visitExprNullCoalescing returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNullCoalescing > const | 
after ExprNullCoalescing
- AstVisitor.preVisitExprNullCoalescingDefault(self: AstVisitor; expr: smart_ptr<ExprNullCoalescing> const; defval: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprNullCoalescing > const | 
| defval | |
before the default value
- AstVisitor.preVisitExprAt(self: AstVisitor; expr: smart_ptr<ExprAt> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAt > const | 
before ExprAt
- AstVisitor.visitExprAt(self: AstVisitor; expr: smart_ptr<ExprAt> const)
visitExprAt returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAt > const | 
after ExprAt
- AstVisitor.preVisitExprAtIndex(self: AstVisitor; expr: smart_ptr<ExprAt> const; index: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAt > const | 
| index | |
before the index
- AstVisitor.preVisitExprSafeAt(self: AstVisitor; expr: smart_ptr<ExprSafeAt> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSafeAt > const | 
before ExprSafeAt
- AstVisitor.visitExprSafeAt(self: AstVisitor; expr: smart_ptr<ExprSafeAt> const)
visitExprSafeAt returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSafeAt > const | 
after ExprSafeAt
- AstVisitor.preVisitExprSafeAtIndex(self: AstVisitor; expr: smart_ptr<ExprSafeAt> const; index: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSafeAt > const | 
| index | |
before the index
- AstVisitor.preVisitExprIs(self: AstVisitor; expr: smart_ptr<ExprIs> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIs > const | 
before ExprIs
- AstVisitor.visitExprIs(self: AstVisitor; expr: smart_ptr<ExprIs> const)
visitExprIs returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIs > const | 
after ExprIs
- AstVisitor.preVisitExprIsType(self: AstVisitor; expr: smart_ptr<ExprIs> const; typeDecl: TypeDeclPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIs > const | 
| typeDecl | |
before the type
- AstVisitor.preVisitExprOp2(self: AstVisitor; expr: smart_ptr<ExprOp2> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp2 > const | 
before ExprOp2
- AstVisitor.visitExprOp2(self: AstVisitor; expr: smart_ptr<ExprOp2> const)
visitExprOp2 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp2 > const | 
after ExprOp2
- AstVisitor.preVisitExprOp2Right(self: AstVisitor; expr: smart_ptr<ExprOp2> const; right: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp2 > const | 
| right | |
before the right operand
- AstVisitor.preVisitExprOp3(self: AstVisitor; expr: smart_ptr<ExprOp3> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp3 > const | 
before ExprOp3
- AstVisitor.visitExprOp3(self: AstVisitor; expr: smart_ptr<ExprOp3> const)
visitExprOp3 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp3 > const | 
after ExprOp3
- AstVisitor.preVisitExprOp3Left(self: AstVisitor; expr: smart_ptr<ExprOp3> const; left: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp3 > const | 
| left | |
before the left option
- AstVisitor.preVisitExprOp3Right(self: AstVisitor; expr: smart_ptr<ExprOp3> const; right: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp3 > const | 
| right | |
before the right option
- AstVisitor.isRightFirstExprCopy(self: AstVisitor; expr: smart_ptr<ExprCopy> const)
isRightFirstExprCopy returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCopy > const | 
returns true if the right operand of ExprCopy should be visited first
- AstVisitor.preVisitExprCopy(self: AstVisitor; expr: smart_ptr<ExprCopy> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCopy > const | 
before ExprCopy
- AstVisitor.visitExprCopy(self: AstVisitor; expr: smart_ptr<ExprCopy> const)
visitExprCopy returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCopy > const | 
after ExprCopy
- AstVisitor.preVisitExprCopyRight(self: AstVisitor; expr: smart_ptr<ExprCopy> const; right: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCopy > const | 
| right | |
before the right operand
- AstVisitor.isRightFirstExprMove(self: AstVisitor; expr: smart_ptr<ExprMove> const)
isRightFirstExprMove returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMove > const | 
returns true if the right operand of ExprMove should be visited first
- AstVisitor.preVisitExprMove(self: AstVisitor; expr: smart_ptr<ExprMove> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMove > const | 
before ExprMove
- AstVisitor.visitExprMove(self: AstVisitor; expr: smart_ptr<ExprMove> const)
visitExprMove returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMove > const | 
after ExprMove
- AstVisitor.preVisitExprMoveRight(self: AstVisitor; expr: smart_ptr<ExprMove> const; right: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMove > const | 
| right | |
before the right operand
- AstVisitor.isRightFirstExprClone(self: AstVisitor; expr: smart_ptr<ExprClone> const)
isRightFirstExprClone returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprClone > const | 
returns true if the right operand of ExprClone should be visited first
- AstVisitor.preVisitExprClone(self: AstVisitor; expr: smart_ptr<ExprClone> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprClone > const | 
before ExprClone
- AstVisitor.visitExprClone(self: AstVisitor; expr: smart_ptr<ExprClone> const)
visitExprClone returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprClone > const | 
after ExprClone
- AstVisitor.preVisitExprCloneRight(self: AstVisitor; expr: smart_ptr<ExprClone> const; right: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprClone > const | 
| right | |
before the right operand
- AstVisitor.canVisitWithAliasSubexpression(self: AstVisitor; expr: smart_ptr<ExprAssume> const)
canVisitWithAliasSubexpression returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAssume > const | 
before the sub expression in the ExprAssume
- AstVisitor.preVisitExprAssume(self: AstVisitor; expr: smart_ptr<ExprAssume> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAssume > const | 
before ExprAssume
- AstVisitor.visitExprAssume(self: AstVisitor; expr: smart_ptr<ExprAssume> const)
visitExprAssume returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAssume > const | 
after ExprAssume
- AstVisitor.preVisitExprWith(self: AstVisitor; expr: smart_ptr<ExprWith> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprWith > const | 
before ExprWith
- AstVisitor.visitExprWith(self: AstVisitor; expr: smart_ptr<ExprWith> const)
visitExprWith returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprWith > const | 
after ExprWith
- AstVisitor.preVisitExprWithBody(self: AstVisitor; expr: smart_ptr<ExprWith> const; right: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprWith > const | 
| right | |
before the body block
- AstVisitor.preVisitExprWhile(self: AstVisitor; expr: smart_ptr<ExprWhile> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprWhile > const | 
before ExprWhile
- AstVisitor.visitExprWhile(self: AstVisitor; expr: smart_ptr<ExprWhile> const)
visitExprWhile returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprWhile > const | 
after ExprWhile
- AstVisitor.preVisitExprWhileBody(self: AstVisitor; expr: smart_ptr<ExprWhile> const; right: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprWhile > const | 
| right | |
before the body block
- AstVisitor.preVisitExprTryCatch(self: AstVisitor; expr: smart_ptr<ExprTryCatch> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTryCatch > const | 
before ExprTryCatch
- AstVisitor.visitExprTryCatch(self: AstVisitor; expr: smart_ptr<ExprTryCatch> const)
visitExprTryCatch returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTryCatch > const | 
after ExprTryCatch
- AstVisitor.preVisitExprTryCatchCatch(self: AstVisitor; expr: smart_ptr<ExprTryCatch> const; right: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTryCatch > const | 
| right | |
before the catch (recover) section
- AstVisitor.preVisitExprIfThenElse(self: AstVisitor; expr: smart_ptr<ExprIfThenElse> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIfThenElse > const | 
before ExprIfThenElse
- AstVisitor.visitExprIfThenElse(self: AstVisitor; expr: smart_ptr<ExprIfThenElse> const)
visitExprIfThenElse returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIfThenElse > const | 
after ExprIfThenElse
- AstVisitor.preVisitExprIfThenElseIfBlock(self: AstVisitor; expr: smart_ptr<ExprIfThenElse> const; ifBlock: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIfThenElse > const | 
| ifBlock | |
before the if block
- AstVisitor.preVisitExprIfThenElseElseBlock(self: AstVisitor; expr: smart_ptr<ExprIfThenElse> const; elseBlock: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIfThenElse > const | 
| elseBlock | |
before the else block
- AstVisitor.preVisitExprFor(self: AstVisitor; expr: smart_ptr<ExprFor> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFor > const | 
before the ExprFor
- AstVisitor.visitExprFor(self: AstVisitor; expr: smart_ptr<ExprFor> const)
visitExprFor returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFor > const | 
after the ExprFor
- AstVisitor.preVisitExprForVariable(self: AstVisitor; expr: smart_ptr<ExprFor> const; svar: VariablePtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFor > const | 
| svar | |
| last | bool const | 
before each variable
- AstVisitor.visitExprForVariable(self: AstVisitor; expr: smart_ptr<ExprFor> const; svar: VariablePtr; last: bool const)
visitExprForVariable returns VariablePtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFor > const | 
| svar | |
| last | bool const | 
after each variable
- AstVisitor.preVisitExprForSource(self: AstVisitor; expr: smart_ptr<ExprFor> const; source: ExpressionPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFor > const | 
| source | |
| last | bool const | 
before each source
- AstVisitor.visitExprForSource(self: AstVisitor; expr: smart_ptr<ExprFor> const; source: ExpressionPtr; last: bool const)
visitExprForSource returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFor > const | 
| source | |
| last | bool const | 
after each source
- AstVisitor.preVisitExprForStack(self: AstVisitor; expr: smart_ptr<ExprFor> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFor > const | 
before the stack is allocated before the body, regardless if it has one
- AstVisitor.preVisitExprForBody(self: AstVisitor; expr: smart_ptr<ExprFor> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFor > const | 
before the body (should it have one)
- AstVisitor.preVisitExprMakeVariant(self: AstVisitor; expr: smart_ptr<ExprMakeVariant> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeVariant > const | 
before ExprMakeVariant
- AstVisitor.visitExprMakeVariant(self: AstVisitor; expr: smart_ptr<ExprMakeVariant> const)
visitExprMakeVariant returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeVariant > const | 
after ExprMakeVariant
- AstVisitor.preVisitExprMakeVariantField(self: AstVisitor; expr: smart_ptr<ExprMakeVariant> const; index: int const; decl: MakeFieldDeclPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeVariant > const | 
| index | int const | 
| decl | |
| last | bool const | 
before every field
- AstVisitor.visitExprMakeVariantField(self: AstVisitor; expr: smart_ptr<ExprMakeVariant> const; index: int const; decl: MakeFieldDeclPtr; last: bool const)
visitExprMakeVariantField returns MakeFieldDeclPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeVariant > const | 
| index | int const | 
| decl | |
| last | bool const | 
after every field
- AstVisitor.canVisitExprMakeStructBody(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const)
canVisitExprMakeStructBody returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
if true the visitor can visit the body of ExprMakeStruct
- AstVisitor.canVisitExprMakeStructBlock(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const; blk: ExpressionPtr)
canVisitExprMakeStructBlock returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
| blk | |
if true the visitor can visit the block behind ExprMakeStruct
- AstVisitor.preVisitExprMakeStruct(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
before ExprMakeStruct
- AstVisitor.visitExprMakeStruct(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const)
visitExprMakeStruct returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
after ExprMakeStruct
- AstVisitor.preVisitExprMakeStructIndex(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const; index: int const; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
| index | int const | 
| last | bool const | 
before each struct in the array of structures
- AstVisitor.visitExprMakeStructIndex(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const; index: int const; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
| index | int const | 
| last | bool const | 
after each struct in the array of structures
- AstVisitor.preVisitExprMakeStructField(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const; index: int const; decl: MakeFieldDeclPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
| index | int const | 
| decl | |
| last | bool const | 
before each field of the struct, between preVisitExprMakeStructIndex and visitExprMakeStructIndex
- AstVisitor.visitExprMakeStructField(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const; index: int const; decl: MakeFieldDeclPtr; last: bool const)
visitExprMakeStructField returns MakeFieldDeclPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
| index | int const | 
| decl | |
| last | bool const | 
after each field of the struct, between preVisitExprMakeStructIndex and visitExprMakeStructIndex
- AstVisitor.preVisitMakeStructureBlock(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const; blk: smart_ptr<Expression> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
| blk | smart_ptr< ast::Expression > const | 
before the block behind ExprMakeStruct
- AstVisitor.visitMakeStructureBlock(self: AstVisitor; expr: smart_ptr<ExprMakeStruct> const; blk: smart_ptr<Expression> const)
visitMakeStructureBlock returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeStruct > const | 
| blk | smart_ptr< ast::Expression > const | 
after the block behind ExprMakeStruct
- AstVisitor.preVisitExprMakeArray(self: AstVisitor; expr: smart_ptr<ExprMakeArray> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeArray > const | 
before ExprMakeArray
- AstVisitor.visitExprMakeArray(self: AstVisitor; expr: smart_ptr<ExprMakeArray> const)
visitExprMakeArray returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeArray > const | 
after ExprMakeArray
- AstVisitor.preVisitExprMakeArrayIndex(self: AstVisitor; expr: smart_ptr<ExprMakeArray> const; index: int const; init: ExpressionPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeArray > const | 
| index | int const | 
| init | |
| last | bool const | 
before each element of the array
- AstVisitor.visitExprMakeArrayIndex(self: AstVisitor; expr: smart_ptr<ExprMakeArray> const; index: int const; init: ExpressionPtr; last: bool const)
visitExprMakeArrayIndex returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeArray > const | 
| index | int const | 
| init | |
| last | bool const | 
after each element of the array
- AstVisitor.preVisitExprMakeTuple(self: AstVisitor; expr: smart_ptr<ExprMakeTuple> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeTuple > const | 
before ExprMakeTuple
- AstVisitor.visitExprMakeTuple(self: AstVisitor; expr: smart_ptr<ExprMakeTuple> const)
visitExprMakeTuple returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeTuple > const | 
after ExprMakeTuple
- AstVisitor.preVisitExprMakeTupleIndex(self: AstVisitor; expr: smart_ptr<ExprMakeTuple> const; index: int const; init: ExpressionPtr; last: bool const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeTuple > const | 
| index | int const | 
| init | |
| last | bool const | 
before each field of the tuple
- AstVisitor.visitExprMakeTupleIndex(self: AstVisitor; expr: smart_ptr<ExprMakeTuple> const; index: int const; init: ExpressionPtr; last: bool const)
visitExprMakeTupleIndex returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeTuple > const | 
| index | int const | 
| init | |
| last | bool const | 
after each field of the tuple
- AstVisitor.preVisitExprArrayComprehension(self: AstVisitor; expr: smart_ptr<ExprArrayComprehension> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprArrayComprehension > const | 
before ExprArrayComprehension
- AstVisitor.visitExprArrayComprehension(self: AstVisitor; expr: smart_ptr<ExprArrayComprehension> const)
visitExprArrayComprehension returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprArrayComprehension > const | 
after ExprArrayComprehension
- AstVisitor.preVisitExprArrayComprehensionSubexpr(self: AstVisitor; expr: smart_ptr<ExprArrayComprehension> const; subexrp: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprArrayComprehension > const | 
| subexrp | |
before the subexpression
- AstVisitor.preVisitExprArrayComprehensionWhere(self: AstVisitor; expr: smart_ptr<ExprArrayComprehension> const; filter: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprArrayComprehension > const | 
| filter | |
before the where clause
- AstVisitor.canVisitExprTypeInfo(self: AstVisitor; expr: smart_ptr<ExprTypeInfo> const; expr_: ExpressionPtr)
canVisitExprTypeInfo returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTypeInfo > const | 
If true the visitor can visit the type info expression
- AstVisitor.preVisitExprTypeInfo(self: AstVisitor; expr: smart_ptr<ExprTypeInfo> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTypeInfo > const | 
before ExprTypeInfo
- AstVisitor.visitExprTypeInfo(self: AstVisitor; expr: smart_ptr<ExprTypeInfo> const)
visitExprTypeInfo returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTypeInfo > const | 
after ExprTypeInfo
- AstVisitor.preVisitExprPtr2Ref(self: AstVisitor; expr: smart_ptr<ExprPtr2Ref> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprPtr2Ref > const | 
before ExprPtr2Ref
- AstVisitor.visitExprPtr2Ref(self: AstVisitor; expr: smart_ptr<ExprPtr2Ref> const)
visitExprPtr2Ref returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprPtr2Ref > const | 
after ExprPtr2Ref
- AstVisitor.preVisitExprLabel(self: AstVisitor; expr: smart_ptr<ExprLabel> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLabel > const | 
before ExprLabel
- AstVisitor.visitExprLabel(self: AstVisitor; expr: smart_ptr<ExprLabel> const)
visitExprLabel returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprLabel > const | 
after ExprLabel
- AstVisitor.preVisitExprGoto(self: AstVisitor; expr: smart_ptr<ExprGoto> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprGoto > const | 
before ExprGoto
- AstVisitor.visitExprGoto(self: AstVisitor; expr: smart_ptr<ExprGoto> const)
visitExprGoto returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprGoto > const | 
after ExprGoto
- AstVisitor.preVisitExprRef2Value(self: AstVisitor; expr: smart_ptr<ExprRef2Value> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprRef2Value > const | 
before ExprRef2Value
- AstVisitor.visitExprRef2Value(self: AstVisitor; expr: smart_ptr<ExprRef2Value> const)
visitExprRef2Value returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprRef2Value > const | 
after ExprRef2Value
- AstVisitor.preVisitExprRef2Ptr(self: AstVisitor; expr: smart_ptr<ExprRef2Ptr> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprRef2Ptr > const | 
before ExprRef2Ptr
- AstVisitor.visitExprRef2Ptr(self: AstVisitor; expr: smart_ptr<ExprRef2Ptr> const)
visitExprRef2Ptr returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprRef2Ptr > const | 
after ExprRef2Ptr
- AstVisitor.preVisitExprAddr(self: AstVisitor; expr: smart_ptr<ExprAddr> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAddr > const | 
before ExprAddr
- AstVisitor.visitExprAddr(self: AstVisitor; expr: smart_ptr<ExprAddr> const)
visitExprAddr returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAddr > const | 
after ExprAddr
- AstVisitor.preVisitExprAssert(self: AstVisitor; expr: smart_ptr<ExprAssert> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAssert > const | 
before ExprAssert
- AstVisitor.visitExprAssert(self: AstVisitor; expr: smart_ptr<ExprAssert> const)
visitExprAssert returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAssert > const | 
after ExprAssert
- AstVisitor.preVisitExprStaticAssert(self: AstVisitor; expr: smart_ptr<ExprStaticAssert> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprStaticAssert > const | 
before ExprStaticAssert
- AstVisitor.visitExprStaticAssert(self: AstVisitor; expr: smart_ptr<ExprStaticAssert> const)
visitExprStaticAssert returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprStaticAssert > const | 
after ExprStaticAssert
- AstVisitor.preVisitExprQuote(self: AstVisitor; expr: smart_ptr<ExprQuote> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprQuote > const | 
before ExprQuote
- AstVisitor.visitExprQuote(self: AstVisitor; expr: smart_ptr<ExprQuote> const)
visitExprQuote returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprQuote > const | 
after ExprQuote
- AstVisitor.preVisitExprDebug(self: AstVisitor; expr: smart_ptr<ExprDebug> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprDebug > const | 
before ExprDebug
- AstVisitor.visitExprDebug(self: AstVisitor; expr: smart_ptr<ExprDebug> const)
visitExprDebug returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprDebug > const | 
after ExprDebug
- AstVisitor.preVisitExprInvoke(self: AstVisitor; expr: smart_ptr<ExprInvoke> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprInvoke > const | 
before ExprInvoke
- AstVisitor.visitExprInvoke(self: AstVisitor; expr: smart_ptr<ExprInvoke> const)
visitExprInvoke returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprInvoke > const | 
after ExprInvoke
- AstVisitor.preVisitExprErase(self: AstVisitor; expr: smart_ptr<ExprErase> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprErase > const | 
before ExprErase
- AstVisitor.visitExprErase(self: AstVisitor; expr: smart_ptr<ExprErase> const)
visitExprErase returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprErase > const | 
after ExprErase
- AstVisitor.preVisitExprSetInsert(self: AstVisitor; expr: smart_ptr<ExprSetInsert> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSetInsert > const | 
before ExprSetInsert
- AstVisitor.visitExprSetInsert(self: AstVisitor; expr: smart_ptr<ExprSetInsert> const)
visitExprSetInsert returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSetInsert > const | 
after ExprSetInsert
- AstVisitor.preVisitExprFind(self: AstVisitor; expr: smart_ptr<ExprFind> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFind > const | 
before ExprFind
- AstVisitor.visitExprFind(self: AstVisitor; expr: smart_ptr<ExprFind> const)
visitExprFind returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFind > const | 
after ExprFind
- AstVisitor.preVisitExprKeyExists(self: AstVisitor; expr: smart_ptr<ExprKeyExists> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprKeyExists > const | 
before ExprKeyExists
- AstVisitor.visitExprKeyExists(self: AstVisitor; expr: smart_ptr<ExprKeyExists> const)
visitExprKeyExists returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprKeyExists > const | 
after ExprKeyExists
- AstVisitor.preVisitExprAscend(self: AstVisitor; expr: smart_ptr<ExprAscend> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAscend > const | 
before ExprAscend
- AstVisitor.visitExprAscend(self: AstVisitor; expr: smart_ptr<ExprAscend> const)
visitExprAscend returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAscend > const | 
after ExprAscend
- AstVisitor.preVisitExprCast(self: AstVisitor; expr: smart_ptr<ExprCast> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCast > const | 
before ExprCast
- AstVisitor.visitExprCast(self: AstVisitor; expr: smart_ptr<ExprCast> const)
visitExprCast returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCast > const | 
after ExprCast
- AstVisitor.preVisitExprDeleteSizeExpression(self: AstVisitor; del: smart_ptr<ExprDelete> const; expr: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| del | smart_ptr< ast::ExprDelete > const | 
| expr | |
before the size expression
- AstVisitor.preVisitExprDelete(self: AstVisitor; expr: smart_ptr<ExprDelete> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprDelete > const | 
before ExprDelete
- AstVisitor.visitExprDelete(self: AstVisitor; expr: smart_ptr<ExprDelete> const)
visitExprDelete returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprDelete > const | 
after ExprDelete
- AstVisitor.preVisitExprVar(self: AstVisitor; expr: smart_ptr<ExprVar> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprVar > const | 
before ExprVar
- AstVisitor.visitExprVar(self: AstVisitor; expr: smart_ptr<ExprVar> const)
visitExprVar returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprVar > const | 
after ExprVar
- AstVisitor.preVisitExprTag(self: AstVisitor; expr: smart_ptr<ExprTag> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTag > const | 
before ExprTag
- AstVisitor.preVisitExprTagValue(self: AstVisitor; expr: smart_ptr<ExprTag> const; value: ExpressionPtr)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTag > const | 
| value | |
before the value portion of ExprTag
- AstVisitor.visitExprTag(self: AstVisitor; expr: smart_ptr<ExprTag> const)
visitExprTag returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprTag > const | 
after ExprTag
- AstVisitor.preVisitExprField(self: AstVisitor; expr: smart_ptr<ExprField> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprField > const | 
before ExprField
- AstVisitor.visitExprField(self: AstVisitor; expr: smart_ptr<ExprField> const)
visitExprField returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprField > const | 
after ExprField
- AstVisitor.preVisitExprSafeField(self: AstVisitor; expr: smart_ptr<ExprSafeField> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSafeField > const | 
before ExprSafeField
- AstVisitor.visitExprSafeField(self: AstVisitor; expr: smart_ptr<ExprSafeField> const)
visitExprSafeField returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSafeField > const | 
after ExprSafeField
- AstVisitor.preVisitExprSwizzle(self: AstVisitor; expr: smart_ptr<ExprSwizzle> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSwizzle > const | 
before ExprSwizzle
- AstVisitor.visitExprSwizzle(self: AstVisitor; expr: smart_ptr<ExprSwizzle> const)
visitExprSwizzle returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSwizzle > const | 
after ExprSwizzle
- AstVisitor.preVisitExprIsVariant(self: AstVisitor; expr: smart_ptr<ExprIsVariant> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIsVariant > const | 
before ExprIsVariant
- AstVisitor.visitExprIsVariant(self: AstVisitor; expr: smart_ptr<ExprIsVariant> const)
visitExprIsVariant returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprIsVariant > const | 
after ExprIsVariant
- AstVisitor.preVisitExprAsVariant(self: AstVisitor; expr: smart_ptr<ExprAsVariant> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAsVariant > const | 
before ExprAsVariant
- AstVisitor.visitExprAsVariant(self: AstVisitor; expr: smart_ptr<ExprAsVariant> const)
visitExprAsVariant returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprAsVariant > const | 
after ExprAsVariant
- AstVisitor.preVisitExprSafeAsVariant(self: AstVisitor; expr: smart_ptr<ExprSafeAsVariant> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSafeAsVariant > const | 
before ExprSafeAsVariant
- AstVisitor.visitExprSafeAsVariant(self: AstVisitor; expr: smart_ptr<ExprSafeAsVariant> const)
visitExprSafeAsVariant returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprSafeAsVariant > const | 
after ExprSafeAsVariant
- AstVisitor.preVisitExprOp1(self: AstVisitor; expr: smart_ptr<ExprOp1> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp1 > const | 
before ExprOp1
- AstVisitor.visitExprOp1(self: AstVisitor; expr: smart_ptr<ExprOp1> const)
visitExprOp1 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprOp1 > const | 
after ExprOp1
- AstVisitor.preVisitExprReturn(self: AstVisitor; expr: smart_ptr<ExprReturn> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprReturn > const | 
before ExprReturn
- AstVisitor.visitExprReturn(self: AstVisitor; expr: smart_ptr<ExprReturn> const)
visitExprReturn returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprReturn > const | 
after ExprReturn
- AstVisitor.preVisitExprYield(self: AstVisitor; expr: smart_ptr<ExprYield> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprYield > const | 
before ExprYield
- AstVisitor.visitExprYield(self: AstVisitor; expr: smart_ptr<ExprYield> const)
visitExprYield returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprYield > const | 
after ‘ExprYield’
- AstVisitor.preVisitExprBreak(self: AstVisitor; expr: smart_ptr<ExprBreak> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprBreak > const | 
before ExprBreak
- AstVisitor.visitExprBreak(self: AstVisitor; expr: smart_ptr<ExprBreak> const)
visitExprBreak returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprBreak > const | 
after ExprBreak
- AstVisitor.preVisitExprContinue(self: AstVisitor; expr: smart_ptr<ExprContinue> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprContinue > const | 
before ExprContinue
- AstVisitor.visitExprContinue(self: AstVisitor; expr: smart_ptr<ExprContinue> const)
visitExprContinue returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprContinue > const | 
after ExprContinue
- AstVisitor.canVisitMakeBlockBody(self: AstVisitor; expr: smart_ptr<ExprMakeBlock> const)
canVisitMakeBlockBody returns bool
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeBlock > const | 
before the body of the makeBlock expression is visited. If true body will be visited
- AstVisitor.preVisitExprMakeBlock(self: AstVisitor; expr: smart_ptr<ExprMakeBlock> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeBlock > const | 
before ExprMakeBlock
- AstVisitor.visitExprMakeBlock(self: AstVisitor; expr: smart_ptr<ExprMakeBlock> const)
visitExprMakeBlock returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeBlock > const | 
after ExprMakeBlock
- AstVisitor.preVisitExprMakeGenerator(self: AstVisitor; expr: smart_ptr<ExprMakeGenerator> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeGenerator > const | 
before ExprMakeGenerator
- AstVisitor.visitExprMakeGenerator(self: AstVisitor; expr: smart_ptr<ExprMakeGenerator> const)
visitExprMakeGenerator returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMakeGenerator > const | 
after ExprMakeGenerator
- AstVisitor.preVisitExprMemZero(self: AstVisitor; expr: smart_ptr<ExprMemZero> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMemZero > const | 
before ExprMemZero
- AstVisitor.visitExprMemZero(self: AstVisitor; expr: smart_ptr<ExprMemZero> const)
visitExprMemZero returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprMemZero > const | 
after ExprMemZero
- AstVisitor.preVisitExprConst(self: AstVisitor; expr: smart_ptr<ExprConst> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConst > const | 
before ExprConst
- AstVisitor.visitExprConst(self: AstVisitor; expr: smart_ptr<ExprConst> const)
visitExprConst returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConst > const | 
after ExprConst
- AstVisitor.preVisitExprConstPtr(self: AstVisitor; expr: smart_ptr<ExprConstPtr> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstPtr > const | 
before ExprConstPtr
- AstVisitor.visitExprConstPtr(self: AstVisitor; expr: smart_ptr<ExprConstPtr> const)
visitExprConstPtr returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstPtr > const | 
after ExprConstPtr
- AstVisitor.preVisitExprConstEnumeration(self: AstVisitor; expr: smart_ptr<ExprConstEnumeration> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstEnumeration > const | 
before ExprConstEnumeration
- AstVisitor.visitExprConstEnumeration(self: AstVisitor; expr: smart_ptr<ExprConstEnumeration> const)
visitExprConstEnumeration returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstEnumeration > const | 
after ExprConstEnumeration
- AstVisitor.preVisitExprConstBitfield(self: AstVisitor; expr: smart_ptr<ExprConstBitfield> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstBitfield > const | 
before ExprConstBitfield
- AstVisitor.visitExprConstBitfield(self: AstVisitor; expr: smart_ptr<ExprConstBitfield> const)
visitExprConstBitfield returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstBitfield > const | 
after ExprConstBitfield
- AstVisitor.preVisitExprConstInt8(self: AstVisitor; expr: smart_ptr<ExprConstInt8> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt8 > const | 
before ExprConstInt8
- AstVisitor.visitExprConstInt8(self: AstVisitor; expr: smart_ptr<ExprConstInt8> const)
visitExprConstInt8 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt8 > const | 
after ExprConstInt8
- AstVisitor.preVisitExprConstInt16(self: AstVisitor; expr: smart_ptr<ExprConstInt16> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt16 > const | 
before ExprConstInt16
- AstVisitor.visitExprConstInt16(self: AstVisitor; expr: smart_ptr<ExprConstInt16> const)
visitExprConstInt16 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt16 > const | 
after ExprConstInt16
- AstVisitor.preVisitExprConstInt64(self: AstVisitor; expr: smart_ptr<ExprConstInt64> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt64 > const | 
before ExprConstInt64
- AstVisitor.visitExprConstInt64(self: AstVisitor; expr: smart_ptr<ExprConstInt64> const)
visitExprConstInt64 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt64 > const | 
after ExprConstInt64
- AstVisitor.preVisitExprConstInt(self: AstVisitor; expr: smart_ptr<ExprConstInt> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt > const | 
before ExprConstInt
- AstVisitor.visitExprConstInt(self: AstVisitor; expr: smart_ptr<ExprConstInt> const)
visitExprConstInt returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt > const | 
after ExprConstInt
- AstVisitor.preVisitExprConstInt2(self: AstVisitor; expr: smart_ptr<ExprConstInt2> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt2 > const | 
before ExprConstInt2
- AstVisitor.visitExprConstInt2(self: AstVisitor; expr: smart_ptr<ExprConstInt2> const)
visitExprConstInt2 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt2 > const | 
after ExprConstInt2
- AstVisitor.preVisitExprConstInt3(self: AstVisitor; expr: smart_ptr<ExprConstInt3> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt3 > const | 
before ExprConstInt3
- AstVisitor.visitExprConstInt3(self: AstVisitor; expr: smart_ptr<ExprConstInt3> const)
visitExprConstInt3 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt3 > const | 
after ExprConstInt3
- AstVisitor.preVisitExprConstInt4(self: AstVisitor; expr: smart_ptr<ExprConstInt4> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt4 > const | 
before ExprConstInt4
- AstVisitor.visitExprConstInt4(self: AstVisitor; expr: smart_ptr<ExprConstInt4> const)
visitExprConstInt4 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstInt4 > const | 
after ExprConstInt4
- AstVisitor.preVisitExprConstUInt8(self: AstVisitor; expr: smart_ptr<ExprConstUInt8> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt8 > const | 
before ExprConstUInt8
- AstVisitor.visitExprConstUInt8(self: AstVisitor; expr: smart_ptr<ExprConstUInt8> const)
visitExprConstUInt8 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt8 > const | 
after ExprConstUInt8
- AstVisitor.preVisitExprConstUInt16(self: AstVisitor; expr: smart_ptr<ExprConstUInt16> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt16 > const | 
before ExprConstUInt16
- AstVisitor.visitExprConstUInt16(self: AstVisitor; expr: smart_ptr<ExprConstUInt16> const)
visitExprConstUInt16 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt16 > const | 
after ExprConstUInt16
- AstVisitor.preVisitExprConstUInt64(self: AstVisitor; expr: smart_ptr<ExprConstUInt64> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt64 > const | 
before ExprConstUInt64
- AstVisitor.visitExprConstUInt64(self: AstVisitor; expr: smart_ptr<ExprConstUInt64> const)
visitExprConstUInt64 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt64 > const | 
after ExprConstUInt64
- AstVisitor.preVisitExprConstUInt(self: AstVisitor; expr: smart_ptr<ExprConstUInt> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt > const | 
before ExprConstUInt
- AstVisitor.visitExprConstUInt(self: AstVisitor; expr: smart_ptr<ExprConstUInt> const)
visitExprConstUInt returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt > const | 
after ExprConstUInt
- AstVisitor.preVisitExprConstUInt2(self: AstVisitor; expr: smart_ptr<ExprConstUInt2> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt2 > const | 
before ExprConstUInt2
- AstVisitor.visitExprConstUInt2(self: AstVisitor; expr: smart_ptr<ExprConstUInt2> const)
visitExprConstUInt2 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt2 > const | 
after ExprConstUInt2
- AstVisitor.preVisitExprConstUInt3(self: AstVisitor; expr: smart_ptr<ExprConstUInt3> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt3 > const | 
before ExprConstUInt3
- AstVisitor.visitExprConstUInt3(self: AstVisitor; expr: smart_ptr<ExprConstUInt3> const)
visitExprConstUInt3 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt3 > const | 
after ExprConstUInt3
- AstVisitor.preVisitExprConstUInt4(self: AstVisitor; expr: smart_ptr<ExprConstUInt4> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt4 > const | 
before ExprConstUInt4
- AstVisitor.visitExprConstUInt4(self: AstVisitor; expr: smart_ptr<ExprConstUInt4> const)
visitExprConstUInt4 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstUInt4 > const | 
after ExprConstUInt4
- AstVisitor.preVisitExprConstRange(self: AstVisitor; expr: smart_ptr<ExprConstRange> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstRange > const | 
before ExprConstRange
- AstVisitor.visitExprConstRange(self: AstVisitor; expr: smart_ptr<ExprConstRange> const)
visitExprConstRange returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstRange > const | 
after ExprConstRange
- AstVisitor.preVisitExprConstURange(self: AstVisitor; expr: smart_ptr<ExprConstURange> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstURange > const | 
before ExprConstURange
- AstVisitor.visitExprConstURange(self: AstVisitor; expr: smart_ptr<ExprConstURange> const)
visitExprConstURange returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstURange > const | 
after ExprConstURange
- AstVisitor.preVisitExprConstRange64(self: AstVisitor; expr: smart_ptr<ExprConstRange64> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstRange64 > const | 
before ExprConstRange64
- AstVisitor.visitExprConstRange64(self: AstVisitor; expr: smart_ptr<ExprConstRange64> const)
visitExprConstRange64 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstRange64 > const | 
after ExprConstRange64
- AstVisitor.preVisitExprConstURange64(self: AstVisitor; expr: smart_ptr<ExprConstURange64> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstURange64 > const | 
before ExprConstURange64
- AstVisitor.visitExprConstURange64(self: AstVisitor; expr: smart_ptr<ExprConstURange64> const)
visitExprConstURange64 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstURange64 > const | 
after ExprConstURange64
- AstVisitor.preVisitExprConstBool(self: AstVisitor; expr: smart_ptr<ExprConstBool> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstBool > const | 
before ExprConstBool
- AstVisitor.visitExprConstBool(self: AstVisitor; expr: smart_ptr<ExprConstBool> const)
visitExprConstBool returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstBool > const | 
after ExprConstBool
- AstVisitor.preVisitExprConstFloat(self: AstVisitor; expr: smart_ptr<ExprConstFloat> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstFloat > const | 
before ExprConstFloat
- AstVisitor.visitExprConstFloat(self: AstVisitor; expr: smart_ptr<ExprConstFloat> const)
visitExprConstFloat returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstFloat > const | 
after ExprConstFloat
- AstVisitor.preVisitExprConstFloat2(self: AstVisitor; expr: smart_ptr<ExprConstFloat2> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstFloat2 > const | 
before ExprConstFloat2
- AstVisitor.visitExprConstFloat2(self: AstVisitor; expr: smart_ptr<ExprConstFloat2> const)
visitExprConstFloat2 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstFloat2 > const | 
after ExprConstFloat2
- AstVisitor.preVisitExprConstFloat3(self: AstVisitor; expr: smart_ptr<ExprConstFloat3> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstFloat3 > const | 
before ExprConstFloat3
- AstVisitor.visitExprConstFloat3(self: AstVisitor; expr: smart_ptr<ExprConstFloat3> const)
visitExprConstFloat3 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstFloat3 > const | 
after ExprConstFloat3
- AstVisitor.preVisitExprConstFloat4(self: AstVisitor; expr: smart_ptr<ExprConstFloat4> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstFloat4 > const | 
before ExprConstFloat4
- AstVisitor.visitExprConstFloat4(self: AstVisitor; expr: smart_ptr<ExprConstFloat4> const)
visitExprConstFloat4 returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstFloat4 > const | 
after ExprConstFloat4
- AstVisitor.preVisitExprConstString(self: AstVisitor; expr: smart_ptr<ExprConstString> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstString > const | 
before ExprConstString
- AstVisitor.visitExprConstString(self: AstVisitor; expr: smart_ptr<ExprConstString> const)
visitExprConstString returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstString > const | 
after ExprConstString
- AstVisitor.preVisitExprConstDouble(self: AstVisitor; expr: smart_ptr<ExprConstDouble> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstDouble > const | 
before ExprConstDouble
- AstVisitor.visitExprConstDouble(self: AstVisitor; expr: smart_ptr<ExprConstDouble> const)
visitExprConstDouble returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprConstDouble > const | 
after ExprConstDouble
- AstVisitor.preVisitExprFakeContext(self: AstVisitor; expr: smart_ptr<ExprFakeContext> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFakeContext > const | 
before ExprConstFakeContext
- AstVisitor.visitExprFakeContext(self: AstVisitor; expr: smart_ptr<ExprFakeContext> const)
visitExprFakeContext returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFakeContext > const | 
after ExprConstFakeContext
- AstVisitor.preVisitExprFakeLineInfo(self: AstVisitor; expr: smart_ptr<ExprFakeLineInfo> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFakeLineInfo > const | 
before ExprConstFakeLineInfo
- AstVisitor.visitExprFakeLineInfo(self: AstVisitor; expr: smart_ptr<ExprFakeLineInfo> const)
visitExprFakeLineInfo returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprFakeLineInfo > const | 
after ExprConstFakeLineInfo
- AstVisitor.preVisitExprReader(self: AstVisitor; expr: smart_ptr<ExprReader> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprReader > const | 
before ExprReader
- AstVisitor.visitExprReader(self: AstVisitor; expr: smart_ptr<ExprReader> const)
visitExprReader returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprReader > const | 
after ExprReader
- AstVisitor.preVisitExprUnsafe(self: AstVisitor; expr: smart_ptr<ExprUnsafe> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprUnsafe > const | 
before ExprUnsafe
- AstVisitor.visitExprUnsafe(self: AstVisitor; expr: smart_ptr<ExprUnsafe> const)
visitExprUnsafe returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprUnsafe > const | 
after ExprUnsafe
- AstVisitor.preVisitExprCallMacro(self: AstVisitor; expr: smart_ptr<ExprCallMacro> const)
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCallMacro > const | 
before ExprCallMacro
- AstVisitor.visitExprCallMacro(self: AstVisitor; expr: smart_ptr<ExprCallMacro> const)
visitExprCallMacro returns ExpressionPtr
| argument | argument type | 
|---|---|
| self | |
| expr | smart_ptr< ast::ExprCallMacro > const | 
after ExprCallMacro
12.8. Call generation
- make_call(at: LineInfo const implicit; name: string const implicit)
make_call returns smart_ptr< ast::Expression >
| argument | argument type | 
|---|---|
| at | rtti::LineInfo const implicit | 
| name | string const implicit | 
Creates appropriate call expression for the given call function name in the Program. ExprCallMacro will be created if appropriate macro is found. Otherwise ExprCall will be created.
12.9. Visitor pattern
- visit(program: smart_ptr<Program> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit)
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
Invokes visitor for the given object.
- visit_modules(program: smart_ptr<Program> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit)
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
Invokes visitor for the given list of modules inside the Program.
- visit_module(program: smart_ptr<Program> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit; module: Module? const implicit)
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
| module | rtti::Module ? const implicit | 
Invokes visitor for the given module.
- visit(function: smart_ptr<Function> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit)
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
Invokes visitor for the given object.
- visit_enumeration(program: smart_ptr<Program> const implicit; enumeration: smart_ptr<Enumeration> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit)
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| enumeration | smart_ptr< ast::Enumeration > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
Invokes visitor for the given enumeration.
- visit_structure(program: smart_ptr<Program> const implicit; structure: smart_ptr<Structure> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit)
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| structure | smart_ptr< ast::Structure > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
Invokes visitor for the given structure.
- visit(expression: smart_ptr<Expression> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit)
visit returns smart_ptr< ast::Expression >
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::Expression > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
Invokes visitor for the given object.
- visit(expression: smart_ptr<TypeDecl> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit)
visit returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::TypeDecl > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
Invokes visitor for the given object.
- visit_finally(expression: smart_ptr<ExprBlock> const implicit; adapter: smart_ptr<VisitorAdapter> const implicit)
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::ExprBlock > const implicit | 
| adapter | smart_ptr< ast::VisitorAdapter > const implicit | 
Calls visit on the finally section of the block.
12.10. Expression generation
- force_generated(expression: smart_ptr<Expression> const& implicit; value: bool const)
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::Expression > const& implicit | 
| value | bool const | 
Forces generated flag on subexrepssion.
- force_generated(function: smart_ptr<Function> const& implicit; value: bool const)
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const& implicit | 
| value | bool const | 
Forces generated flag on subexrepssion.
- get_expression_annotation(expr: Expression? const implicit)
get_expression_annotation returns rtti::Annotation ?
| argument | argument type | 
|---|---|
| expr | ast::Expression ? const implicit | 
Get ‘Annotation’ for the ‘ast::Expression’ and its inherited types.
- make_type_info_structure(ctx: Context implicit; type: smart_ptr<TypeDecl> const implicit)
make_type_info_structure returns rtti::TypeInfo ?
| argument | argument type | 
|---|---|
| ctx | rtti::Context implicit | 
| type | smart_ptr< ast::TypeDecl > const implicit | 
Returns new TypeInfo corresponding to the specific type.
12.11. Adapter generation
make_clone_structure (structure:ast::Structure? const implicit) : smart_ptr<ast::Function>
make_block_type (blk:ast::ExprBlock? const implicit) : smart_ptr<ast::TypeDecl>
make_visitor (someClass:auto const) : smart_ptr<ast::VisitorAdapter>
make_reader_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::ReaderMacro>
make_comment_reader (name:string const;someClassPtr:auto -const) : smart_ptr<ast::CommentReader>
make_call_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::CallMacro>
make_typeinfo_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::TypeInfoMacro>
make_pass_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::PassMacro>
make_variant_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::VariantMacro>
make_for_loop_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::ForLoopMacro>
make_capture_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::CaptureMacro>
make_type_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::TypeMacro>
make_simulate_macro (name:string const;someClassPtr:auto -const) : smart_ptr<ast::SimulateMacro>
- make_visitor(class: void? const implicit; info: StructInfo const? const implicit)
make_visitor returns smart_ptr< ast::VisitorAdapter >
| argument | argument type | 
|---|---|
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstVisitor interface.
- make_function_annotation(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_function_annotation returns smart_ptr< ast::FunctionAnnotation >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstFunctionAnnotation.
- make_block_annotation(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_block_annotation returns smart_ptr< ast::FunctionAnnotation >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstBlockAnnotation.
- make_structure_annotation(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_structure_annotation returns smart_ptr< ast::StructureAnnotation >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstStructureAnnotation.
- make_enumeration_annotation(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_enumeration_annotation returns smart_ptr< ast::EnumerationAnnotation >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstEnumearationAnnotation.
- make_pass_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_pass_macro returns smart_ptr< ast::PassMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstPassMacro.
- make_reader_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_reader_macro returns smart_ptr< ast::ReaderMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstReaderMacro.
- make_comment_reader(class: void? const implicit; info: StructInfo const? const implicit)
make_comment_reader returns smart_ptr< ast::CommentReader >
| argument | argument type | 
|---|---|
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstCommentReader.
- make_call_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_call_macro returns smart_ptr< ast::CallMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstCallMacro.
- make_typeinfo_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_typeinfo_macro returns smart_ptr< ast::TypeInfoMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstTypeInfo macro.
- make_variant_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_variant_macro returns smart_ptr< ast::VariantMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstVariantMacro.
- make_for_loop_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_for_loop_macro returns smart_ptr< ast::ForLoopMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstForLoopMacro.
- make_capture_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_capture_macro returns smart_ptr< ast::CaptureMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the AstCaptureMacro.
- make_type_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_type_macro returns smart_ptr< ast::TypeMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the ‘AstTypeMacro’ interface.
- make_simulate_macro(name: string const implicit; class: void? const implicit; info: StructInfo const? const implicit)
make_simulate_macro returns smart_ptr< ast::SimulateMacro >
| argument | argument type | 
|---|---|
| name | string const implicit | 
| class | void? const implicit | 
| info | rtti::StructInfo const? const implicit | 
Creates adapter for the ‘AstSimulateMacro’ interface.
- make_clone_structure(structure: Structure? const implicit)
make_clone_structure returns smart_ptr< ast::Function >
| argument | argument type | 
|---|---|
| structure | ast::Structure ? const implicit | 
Generates clone function for the given structure.
- make_type_info(helper: smart_ptr<DebugInfoHelper> const implicit; info: TypeInfo? const implicit; type: smart_ptr<TypeDecl> const& implicit)
make_type_info returns rtti::TypeInfo ?
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| info | rtti::TypeInfo ? const implicit | 
| type | smart_ptr< ast::TypeDecl > const& implicit | 
Generates TypeInfo? for the specified type, given DebugInfoHelper.
- make_variable_debug_info(helper: smart_ptr<DebugInfoHelper> const implicit; var: Variable? const implicit)
make_variable_debug_info returns rtti::VarInfo ?
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| var | ast::Variable ? const implicit | 
Generates VariableInfo? for the specified variable, given DebugInfoHelper.
- make_struct_variable_debug_info(helper: smart_ptr<DebugInfoHelper> const implicit; st: Structure const? const implicit; var: FieldDeclaration const? const implicit)
make_struct_variable_debug_info returns rtti::VarInfo ?
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| st | ast::Structure const? const implicit | 
| var | ast::FieldDeclaration const? const implicit | 
Generates VariableInfo? for the specified structure field, given DebugInfoHelper.
- make_struct_debug_info(helper: smart_ptr<DebugInfoHelper> const implicit; st: Structure const? const implicit)
make_struct_debug_info returns rtti::StructInfo ?
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| st | ast::Structure const? const implicit | 
Generates StructInfo? for the specified structure, given DebugInfoHelper.
- make_function_debug_info(helper: smart_ptr<DebugInfoHelper> const implicit; fn: Function const? const implicit)
make_function_debug_info returns rtti::FuncInfo ?
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| fn | ast::Function const? const implicit | 
Generates FunctInfo? for the specified function, given DebugInfoHelper.
- make_enum_debug_info(helper: smart_ptr<DebugInfoHelper> const implicit; en: Enumeration const? const implicit)
make_enum_debug_info returns rtti::EnumInfo ?
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| en | ast::Enumeration const? const implicit | 
Generates EnumInfo? for the specified enumeration, given DebugInfoHelper.
- make_invokable_type_debug_info(helper: smart_ptr<DebugInfoHelper> const implicit; blk: smart_ptr<TypeDecl> const implicit; at: LineInfo const implicit)
make_invokable_type_debug_info returns rtti::FuncInfo ?
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| blk | smart_ptr< ast::TypeDecl > const implicit | 
| at | rtti::LineInfo const implicit | 
Generates FuncInfo? for the specified invokable type (lambda, block), given DebugInfoHelper.
- make_block_type(blk: ExprBlock? const implicit)
make_block_type returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| blk | ast::ExprBlock ? const implicit | 
Generates TypeDeclPtr for the specified block or lambda type.
- make_function_annotation(name: string const; someClassPtr: auto)
make_function_annotation returns FunctionAnnotationPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstFunctionAnnotation.
- make_block_annotation(name: string const; someClassPtr: auto)
make_block_annotation returns FunctionAnnotationPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstBlockAnnotation.
- make_structure_annotation(name: string const; someClassPtr: auto)
make_structure_annotation returns StructureAnnotationPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstStructureAnnotation.
- make_enumeration_annotation(name: string const; someClassPtr: auto)
make_enumeration_annotation returns EnumerationAnnotationPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstEnumearationAnnotation.
- make_visitor(someClass: auto const)
make_visitor returns smart_ptr< ast::VisitorAdapter >
| argument | argument type | 
|---|---|
| someClass | auto const | 
Creates adapter for the AstVisitor interface.
- make_reader_macro(name: string const; someClassPtr: auto)
make_reader_macro returns ReaderMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstReaderMacro.
- make_comment_reader(name: string const; someClassPtr: auto)
make_comment_reader returns CommentReaderPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstCommentReader.
- make_call_macro(name: string const; someClassPtr: auto)
make_call_macro returns CallMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstCallMacro.
- make_typeinfo_macro(name: string const; someClassPtr: auto)
make_typeinfo_macro returns TypeInfoMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstTypeInfo macro.
- make_pass_macro(name: string const; someClassPtr: auto)
make_pass_macro returns PassMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstPassMacro.
- make_variant_macro(name: string const; someClassPtr: auto)
make_variant_macro returns VariantMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstVariantMacro.
- make_for_loop_macro(name: string const; someClassPtr: auto)
make_for_loop_macro returns ForLoopMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstForLoopMacro.
- make_capture_macro(name: string const; someClassPtr: auto)
make_capture_macro returns CaptureMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the AstCaptureMacro.
- make_type_macro(name: string const; someClassPtr: auto)
make_type_macro returns TypeMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the ‘AstTypeMacro’ interface.
- make_simulate_macro(name: string const; someClassPtr: auto)
make_simulate_macro returns SimulateMacroPtr
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Creates adapter for the ‘AstSimulateMacro’ interface.
12.12. Adapter application
add_new_block_annotation (name:string const;someClassPtr:auto -const) : auto
add_new_function_annotation (name:string const;someClassPtr:auto -const) : auto
add_new_contract_annotation (name:string const;someClassPtr:auto -const) : auto
add_new_structure_annotation (name:string const;someClassPtr:auto -const) : auto
add_new_enumeration_annotation (name:string const;someClassPtr:auto -const) : auto
add_new_variant_macro (name:string const;someClassPtr:auto -const) : auto
add_new_for_loop_macro (name:string const;someClassPtr:auto -const) : auto
add_new_capture_macro (name:string const;someClassPtr:auto -const) : auto
add_new_type_macro (name:string const;someClassPtr:auto -const) : auto
add_new_simulate_macro (name:string const;someClassPtr:auto -const) : auto
add_new_reader_macro (name:string const;someClassPtr:auto -const) : auto
add_new_comment_reader (name:string const;someClassPtr:auto -const) : auto
add_new_call_macro (name:string const;someClassPtr:auto -const) : auto
add_new_typeinfo_macro (name:string const;someClassPtr:auto -const) : auto
add_new_infer_macro (name:string const;someClassPtr:auto -const) : auto
add_new_dirty_infer_macro (name:string const;someClassPtr:auto -const) : auto
add_new_lint_macro (name:string const;someClassPtr:auto -const) : auto
add_new_global_lint_macro (name:string const;someClassPtr:auto -const) : auto
add_new_optimization_macro (name:string const;someClassPtr:auto -const) : auto
- add_function_annotation(module: Module? const implicit; annotation: smart_ptr<FunctionAnnotation>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::FunctionAnnotation >& implicit | 
Adds function annotation to the given object. Calls apply if applicable.
- add_function_annotation(function: smart_ptr<Function> const implicit; annotation: smart_ptr<FunctionAnnotation>& implicit)
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const implicit | 
| annotation | smart_ptr< ast::FunctionAnnotation >& implicit | 
Adds function annotation to the given object. Calls apply if applicable.
- add_function_annotation(function: smart_ptr<Function> const implicit; annotation: smart_ptr<AnnotationDeclaration>& implicit)
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const implicit | 
| annotation | smart_ptr< rtti::AnnotationDeclaration >& implicit | 
Adds function annotation to the given object. Calls apply if applicable.
- add_block_annotation(block: smart_ptr<ExprBlock> const implicit; annotation: smart_ptr<FunctionAnnotation>& implicit)
| argument | argument type | 
|---|---|
| block | smart_ptr< ast::ExprBlock > const implicit | 
| annotation | smart_ptr< ast::FunctionAnnotation >& implicit | 
Adds annotation declaration to the block.
- add_block_annotation(block: smart_ptr<ExprBlock> const implicit; annotation: smart_ptr<AnnotationDeclaration>& implicit)
| argument | argument type | 
|---|---|
| block | smart_ptr< ast::ExprBlock > const implicit | 
| annotation | smart_ptr< rtti::AnnotationDeclaration >& implicit | 
Adds annotation declaration to the block.
- add_structure_annotation(module: Module? const implicit; annotation: smart_ptr<StructureAnnotation>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::StructureAnnotation >& implicit | 
Adds structure annotation to the given object. Calls apply if applicable.
- add_structure_annotation(structure: smart_ptr<Structure> const implicit; annotation: smart_ptr<StructureAnnotation>& implicit)
| argument | argument type | 
|---|---|
| structure | smart_ptr< ast::Structure > const implicit | 
| annotation | smart_ptr< ast::StructureAnnotation >& implicit | 
Adds structure annotation to the given object. Calls apply if applicable.
- add_structure_annotation(structure: smart_ptr<Structure> const implicit; annotation: smart_ptr<AnnotationDeclaration>& implicit)
| argument | argument type | 
|---|---|
| structure | smart_ptr< ast::Structure > const implicit | 
| annotation | smart_ptr< rtti::AnnotationDeclaration >& implicit | 
Adds structure annotation to the given object. Calls apply if applicable.
- add_enumeration_annotation(module: Module? const implicit; annotation: smart_ptr<EnumerationAnnotation>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::EnumerationAnnotation >& implicit | 
Adds enumeration annotation to the given object. Calls apply if applicable.
- add_infer_macro(module: Module? const implicit; annotation: smart_ptr<PassMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::PassMacro >& implicit | 
Adds AstPassMacro adapter to the infer` pass.
- add_dirty_infer_macro(module: Module? const implicit; annotation: smart_ptr<PassMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::PassMacro >& implicit | 
Adds AstPassMacro adapter to the dirty infer pass.
- add_lint_macro(module: Module? const implicit; annotation: smart_ptr<PassMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::PassMacro >& implicit | 
Adds AstPassMacro adapter to the lint pass.
- add_global_lint_macro(module: Module? const implicit; annotation: smart_ptr<PassMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::PassMacro >& implicit | 
Adds AstPassMacro adapter to the global lint pass.
- add_optimization_macro(module: Module? const implicit; annotation: smart_ptr<PassMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::PassMacro >& implicit | 
Adds AstPassMacro adapter to the optimization pass.
- add_reader_macro(module: Module? const implicit; annotation: smart_ptr<ReaderMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::ReaderMacro >& implicit | 
Adds AstReaderMacro adapter to the specific module.
- add_comment_reader(module: Module? const implicit; reader: smart_ptr<CommentReader>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| reader | smart_ptr< ast::CommentReader >& implicit | 
Adds AstCommentReader adapter to the specific module.
- add_call_macro(module: Module? const implicit; annotation: smart_ptr<CallMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::CallMacro >& implicit | 
Adds AstCallMacro adapter to the specific module.
- add_typeinfo_macro(module: Module? const implicit; annotation: smart_ptr<TypeInfoMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::TypeInfoMacro >& implicit | 
Adds AstTypeInfo adapter to the specific module.
- add_variant_macro(module: Module? const implicit; annotation: smart_ptr<VariantMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::VariantMacro >& implicit | 
Adds AstVariantMacro to the specific module.
- add_for_loop_macro(module: Module? const implicit; annotation: smart_ptr<ForLoopMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::ForLoopMacro >& implicit | 
Adds AstForLoopMacro to the specific module.
- add_capture_macro(module: Module? const implicit; annotation: smart_ptr<CaptureMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::CaptureMacro >& implicit | 
Adds AstCaptureMacro to the specific module.
- add_type_macro(module: Module? const implicit; annotation: smart_ptr<TypeMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::TypeMacro >& implicit | 
Adds ‘AstTypeMacro’ to the specific module.
- add_simulate_macro(module: Module? const implicit; annotation: smart_ptr<SimulateMacro>& implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| annotation | smart_ptr< ast::SimulateMacro >& implicit | 
Adds AstSimulateMacro to the specific module.
- add_module_option(module: Module? const implicit; option: string const implicit; type: Type const)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| option | string const implicit | 
| type | rtti::Type const | 
Add module-specific option, which is accessible via “options” keyword.
- add_new_block_annotation(name: string const; someClassPtr: auto)
add_new_block_annotation returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstBlockAnnotation and adds it to the current module.
- add_new_function_annotation(name: string const; someClassPtr: auto)
add_new_function_annotation returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstFunctionAnnotation and adds it to the current module.
- add_new_contract_annotation(name: string const; someClassPtr: auto)
add_new_contract_annotation returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstContractAnnotation and adds it to the current module.
- add_new_structure_annotation(name: string const; someClassPtr: auto)
add_new_structure_annotation returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstStructureAnnotation and adds it to the current module.
- add_new_enumeration_annotation(name: string const; someClassPtr: auto)
add_new_enumeration_annotation returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstEnumerationAnnotation and adds it to the current module.
- add_new_variant_macro(name: string const; someClassPtr: auto)
add_new_variant_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstVariantMacro and adds it to the current module.
- add_new_for_loop_macro(name: string const; someClassPtr: auto)
add_new_for_loop_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstForLoopMacro and adds it to the current module.
- add_new_capture_macro(name: string const; someClassPtr: auto)
add_new_capture_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstCaptureMacro and adds it to the current module.
- add_new_type_macro(name: string const; someClassPtr: auto)
add_new_type_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the ‘AstTypeMacro’ and adds it to the current module.
- add_new_simulate_macro(name: string const; someClassPtr: auto)
add_new_simulate_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstSimulateMacro and adds it to the current module.
- add_new_reader_macro(name: string const; someClassPtr: auto)
add_new_reader_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstReaderMacro and adds it to the current module.
- add_new_comment_reader(name: string const; someClassPtr: auto)
add_new_comment_reader returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstCommentReader and adds it to the current module.
- add_new_call_macro(name: string const; someClassPtr: auto)
add_new_call_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstCallMacro and adds it to the current module.
- add_new_typeinfo_macro(name: string const; someClassPtr: auto)
add_new_typeinfo_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstTypeInfoMacro and adds it to the current module.
- add_new_infer_macro(name: string const; someClassPtr: auto)
add_new_infer_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstPassMacro and adds it to the current module infer pass.
- add_new_dirty_infer_macro(name: string const; someClassPtr: auto)
add_new_dirty_infer_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstPassMacro and adds it to the current module dirty infer pass.
- add_new_lint_macro(name: string const; someClassPtr: auto)
add_new_lint_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstPassMacro and adds it to the current module lint pass.
- add_new_global_lint_macro(name: string const; someClassPtr: auto)
add_new_global_lint_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstPassMacro and adds it to the current module global lint pass.
- add_new_optimization_macro(name: string const; someClassPtr: auto)
add_new_optimization_macro returns auto
| argument | argument type | 
|---|---|
| name | string const | 
| someClassPtr | auto | 
Makes adapter to the AstPassMacro and adds it to the current module optimization pass.
12.13. Adding objects to objects
- add_enumeration_entry(enum: smart_ptr<Enumeration> const implicit; name: string const implicit)
add_enumeration_entry returns int const
| argument | argument type | 
|---|---|
| enum | smart_ptr< ast::Enumeration > const implicit | 
| name | string const implicit | 
Adds entry to enumeration annotation.
- add_function(module: Module? const implicit; function: smart_ptr<Function>& implicit)
add_function returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| function | smart_ptr< ast::Function >& implicit | 
Adds function to a Module. Will return false on duplicates.
- add_generic(module: Module? const implicit; function: smart_ptr<Function>& implicit)
add_generic returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| function | smart_ptr< ast::Function >& implicit | 
Adds generic function to a Module. Will return false on duplicates.
- add_variable(module: Module? const implicit; variable: smart_ptr<Variable>& implicit)
add_variable returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| variable | smart_ptr< ast::Variable >& implicit | 
Adds variable to a Module. Will return false on duplicates.
- add_keyword(module: Module? const implicit; keyword: string const implicit; needOxfordComma: bool const)
add_keyword returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| keyword | string const implicit | 
| needOxfordComma | bool const | 
Adds new keyword. It can appear in the keyword <type> expr or keyword expr block syntax. See daslib/match as implementation example.
- add_type_function(module: Module? const implicit; keyword: string const implicit)
add_type_function returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| keyword | string const implicit | 
Adds type function keyword, i.e allow function call to have several type arguments first via the following syntax some_call<type_args>(regular_args).
- add_structure(module: Module? const implicit; structure: smart_ptr<Structure>& implicit)
add_structure returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| structure | smart_ptr< ast::Structure >& implicit | 
Adds structure to a Module. Will return false on duplicates.
- add_alias(module: Module? const implicit; structure: smart_ptr<TypeDecl>& implicit)
add_alias returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| structure | smart_ptr< ast::TypeDecl >& implicit | 
Adds type alias to the specified module.
- add_module_require(module: Module? const implicit; publicModule: Module? const implicit; pub: bool const)
add_module_require returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| publicModule | rtti::Module ? const implicit | 
| pub | bool const | 
Add module dependencies similar to “require” keyword.
12.14. Program and module access
this_program (context:__context const) : smart_ptr<rtti::Program>
this_module (context:__context const;line:__lineInfo const) : rtti::Module?
compiling_program (context:__context const;at:__lineInfo const) : smart_ptr<rtti::Program>
compiling_module (context:__context const;at:__lineInfo const) : rtti::Module?
- this_program()
this_program returns smart_ptr< rtti::Program >
Program attached to the current context (or null if RTTI is disabled).
- this_module()
this_module returns rtti::Module ?
Main module attached to the current context (will through if RTTI is disabled).
- compiling_program()
compiling_program returns smart_ptr< rtti::Program >
Currently compiling program.
- compiling_module()
compiling_module returns rtti::Module ?
Currently compiling module.
12.15. Textual descriptions of the objects
- describe_typedecl(type: smart_ptr<TypeDecl> const implicit; extra: bool const; contracts: bool const; module: bool const)
describe_typedecl returns string const
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
| extra | bool const | 
| contracts | bool const | 
| module | bool const | 
Returns description of the TypeDecl which should match corresponding Daslang type declaration.
- describe_typedecl_cpp(type: smart_ptr<TypeDecl> const implicit; substitueRef: bool const; skipRef: bool const; skipConst: bool const; redundantConst: bool const; choose_smart_ptr: bool const)
describe_typedecl_cpp returns string const
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
| substitueRef | bool const | 
| skipRef | bool const | 
| skipConst | bool const | 
| redundantConst | bool const | 
| choose_smart_ptr | bool const | 
Returns description of the TypeDecl which should match corresponding C++ type declaration.
- describe_expression(expression: smart_ptr<Expression> const implicit)
describe_expression returns string const
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::Expression > const implicit | 
Returns description of the Expression which should match corresponding Daslang code.
- describe_function(function: smart_ptr<Function> const implicit)
describe_function returns string const
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const implicit | 
Returns description of the Function which should match corresponding Daslang function declaration.
- das_to_string(type: Type const)
das_to_string returns string const
| argument | argument type | 
|---|---|
| type | rtti::Type const | 
Returns description (name) of the corresponding Type.
- describe(decl: smart_ptr<TypeDecl> const; extra: bool const; contracts: bool const; modules: bool const)
describe returns auto
| argument | argument type | 
|---|---|
| decl | smart_ptr< ast::TypeDecl > const | 
| extra | bool const | 
| contracts | bool const | 
| modules | bool const | 
Describes object and produces corresponding Daslang code as string.
- describe_cpp(decl: smart_ptr<TypeDecl> const; substitureRef: bool const; skipRef: bool const; skipConst: bool const; redundantConst: bool const; chooseSmartPtr: bool const)
describe_cpp returns auto
| argument | argument type | 
|---|---|
| decl | smart_ptr< ast::TypeDecl > const | 
| substitureRef | bool const | 
| skipRef | bool const | 
| skipConst | bool const | 
| redundantConst | bool const | 
| chooseSmartPtr | bool const | 
Describes TypeDecl and produces corresponding C++ code as a string.
- describe(expr: smart_ptr<Expression> const)
describe returns auto
| argument | argument type | 
|---|---|
| expr | smart_ptr< ast::Expression > const | 
Describes object and produces corresponding Daslang code as string.
- describe(expr: smart_ptr<Function> const)
describe returns auto
| argument | argument type | 
|---|---|
| expr | smart_ptr< ast::Function > const | 
Describes object and produces corresponding Daslang code as string.
12.16. Searching
- find_call_macro(module: Module? const implicit; name: string const implicit)
find_call_macro returns ast::CallMacro ?
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| name | string const implicit | 
Find CallMacro by name in the Module.
- find_module_via_rtti(program: smart_ptr<Program> const implicit; name: string const implicit)
find_module_via_rtti returns rtti::Module ?
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| name | string const implicit | 
Find module by name in the Program.
- find_module_function_via_rtti(module: Module? const implicit; function: function<> const)
find_module_function_via_rtti returns smart_ptr< ast::Function >
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| function | function<> const | 
Find function by name in the Module.
- find_variable(module: Module? const implicit; variable: string const implicit)
find_variable returns smart_ptr< ast::Variable >
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| variable | string const implicit | 
Finds variable in the Module.
- find_matching_variable(program: Program? const implicit; function: Function? const implicit; name: string const implicit; seePrivate: bool const; block: block<(var arg0:array<smart_ptr<Variable>>#):void> const implicit)
| argument | argument type | 
|---|---|
| program | rtti::Program ? const implicit | 
| function | ast::Function ? const implicit | 
| name | string const implicit | 
| seePrivate | bool const | 
| block | block<(array<smart_ptr< ast::Variable >>#):void> const implicit | 
Finds global or shared variable in the given function, according to visibility and privacy rules.
- find_bitfield_name(bit: smart_ptr<TypeDecl> const implicit; value: bitfield const)
find_bitfield_name returns string const
| argument | argument type | 
|---|---|
| bit | smart_ptr< ast::TypeDecl > const implicit | 
| value | bitfield<> const | 
Finds name of the corresponding bitfield value in the specified type.
- find_enum_name(enum: Enumeration? const implicit; value: int64 const)
find_enum_name returns string const
| argument | argument type | 
|---|---|
| enum | ast::Enumeration ? const implicit | 
| value | int64 const | 
Finds name of the corresponding enumeration value in the specified type.
- find_enum_value(enum: smart_ptr<Enumeration> const implicit; value: string const implicit)
find_enum_value returns int64 const
| argument | argument type | 
|---|---|
| enum | smart_ptr< ast::Enumeration > const implicit | 
| value | string const implicit | 
Finds name of the corresponding enumeration value in the specified type.
- find_enum_value(enum: Enumeration? const implicit; value: string const implicit)
find_enum_value returns int64 const
| argument | argument type | 
|---|---|
| enum | ast::Enumeration ? const implicit | 
| value | string const implicit | 
Finds name of the corresponding enumeration value in the specified type.
- find_structure_field(structPtr: Structure? const implicit; field: string const implicit)
find_structure_field returns ast::FieldDeclaration ?
| argument | argument type | 
|---|---|
| structPtr | ast::Structure ? const implicit | 
| field | string const implicit | 
Returns FieldDeclaration for the specific field of the structure type, or null if not found.
- find_unique_structure(program: smart_ptr<Program> const implicit; name: string const implicit)
find_unique_structure returns ast::Structure ?
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| name | string const implicit | 
Find structure in the program with the specified name. If its unique - return it, otherwise null.
- find_struct_field_parent(structure: smart_ptr<Structure> const implicit; name: string const implicit)
find_struct_field_parent returns ast::Structure const? const
| argument | argument type | 
|---|---|
| structure | smart_ptr< ast::Structure > const implicit | 
| name | string const implicit | 
Finds parent structure of the specified field declaration.
- find_module(prog: smart_ptr<Program> const; name: string const)
find_module returns rtti::Module ?
| argument | argument type | 
|---|---|
| prog | smart_ptr< rtti::Program > const | 
| name | string const | 
Finds Module in the Program.
- find_module(name: string const)
find_module returns rtti::Module ?
| argument | argument type | 
|---|---|
| name | string const | 
Finds Module in the Program.
- find_compiling_module(name: string const)
find_compiling_module returns rtti::Module ?
| argument | argument type | 
|---|---|
| name | string const | 
Finds Module in the currently compiling Program.
12.17. Iterating
- for_each_module(program: Program? const implicit; block: block<(var arg0:Module?):void> const implicit)
| argument | argument type | 
|---|---|
| program | rtti::Program ? const implicit | 
| block | block<( rtti::Module ?):void> const implicit | 
Iterates through each module in the program.
- for_each_module_no_order(program: Program? const implicit; block: block<(var arg0:Module?):void> const implicit)
| argument | argument type | 
|---|---|
| program | rtti::Program ? const implicit | 
| block | block<( rtti::Module ?):void> const implicit | 
Iterates through each module in the program in no particular order (in order they appear in libgroup).
- for_each_function(module: Module? const implicit; name: string const implicit; block: block<(var arg0:smart_ptr<Function>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| name | string const implicit | 
| block | block<(smart_ptr< ast::Function >):void> const implicit | 
Iterates through each function in the given Module. If the name is empty matches all functions.
- for_each_generic(module: Module? const implicit; name: string const implicit; block: block<(var arg0:smart_ptr<Function>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| name | string const implicit | 
| block | block<(smart_ptr< ast::Function >):void> const implicit | 
Iterates through each generic function in the given Module.
- any_table_foreach(table: void? const implicit; keyStride: int const; valueStride: int const; block: block<(var arg0:void?;var arg1:void?):void> const implicit)
| argument | argument type | 
|---|---|
| table | void? const implicit | 
| keyStride | int const | 
| valueStride | int const | 
| block | block<(void?;void?):void> const implicit | 
Iterates through any table<> type in a typeless fasion (via void?)
- any_array_foreach(array: void? const implicit; stride: int const; block: block<(var arg0:void?):void> const implicit)
| argument | argument type | 
|---|---|
| array | void? const implicit | 
| stride | int const | 
| block | block<(void?):void> const implicit | 
Iterates through any array<> type in a typeless fasion (via void?)
- for_each_typedef(module: Module? const implicit; block: block<(var arg0:string#;var arg1:smart_ptr<TypeDecl>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(string#;smart_ptr< ast::TypeDecl >):void> const implicit | 
Iterates through every typedef in the Module.
- for_each_enumeration(module: Module? const implicit; block: block<(var arg0:smart_ptr<Enumeration>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(smart_ptr< ast::Enumeration >):void> const implicit | 
Iterates through every enumeration in the Module.
- for_each_structure(module: Module? const implicit; block: block<(var arg0:smart_ptr<Structure>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(smart_ptr< ast::Structure >):void> const implicit | 
Iterates through every structure in the Module.
- for_each_generic(module: Module? const implicit; block: block<(var arg0:smart_ptr<Function>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(smart_ptr< ast::Function >):void> const implicit | 
Iterates through each generic function in the given Module.
- for_each_global(module: Module? const implicit; block: block<(var arg0:smart_ptr<Variable>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(smart_ptr< ast::Variable >):void> const implicit | 
Iterates through every global variable in the Module.
- for_each_annotation_ordered(module: Module? const implicit; block: block<(var arg0:uint64;var arg1:uint64):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(uint64;uint64):void> const implicit | 
Iterates through each annotation in the given module in the order they were added.
- for_each_call_macro(module: Module? const implicit; block: block<(var arg0:string#):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(string#):void> const implicit | 
Iterates through every CallMacro adapter in the Module.
- for_each_reader_macro(module: Module? const implicit; block: block<(var arg0:string#):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(string#):void> const implicit | 
Iterates through each reader macro in the given Module.
- for_each_variant_macro(module: Module? const implicit; block: block<(var arg0:smart_ptr<VariantMacro>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(smart_ptr< ast::VariantMacro >):void> const implicit | 
Iterates through each variant macro in the given Module.
- for_each_for_loop_macro(module: Module? const implicit; block: block<(var arg0:smart_ptr<ForLoopMacro>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(smart_ptr< ast::ForLoopMacro >):void> const implicit | 
Iterates through each for loop macro in the given Module.
- for_each_typeinfo_macro(module: Module? const implicit; block: block<(var arg0:smart_ptr<TypeInfoMacro>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| block | block<(smart_ptr< ast::TypeInfoMacro >):void> const implicit | 
Iterates through each typeinfo macro in the given Module.
- for_each_field(annotation: BasicStructureAnnotation const implicit; block: block<(var arg0:string;var arg1:string;var arg2:smart_ptr<TypeDecl>;var arg3:uint):void> const implicit)
| argument | argument type | 
|---|---|
| annotation | rtti::BasicStructureAnnotation const implicit | 
| block | block<(string;string;smart_ptr< ast::TypeDecl >;uint):void> const implicit | 
Iterates through every field in the BuiltinStructure handled type.
- for_each_module_function(module: Module? const implicit; blk: block<(var arg0:smart_ptr<Function>):void> const implicit)
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| blk | block<(smart_ptr< ast::Function >):void> const implicit | 
Iterates through each function in the given module.
12.18. Cloning
clone_structure (structure:ast::Structure const? const implicit) : smart_ptr<ast::Structure>
clone_expression (expression:smart_ptr<ast::Expression> const implicit) : smart_ptr<ast::Expression>
clone_function (function:smart_ptr<ast::Function> const implicit) : smart_ptr<ast::Function>
clone_variable (variable:smart_ptr<ast::Variable> const implicit) : smart_ptr<ast::Variable>
clone_type (type:smart_ptr<ast::TypeDecl> const implicit) : smart_ptr<ast::TypeDecl>
clone_function (fn:ast::Function? const) : smart_ptr<ast::Function>
- clone_structure(structure: Structure const? const implicit)
clone_structure returns smart_ptr< ast::Structure >
| argument | argument type | 
|---|---|
| structure | ast::Structure const? const implicit | 
Returns clone of the Structure.
- clone_expression(expression: smart_ptr<Expression> const implicit)
clone_expression returns smart_ptr< ast::Expression >
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::Expression > const implicit | 
Clones Expression with subexpressions, including corresponding type.
- clone_function(function: smart_ptr<Function> const implicit)
clone_function returns smart_ptr< ast::Function >
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const implicit | 
Clones Function and everything in it.
- clone_variable(variable: smart_ptr<Variable> const implicit)
clone_variable returns smart_ptr< ast::Variable >
| argument | argument type | 
|---|---|
| variable | smart_ptr< ast::Variable > const implicit | 
Clones Variable and everything in it.
- clone_type(type: smart_ptr<TypeDecl> const implicit)
clone_type returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
Clones TypeDecl with subtypes.
- clone_file_info(name: string const implicit; tab_size: int const)
clone_file_info returns rtti::FileInfo ?
| argument | argument type | 
|---|---|
| name | string const implicit | 
| tab_size | int const | 
Clones FileInfo structure.
- clone_function(fn: Function? const)
clone_function returns FunctionPtr
| argument | argument type | 
|---|---|
| fn | ast::Function ? const | 
Clones Function and everything in it.
12.19. Mangled name
- parse_mangled_name(txt: string const implicit; lib: ModuleGroup implicit; thisModule: Module? const implicit)
parse_mangled_name returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| txt | string const implicit | 
| lib | rtti::ModuleGroup implicit | 
| thisModule | rtti::Module ? const implicit | 
Parses mangled name and creates corresponding TypeDecl.
- get_mangled_name(function: smart_ptr<Function> const implicit)
get_mangled_name returns string const
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const implicit | 
Returns mangled name of the object.
- get_mangled_name(type: smart_ptr<TypeDecl> const implicit)
get_mangled_name returns string const
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
Returns mangled name of the object.
- get_mangled_name(variable: smart_ptr<Variable> const implicit)
get_mangled_name returns string const
| argument | argument type | 
|---|---|
| variable | smart_ptr< ast::Variable > const implicit | 
Returns mangled name of the object.
- get_mangled_name(variable: smart_ptr<ExprBlock> const implicit)
get_mangled_name returns string const
| argument | argument type | 
|---|---|
| variable | smart_ptr< ast::ExprBlock > const implicit | 
Returns mangled name of the object.
- get_mangled_name(fn: Function? const)
get_mangled_name returns auto
| argument | argument type | 
|---|---|
| fn | ast::Function ? const | 
Returns mangled name of the object.
- get_mangled_name(decl: TypeDecl? const)
get_mangled_name returns auto
| argument | argument type | 
|---|---|
| decl | ast::TypeDecl ? const | 
Returns mangled name of the object.
- get_mangled_name(decl: Variable? const)
get_mangled_name returns auto
| argument | argument type | 
|---|---|
| decl | ast::Variable ? const | 
Returns mangled name of the object.
- get_mangled_name(decl: ExprBlock? const)
get_mangled_name returns auto
| argument | argument type | 
|---|---|
| decl | ast::ExprBlock ? const | 
Returns mangled name of the object.
12.20. Size and offset
- get_variant_field_offset(variant: smart_ptr<TypeDecl> const implicit; index: int const)
get_variant_field_offset returns int const
| argument | argument type | 
|---|---|
| variant | smart_ptr< ast::TypeDecl > const implicit | 
| index | int const | 
Returns offset of the variant field in bytes.
- get_tuple_field_offset(typle: smart_ptr<TypeDecl> const implicit; index: int const)
get_tuple_field_offset returns int const
| argument | argument type | 
|---|---|
| typle | smart_ptr< ast::TypeDecl > const implicit | 
| index | int const | 
Returns offset of the tuple field in bytes.
- any_array_size(array: void? const implicit)
any_array_size returns int const
| argument | argument type | 
|---|---|
| array | void? const implicit | 
Returns array size from pointer to array<> object.
- any_table_size(table: void? const implicit)
any_table_size returns int const
| argument | argument type | 
|---|---|
| table | void? const implicit | 
Returns table size from pointer to the table<> object.
- get_handled_type_field_offset(type: smart_ptr<TypeAnnotation> const implicit; field: string const implicit)
get_handled_type_field_offset returns uint const
| argument | argument type | 
|---|---|
| type | smart_ptr< rtti::TypeAnnotation > const implicit | 
| field | string const implicit | 
Returns offset of the field in the ManagedStructure handled type.
12.21. Evaluations
- eval_single_expression(expr: smart_ptr<Expression> const& implicit; ok: bool& implicit)
eval_single_expression returns float4 const
Warning
This is unsafe operation.
| argument | argument type | 
|---|---|
| expr | smart_ptr< ast::Expression > const& implicit | 
| ok | bool& implicit | 
Simulates and evaluates single expression on the separate context. If expression has external references, simulation will likely fail. Global variable access or function calls will produce exceptions.
12.22. Error reporting
- macro_error(porogram: smart_ptr<Program> const implicit; at: LineInfo const implicit; message: string const implicit)
| argument | argument type | 
|---|---|
| porogram | smart_ptr< rtti::Program > const implicit | 
| at | rtti::LineInfo const implicit | 
| message | string const implicit | 
Reports error to the currently compiling program to whatever current pass is. Usually called from inside the macro function.
12.23. Location and context
- force_at(expression: smart_ptr<Expression> const& implicit; at: LineInfo const implicit)
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::Expression > const& implicit | 
| at | rtti::LineInfo const implicit | 
Replaces line info in the expression, its subexpressions, and its types.
- force_at(function: smart_ptr<Function> const& implicit; at: LineInfo const implicit)
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const& implicit | 
| at | rtti::LineInfo const implicit | 
Replaces line info in the expression, its subexpressions, and its types.
- collect_dependencies(function: smart_ptr<Function> const implicit; block: block<(var arg0:array<Function?>;var arg1:array<Variable?>):void> const implicit)
| argument | argument type | 
|---|---|
| function | smart_ptr< ast::Function > const implicit | 
| block | block<(array< ast::Function ?>;array< ast::Variable ?>):void> const implicit | 
Collects dependencies of the given function (other functions it calls, global variables it accesses).
- get_ast_context(program: smart_ptr<Program> const implicit; expression: smart_ptr<Expression> const implicit; block: block<(var arg0:bool;var arg1:AstContext):void> const implicit)
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| expression | smart_ptr< ast::Expression > const implicit | 
| block | block<(bool; ast::AstContext ):void> const implicit | 
Returns AstContext for the given expression. It includes current function (if applicable), loops, blocks, scopes, and with sections.
12.24. Use queries
- get_use_global_variables(func: smart_ptr<Function> const implicit; block: block<(var arg0:smart_ptr<Variable>):void> const implicit)
| argument | argument type | 
|---|---|
| func | smart_ptr< ast::Function > const implicit | 
| block | block<(smart_ptr< ast::Variable >):void> const implicit | 
Provides invoked block with the list of all global variables, used by a function.
- get_use_functions(func: smart_ptr<Function> const implicit; block: block<(var arg0:smart_ptr<Function>):void> const implicit)
| argument | argument type | 
|---|---|
| func | smart_ptr< ast::Function > const implicit | 
| block | block<(smart_ptr< ast::Function >):void> const implicit | 
Provides invoked block with the list of all functions, used by a function.
12.25. Log
- to_compilation_log(text: string const implicit)
| argument | argument type | 
|---|---|
| text | string const implicit | 
Writes to compilation log from macro during compilation.
12.26. Removal
- remove_structure(module: Module? const implicit; structure: smart_ptr<Structure>& implicit)
remove_structure returns bool const
| argument | argument type | 
|---|---|
| module | rtti::Module ? const implicit | 
| structure | smart_ptr< ast::Structure >& implicit | 
Removes structure declaration from the specified module.
12.27. Properties
is_temp_type (type:smart_ptr<ast::TypeDecl> const implicit;refMatters:bool const) : bool const
is_expr_like_call (expression:smart_ptr<ast::Expression> const& implicit) : bool const
is_expr_const (expression:smart_ptr<ast::Expression> const& implicit) : bool const
get_function_aot_hash (fun:ast::Function const? const implicit) : uint64 const
- get_current_search_module(program: Program? const implicit; function: Function? const implicit; moduleName: string const implicit)
get_current_search_module returns rtti::Module ?
| argument | argument type | 
|---|---|
| program | rtti::Program ? const implicit | 
| function | ast::Function ? const implicit | 
| moduleName | string const implicit | 
Returns the module which is currently being searched for the function, given module name. Resolves “”, “_”, “*”, and “__” correctly.
- can_access_global_variable(variable: smart_ptr<Variable> const& implicit; module: Module? const implicit; thisModule: Module? const implicit)
can_access_global_variable returns bool const
| argument | argument type | 
|---|---|
| variable | smart_ptr< ast::Variable > const& implicit | 
| module | rtti::Module ? const implicit | 
| thisModule | rtti::Module ? const implicit | 
Returns true if global variable is accessible from the specified module.
- is_temp_type(type: smart_ptr<TypeDecl> const implicit; refMatters: bool const)
is_temp_type returns bool const
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
| refMatters | bool const | 
Returns true if type can be temporary.
- is_same_type(leftType: smart_ptr<TypeDecl> const implicit; rightType: smart_ptr<TypeDecl> const implicit; refMatters: RefMatters const; constMatters: ConstMatters const; tempMatters: TemporaryMatters const)
is_same_type returns bool const
| argument | argument type | 
|---|---|
| leftType | smart_ptr< ast::TypeDecl > const implicit | 
| rightType | smart_ptr< ast::TypeDecl > const implicit | 
| refMatters | rtti::RefMatters const | 
| constMatters | rtti::ConstMatters const | 
| tempMatters | rtti::TemporaryMatters const | 
Compares two types given comparison parameters and returns true if they match.
- get_underlying_value_type(type: smart_ptr<TypeDecl> const implicit)
get_underlying_value_type returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
Returns Daslang type which is aliased with ManagedValue handled type.
- get_handled_type_field_type(type: smart_ptr<TypeAnnotation> const implicit; field: string const implicit)
get_handled_type_field_type returns rtti::TypeInfo ?
| argument | argument type | 
|---|---|
| type | smart_ptr< rtti::TypeAnnotation > const implicit | 
| field | string const implicit | 
Returns type of the field in the ManagedStructure handled type.
- get_handled_type_field_type_declaration(type: smart_ptr<TypeAnnotation> const implicit; field: string const implicit; isConst: bool const)
get_handled_type_field_type_declaration returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| type | smart_ptr< rtti::TypeAnnotation > const implicit | 
| field | string const implicit | 
| isConst | bool const | 
Returns type declaration of the field in the ManagedStructure handled type.
- get_handled_type_index_type_declaration(type: TypeAnnotation? const implicit; src: Expression? const implicit; idx: Expression? const implicit)
get_handled_type_index_type_declaration returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| type | rtti::TypeAnnotation ? const implicit | 
| src | ast::Expression ? const implicit | 
| idx | ast::Expression ? const implicit | 
Returns type declaration of the index type in the handled type.
- get_vector_ptr_at_index(vec: void? const implicit; type: TypeDecl? const implicit; idx: int const)
get_vector_ptr_at_index returns void?
| argument | argument type | 
|---|---|
| vec | void? const implicit | 
| type | ast::TypeDecl ? const implicit | 
| idx | int const | 
Returns pointer to the vector element at the specified index, given pointer to the vector object and TypeDeclPtr.
- get_vector_length(vec: void? const implicit; type: smart_ptr<TypeDecl> const implicit)
get_vector_length returns int const
| argument | argument type | 
|---|---|
| vec | void? const implicit | 
| type | smart_ptr< ast::TypeDecl > const implicit | 
Returns length of the vector, given pointer to the vector object and TypeDeclPtr.
- has_field(type: smart_ptr<TypeDecl> const implicit; fieldName: string const implicit; constant: bool const)
has_field returns bool const
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
| fieldName | string const implicit | 
| constant | bool const | 
Returns if structure, variant, tuple, or handled type or pointer to either of those has specific field.
- get_field_type(type: smart_ptr<TypeDecl> const implicit; fieldName: string const implicit; constant: bool const)
get_field_type returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
| fieldName | string const implicit | 
| constant | bool const | 
Returns type of the field if structure, variant, tuple, or handled type or pointer to either of those has it. It’s null otherwise.
- is_visible_directly(from_module: Module? const implicit; which_module: Module? const implicit)
is_visible_directly returns bool const
| argument | argument type | 
|---|---|
| from_module | rtti::Module ? const implicit | 
| which_module | rtti::Module ? const implicit | 
Returns true if module is visible directly from the other module.
- is_expr_like_call(expression: smart_ptr<Expression> const& implicit)
is_expr_like_call returns bool const
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::Expression > const& implicit | 
Returns true if expression is or inherited from ExprLooksLikeCall
- is_expr_const(expression: smart_ptr<Expression> const& implicit)
is_expr_const returns bool const
| argument | argument type | 
|---|---|
| expression | smart_ptr< ast::Expression > const& implicit | 
Returns true if expression is or inherited from ExprConst
- get_function_aot_hash(fun: Function const? const implicit)
get_function_aot_hash returns uint64 const
| argument | argument type | 
|---|---|
| fun | ast::Function const? const implicit | 
Returns hash of the function for the AOT matching.
- get_function_hash_by_id(fun: Function? const implicit; id: int const; pctx: void? const implicit)
get_function_hash_by_id returns uint64 const
| argument | argument type | 
|---|---|
| fun | ast::Function ? const implicit | 
| id | int const | 
| pctx | void? const implicit | 
Returns hash of the function by its unique id.
- get_aot_arg_suffix(func: Function? const implicit; call: ExprCallFunc? const implicit; argIndex: int const)
get_aot_arg_suffix returns string const
| argument | argument type | 
|---|---|
| func | ast::Function ? const implicit | 
| call | ast::ExprCallFunc ? const implicit | 
| argIndex | int const | 
Returns AOT argument suffix for the specified function.
- get_aot_arg_prefix(func: Function? const implicit; call: ExprCallFunc? const implicit; argIndex: int const)
get_aot_arg_prefix returns string const
| argument | argument type | 
|---|---|
| func | ast::Function ? const implicit | 
| call | ast::ExprCallFunc ? const implicit | 
| argIndex | int const | 
Returns AOT argument prefix for the specified function.
- get_func_aot_prefix(ann: FunctionAnnotation? const implicit; stg: StringBuilderWriter? const implicit; call: ExprCallFunc? const implicit)
| argument | argument type | 
|---|---|
| ann | ast::FunctionAnnotation ? const implicit | 
| stg | strings::StringBuilderWriter ? const implicit | 
| call | ast::ExprCallFunc ? const implicit | 
Returns AOT function prefix for the specified function.
- get_struct_aot_prefix(ann: StructureAnnotation? const implicit; structure: Structure? const implicit; args: AnnotationArgumentList const implicit; stg: StringBuilderWriter? const implicit)
| argument | argument type | 
|---|---|
| ann | ast::StructureAnnotation ? const implicit | 
| structure | ast::Structure ? const implicit | 
| args | rtti::AnnotationArgumentList const implicit | 
| stg | strings::StringBuilderWriter ? const implicit | 
Returns AOT structure prefix for the specified structure.
- get_aot_name(func: Function? const implicit; call: ExprCallFunc? const implicit)
get_aot_name returns string const
| argument | argument type | 
|---|---|
| func | ast::Function ? const implicit | 
| call | ast::ExprCallFunc ? const implicit | 
Returns AOT name for the specified function.
- is_same_type(argType: smart_ptr<TypeDecl> const implicit; passType: smart_ptr<TypeDecl> const implicit; refMatters: bool const; constMatters: bool const; temporaryMatters: bool const; allowSubstitute: bool const)
is_same_type returns bool const
| argument | argument type | 
|---|---|
| argType | smart_ptr< ast::TypeDecl > const implicit | 
| passType | smart_ptr< ast::TypeDecl > const implicit | 
| refMatters | bool const | 
| constMatters | bool const | 
| temporaryMatters | bool const | 
| allowSubstitute | bool const | 
Compares two types given comparison parameters and returns true if they match.
12.28. Infer
- infer_generic_type(type: smart_ptr<TypeDecl> const implicit; passType: smart_ptr<TypeDecl> const implicit; topLevel: bool const; isPassType: bool const)
infer_generic_type returns smart_ptr< ast::TypeDecl >
| argument | argument type | 
|---|---|
| type | smart_ptr< ast::TypeDecl > const implicit | 
| passType | smart_ptr< ast::TypeDecl > const implicit | 
| topLevel | bool const | 
| isPassType | bool const | 
Infers generic type for the specified type and pass type.
- update_alias_map(program: smart_ptr<Program> const implicit; argType: smart_ptr<TypeDecl> const implicit; passType: smart_ptr<TypeDecl> const implicit)
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| argType | smart_ptr< ast::TypeDecl > const implicit | 
| passType | smart_ptr< ast::TypeDecl > const implicit | 
Updates alias map for the specified infer.
12.29. Uncategorized
- module_find_annotation(module: Module const? const implicit; name: string const implicit)
module_find_annotation returns smart_ptr< rtti::Annotation >
| argument | argument type | 
|---|---|
| module | rtti::Module const? const implicit | 
| name | string const implicit | 
Finds annotation of the specified type in the given module.
- module_find_type_annotation(module: Module const? const implicit; name: string const implicit)
module_find_type_annotation returns rtti::TypeAnnotation ?
| argument | argument type | 
|---|---|
| module | rtti::Module const? const implicit | 
| name | string const implicit | 
Finds type annotation of the specified type in the given module.
- not_inferred(function: Function? const implicit)
| argument | argument type | 
|---|---|
| function | ast::Function ? const implicit | 
Specifies that function has been modified via macro and should be inferred again.
- module_find_structure(program: Module const? const implicit; name: string const implicit)
module_find_structure returns ast::Structure ?
| argument | argument type | 
|---|---|
| program | rtti::Module const? const implicit | 
| name | string const implicit | 
Finds structure by name in the specified module.
- debug_helper_iter_structs(helper: smart_ptr<DebugInfoHelper> const implicit; blk: block<(arg0:string const;var arg1:StructInfo?):void> const implicit)
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| blk | block<(string const; rtti::StructInfo ?):void> const implicit | 
Iterates through all structures in the DebugInfoHelper, calling the provided block with each structure.
- debug_helper_iter_types(helper: smart_ptr<DebugInfoHelper> const implicit; blk: block<(arg0:string const;var arg1:TypeInfo?):void> const implicit)
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| blk | block<(string const; rtti::TypeInfo ?):void> const implicit | 
Iterates through all types in the DebugInfoHelper, calling the provided block with each type.
- debug_helper_iter_vars(helper: smart_ptr<DebugInfoHelper> const implicit; blk: block<(arg0:string const;var arg1:VarInfo?):void> const implicit)
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| blk | block<(string const; rtti::VarInfo ?):void> const implicit | 
Iterates through all variables in the DebugInfoHelper, calling the provided block with each variable.
- debug_helper_iter_funcs(helper: smart_ptr<DebugInfoHelper> const implicit; blk: block<(arg0:string const;var arg1:FuncInfo?):void> const implicit)
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| blk | block<(string const; rtti::FuncInfo ?):void> const implicit | 
Iterates through all functions in the DebugInfoHelper, calling the provided block with each function.
- debug_helper_iter_enums(helper: smart_ptr<DebugInfoHelper> const implicit; blk: block<(arg0:string const;var arg1:EnumInfo?):void> const implicit)
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const implicit | 
| blk | block<(string const; rtti::EnumInfo ?):void> const implicit | 
Iterates through all enumerations in the DebugInfoHelper, calling the provided block with each enumeration.
- debug_helper_find_type_cppname(helper: smart_ptr<DebugInfoHelper> const& implicit; type_info: TypeInfo? const implicit)
debug_helper_find_type_cppname returns string const
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const& implicit | 
| type_info | rtti::TypeInfo ? const implicit | 
Finds type in the DebugInfoHelper and returns it C++ name.
- debug_helper_find_struct_cppname(helper: smart_ptr<DebugInfoHelper> const& implicit; struct_info: StructInfo? const implicit)
debug_helper_find_struct_cppname returns string const
| argument | argument type | 
|---|---|
| helper | smart_ptr< rtti::DebugInfoHelper > const& implicit | 
| struct_info | rtti::StructInfo ? const implicit | 
Finds structure in the DebugInfoHelper and returns it C++ name.
- macro_aot_infix(macro: TypeInfoMacro? const implicit; ss: StringBuilderWriter? const implicit; expr: smart_ptr<Expression> const implicit)
macro_aot_infix returns bool const
| argument | argument type | 
|---|---|
| macro | ast::TypeInfoMacro ? const implicit | 
| ss | strings::StringBuilderWriter ? const implicit | 
| expr | smart_ptr< ast::Expression > const implicit | 
Returns true if macro requires AOT infix for the specified handled type.
- getInitSemanticHashWithDep(program: smart_ptr<Program> const implicit; init: uint64 const)
getInitSemanticHashWithDep returns uint64 const
| argument | argument type | 
|---|---|
| program | smart_ptr< rtti::Program > const implicit | 
| init | uint64 const | 
Returns initialization semantic hash including dependencies for the entire program.
- aot_require(mod: Module? const implicit; ss: StringBuilderWriter? const implicit)
aot_require returns bool const
| argument | argument type | 
|---|---|
| mod | rtti::Module ? const implicit | 
| ss | strings::StringBuilderWriter ? const implicit | 
Write data to the ‘require’ section of the AOT module.
- aot_type_ann_get_field_ptr(ann: TypeAnnotation? const implicit; ss: StringBuilderWriter? const implicit; name: string const implicit)
| argument | argument type | 
|---|---|
| ann | rtti::TypeAnnotation ? const implicit | 
| ss | strings::StringBuilderWriter ? const implicit | 
| name | string const implicit | 
Returns string with access symbol for the field (like -> for the pointer types, or . for the value types).
- aot_need_type_info(macro: TypeInfoMacro const? const implicit; expr: smart_ptr<Expression> const implicit)
aot_need_type_info returns bool const
| argument | argument type | 
|---|---|
| macro | ast::TypeInfoMacro const? const implicit | 
| expr | smart_ptr< ast::Expression > const implicit | 
Returns true if TypeInfo? is needed for the specified type in ‘typeinfo’ expression.
- write_aot_body(structure: StructureAnnotation? const implicit; st: smart_ptr<Structure> const implicit; args: AnnotationArgumentList const implicit; writer: StringBuilderWriter? const implicit)
| argument | argument type | 
|---|---|
| structure | ast::StructureAnnotation ? const implicit | 
| st | smart_ptr< ast::Structure > const implicit | 
| args | rtti::AnnotationArgumentList const implicit | 
| writer | strings::StringBuilderWriter ? const implicit | 
Writes AOT body for the specified StructureAnnotation.
- write_aot_suffix(structure: StructureAnnotation? const implicit; st: smart_ptr<Structure> const implicit; args: AnnotationArgumentList const implicit; writer: StringBuilderWriter? const implicit)
| argument | argument type | 
|---|---|
| structure | ast::StructureAnnotation ? const implicit | 
| st | smart_ptr< ast::Structure > const implicit | 
| args | rtti::AnnotationArgumentList const implicit | 
| writer | strings::StringBuilderWriter ? const implicit | 
Writes AOT suffix for the specified StructureAnnotation.
- write_aot_macro_suffix(macro: TypeInfoMacro? const implicit; ss: StringBuilderWriter? const implicit; expr: smart_ptr<Expression> const implicit)
| argument | argument type | 
|---|---|
| macro | ast::TypeInfoMacro ? const implicit | 
| ss | strings::StringBuilderWriter ? const implicit | 
| expr | smart_ptr< ast::Expression > const implicit | 
Writes AOT macro suffix for the specified TypeInfoMacro.
- write_aot_macro_prefix(macro: TypeInfoMacro? const implicit; ss: StringBuilderWriter? const implicit; expr: smart_ptr<Expression> const implicit)
| argument | argument type | 
|---|---|
| macro | ast::TypeInfoMacro ? const implicit | 
| ss | strings::StringBuilderWriter ? const implicit | 
| expr | smart_ptr< ast::Expression > const implicit | 
Writes AOT macro prefix for the specified TypeInfoMacro.
- aot_previsit_get_field_ptr(ann: TypeAnnotation? const implicit; ss: StringBuilderWriter? const implicit; name: string const implicit)
| argument | argument type | 
|---|---|
| ann | rtti::TypeAnnotation ? const implicit | 
| ss | strings::StringBuilderWriter ? const implicit | 
| name | string const implicit | 
Previsit for getting field pointer in AOT generation.
- aot_previsit_get_field(ann: TypeAnnotation? const implicit; ss: StringBuilderWriter? const implicit; name: string const implicit)
| argument | argument type | 
|---|---|
| ann | rtti::TypeAnnotation ? const implicit | 
| ss | strings::StringBuilderWriter ? const implicit | 
| name | string const implicit | 
Previsit for getting field in AOT generation.
- aot_visit_get_field(ann: TypeAnnotation? const implicit; ss: StringBuilderWriter? const implicit; name: string const implicit)
| argument | argument type | 
|---|---|
| ann | rtti::TypeAnnotation ? const implicit | 
| ss | strings::StringBuilderWriter ? const implicit | 
| name | string const implicit | 
Visit for getting field in AOT generation.
- string_builder_str(ss: StringBuilderWriter? const implicit)
string_builder_str returns string const
| argument | argument type | 
|---|---|
| ss | strings::StringBuilderWriter ? const implicit | 
Returns string from the StringBuilder expression, given pointer to the StringBuilder object.
- string_builder_clear(ss: StringBuilderWriter? const implicit)
| argument | argument type | 
|---|---|
| ss | strings::StringBuilderWriter ? const implicit | 
Clears the StringBuilder object, given pointer to the StringBuilder object.