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.