33. Boost package for the miscelanious macro manipulations¶
Apply module implements miscellaneous infrastructure which simplifies writing of macros.
All functions and symbols are in “macro_boost” module, use require to get access to it.
require daslib/macro_boost
-
CapturedVariable
¶
CapturedVariable fields are
variable |
|
expression |
|
eref |
bool |
Stored captured variable together with the ExprVar which uses it
33.1. Function annotations¶
-
MacroVerifyMacro
¶
- This macro convert macro_verify(expr,message,prog,at) to the following code::
- if !expr
macro_error(prog,at,message) return [[ExpressionPtr]]
33.2. Call macros¶
-
return_skip_lockcheck
¶
this is similar to regular return <-, but it does not check for locks
33.3. Implementation details¶
-
macro_verify
(expr: bool const; prog: ProgramPtr; at: LineInfo const; message: string const)¶
argument |
argument type |
---|---|
expr |
bool const |
prog |
|
at |
rtti::LineInfo const |
message |
string const |
Same as verify, only the check will produce macro error, followed by return [[ExpressionPtr]]
33.4. Uncategorized¶
-
capture_block
(expr: ExpressionPtr)¶
capture_block returns array< macro_boost::CapturedVariable >
argument |
argument type |
---|---|
expr |
|
Collect all captured variables in the expression.
-
collect_finally
(expr: ExpressionPtr; alwaysFor: bool const)¶
collect_finally returns array< ast::ExprBlock ?>
argument |
argument type |
---|---|
expr |
|
alwaysFor |
bool const |
Collect all finally blocks in the expression. Returns array of ExprBlock? with all the blocks which have finally section Does not go into ‘make_block’ expression, such as lambda, or ‘block’ expressions
-
collect_labels
(expr: ExpressionPtr)¶
collect_labels returns array<int>
argument |
argument type |
---|---|
expr |
|
Collect all labels in the expression. Returns array of integer with label indices Does not go into ‘make_block’ expression, such as lambda, or ‘block’ expressions