$$ = $2;
}
| lterm_items
- {
- $$ = $1;
- }
;
lterm_items: /* empty */
identifier: T_IDENTIFIER
| T_STRING
- {
- $$ = $1;
- }
;
type: T_TYPE identifier
| T_TYPE_SCALAR
| T_TYPE_ANY
| T_TYPE_NAME
- {
- $$ = $1;
- }
;
object:
$$ = new std::vector<String>();
}
| identifier_items_inner
- {
- $$ = $1;
- }
| identifier_items_inner ','
- {
- $$ = $1;
- }
;
identifier_items_inner: identifier
| T_SET_XOR
| T_SET_BINARY_AND
| T_SET_BINARY_OR
- {
- $$ = $1;
- }
;
lterm: type
$$ = new ReturnExpression($2, DebugInfoRange(@1, @2));
}
| apply
- {
- $$ = $1;
- }
| object
- {
- $$ = $1;
- }
| T_FOR '(' identifier T_FOLLOWS identifier T_IN rterm ')' rterm_scope_require_side_effect
{
DictExpression *aexpr = dynamic_cast<DictExpression *>($9);
$$ = new SetExpression(expr, $3, $4, DebugInfoRange(@1, @4));
}
| rterm_side_effect
- {
- $$ = $1;
- }
;
rterm_items: /* empty */
$$ = new std::vector<Expression *>();
}
| rterm_items_inner
- {
- $$ = $1;
- }
| rterm_items_inner ','
- {
- $$ = $1;
- }
| rterm_items_inner ',' newlines
- {
- $$ = $1;
- }
| rterm_items_inner newlines
- {
- $$ = $1;
- }
;
rterm_items_inner: rterm
$$ = MakeLiteral();
}
| rterm
- {
- $$ = $1;
- }
;
apply: