blob: a79788fb3a001a67cbcb53e67974da3878cff6b5 [file] [log] [blame]
gatedAction(block) ::= <<
<if(backtracking)>
if <actions.(actionScope).synpredgate>
<block>
end
<else>
<block>
<endif>
>>
@ruleBody.setErrorReturnValue() ::= <<
return_value.tree = @adaptor.create_error_node( @input, return_value.start, @input.look(-1), re )<\n>
>>
tokenRef(token,label,elementIndex,terminalOptions) ::= <<
<super.tokenRef(...)>
<gatedAction({
tree_for_<label> = <createNodeFromToken(...)>
@adaptor.add_child( root_0, tree_for_<label> )
})>
>>
tokenRefBang(token,label,elementIndex,terminalOptions) ::= "<super.tokenRef(...)>"
tokenRefRuleRoot(token,label,elementIndex,terminalOptions) ::= <<
<super.tokenRef(...)>
<gatedAction({
tree_for_<label> = <createNodeFromToken(...)>
root_0 = @adaptor.become_root( tree_for_<label>, root_0 )
})>
>>
tokenRefBangAndListLabel(token,label,elementIndex,terminalOptions) ::= <<
<tokenRefBang(...)>
<addToList(elem={<label; format="label">},...)>
>>
tokenRefAndListLabel(token,label,elementIndex,terminalOptions) ::= <<
<tokenRef(...)>
<addToList(elem={<label; format="label">},...)>
>>
tokenRefRuleRootAndListLabel(token,label,terminalOptions,elementIndex) ::= <<
<tokenRefRuleRoot(...)>
<addToList(elem={<label; format="label">},...)>
>>
matchSet(s,label,terminalOptions,elementIndex,postmatchCode) ::= <<
<super.matchSet(postmatchCode={<gatedAction({@adaptor.add_child( root_0, <createNodeFromToken(...)> )})>}, ...)>
>>
matchRuleBlockSet(s,label,terminalOptions,elementIndex,postmatchCode,treeLevel="0") ::= <<
<matchSet(...)>
>>
matchSetBang(s,label,elementIndex,postmatchCode) ::= "<super.matchSet(...)>"
matchSetRuleRoot(s,label,terminalOptions,elementIndex,debug) ::= <<
<if(label)>
<label; format="label"> = @input.look<\n>
<endif>
<super.matchSet(postmatchCode={<gatedAction({root_0 = @adaptor.become_root( <createNodeFromToken(...)>, root_0 )})>}, ...)>
>>
matchSetRuleRootAndListLabel(s,label,terminalOptions,elementIndex,debug) ::= <<
<matchSetRuleRoot(...)>
<addToList(elem={<label; format="label">},...)>
>>
ruleRef(rule,label,elementIndex,args,scope) ::= <<
<super.ruleRef(...)>
<gatedAction({@adaptor.add_child( root_0, <label; format="label">.tree )})>
>>
ruleRefBang(rule,label,elementIndex,args,scope) ::= "<super.ruleRef(...)>"
ruleRefRuleRoot(rule,label,elementIndex,args,scope) ::= <<
<super.ruleRef(...)>
<gatedAction({root_0 = @adaptor.become_root( <label; format="label">.tree, root_0 )})>
>>
ruleRefAndListLabel(rule,label,elementIndex,args,scope) ::= <<
<ruleRef(...)>
<addToList(elem={<label; format="label">.tree},...)>
>>
ruleRefBangAndListLabel(rule,label,elementIndex,args,scope) ::= <<
<ruleRefBang(...)>
<addToList(elem={<label; format="label">.tree},...)>
>>
ruleRefRuleRootAndListLabel(rule,label,elementIndex,args,scope) ::= <<
<ruleRefRuleRoot(...)>
<addToList(elem={<label; format="label">.tree},...)>
>>
wildcard(token,label,elementIndex,terminalOptions) ::= <<
<super.wildcard(...)>
<gatedAction({
tree_for_<label> = @adaptor.create_with_payload( <label; format="label"> )
@adaptor.add_child( root_0, tree_for_<label> )
})>
>>
wildcardBang(token,label,elementIndex,terminalOptions) ::= "<super.wildcard(...)>"
wildcardRuleRoot(token,label,elementIndex,terminalOptions) ::= <<
<super.wildcard(...)>
<gatedAction({
tree_for_<label> = @adaptor.create_with_payload( <label; format="label"> )
root_0 = @adaptor.become_root( tree_for_<label>, root_0 )
})>
>>
createNodeFromToken(label,terminalOptions) ::= <<
<if(terminalOptions.node)>
<terminalOptions.node; format="constantPath">.new( <label; format="label"> )
<else>
@adaptor.create_with_payload( <label; format="label"> )
<endif>
>>
ruleCleanUp() ::= <<
<super.ruleCleanUp()>
<gatedAction({
return_value.tree = @adaptor.rule_post_processing( root_0 )
@adaptor.set_token_boundaries( return_value.tree, return_value.start, return_value.stop )
})>
>>