Namespace: |
|
Type: |
|
Content: |
complex, 7+any attributes, 1 element |
Defined: |
globally within component.xsd, see XML source |
Used: |
at 4 locations |
XML Representation Summary |
|||||
<expandMacro |
|||||
dontPassArguments | = |
list of xsd:string |
|||
forms | = |
list of xsd:string |
|||
help | = |
xsd:string |
|||
ifEvents | = |
list of xsd:string |
|||
ifExpr | = |
xsd:string |
|||
name | = |
xsd:string |
|||
passArguments | = |
list of xsd:string |
|||
{any attribute with any namespace} |
|||||
> |
|||||
|
|||||
</expandMacro> |
Type Derivation Summary![]() |
<xsd:element name="expandMacro"> <xsd:annotation> <xsd:documentation> <p> Added post 1.1. Expands a given macro into the sourceGen of the caller. This has the same effect as inserting the same templates and inlines from the macro's definition at the point of call. Variable references from those templates and inlines are substituted with the values provided in attributes (e.g. variableName="value") or expandArgument child elements. The latter may be preferred for cases where code is substituted, so the formatting may be retained. </p> <p> As a special case, variable references may have modifiers to modify the formatting of a variable when it is expanded. Modifiers are appended to the variable name as in: $(varName::modifier). </p> <p> Currently supported modifiers are all for tweaking canonical function argument lists, which match the format of declaration, with spaces, argument names, default values, etc: </p> <ul> <li>as-function-declaration-args: identity</li> <li> as-function-definition-args: removes default argument values </li> <li> as-function-location-args: removes argument names, default arguments, and spaces </li> </ul> </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:complexContent> <xsd:sequence> </xsd:sequence> <xsd:annotation> <xsd:documentation> The macro to invoke (matching the id from defineMacro). </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:annotation> <xsd:documentation> A list of arguments defined in the current calling macro to pass unchanged to the called macro, excluding any arguments that are not defined in the current call. This attribute is only valid in expandMacro called from a defineMacro. Passing arguments is different from adding attributes argName="$(argName)" because it avoids defining otherwise undefined arguments. (A missing optional argument is null, not the empty string. The '::is-defined' modifier can be used to check this.) Elements in the list of strings are names of arguments, or renames of the form targetArgumentName=hostArgumentName which passes hostArgumentName from the hosting macro with the name targetArgumentName (again, only if the argument is actually defined in the call). If this argument is not specified, all the arguments in the invoked macro are passed (zero or more may have defaults which are overridden in this macro). </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:annotation> <xsd:documentation> This is primarily used when passArguments is not specified. It specifies which arguments not to pass to the invoked macro, which become undefined in the expansion of that macro. This is useful when this macro takes over the work of one or more arguments from the invoked macro. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:annotation> <xsd:documentation> Help/usage text for a documentation generating tool. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:anyAttribute processContents="lax"> <xsd:annotation> <xsd:documentation> Any attribute matching the variables used in the given named macro may appear here. </xsd:documentation> </xsd:annotation> </xsd:anyAttribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:element> |
Type: |
|
Use: |
optional |
Defined: |
locally, within this element |
<xsd:attribute name="dontPassArguments" type="listOfStrings" use="optional"> <xsd:annotation> <xsd:documentation> This is primarily used when passArguments is not specified. It specifies which arguments not to pass to the invoked macro, which become undefined in the expansion of that macro. This is useful when this macro takes over the work of one or more arguments from the invoked macro. </xsd:documentation> </xsd:annotation> </xsd:attribute> |
Type: |
|
Use: |
optional |
Defined: |
Type: |
xsd:string |
Use: |
optional |
Defined: |
locally, within this element |
<xsd:attribute name="help" type="xsd:string" use="optional"> <xsd:annotation> <xsd:documentation> Help/usage text for a documentation generating tool. </xsd:documentation> </xsd:annotation> </xsd:attribute> |
Type: |
|
Use: |
optional |
Defined: |
Type: |
xsd:string |
Use: |
optional |
Defined: |
Type: |
xsd:string |
Use: |
required |
Defined: |
locally, within this element |
<xsd:attribute name="name" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> The macro to invoke (matching the id from defineMacro). </xsd:documentation> </xsd:annotation> </xsd:attribute> |
Type: |
|
Use: |
optional |
Defined: |
locally, within this element |
<xsd:attribute name="passArguments" type="listOfStrings" use="optional"> <xsd:annotation> <xsd:documentation> A list of arguments defined in the current calling macro to pass unchanged to the called macro, excluding any arguments that are not defined in the current call. This attribute is only valid in expandMacro called from a defineMacro. Passing arguments is different from adding attributes argName="$(argName)" because it avoids defining otherwise undefined arguments. (A missing optional argument is null, not the empty string. The '::is-defined' modifier can be used to check this.) Elements in the list of strings are names of arguments, or renames of the form targetArgumentName=hostArgumentName which passes hostArgumentName from the hosting macro with the name targetArgumentName (again, only if the argument is actually defined in the call). If this argument is not specified, all the arguments in the invoked macro are passed (zero or more may have defaults which are overridden in this macro). </xsd:documentation> </xsd:annotation> </xsd:attribute> |
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="expandArgument"/> |