Go backward to Production Action.
Go up to The action side.
Grammar for Action Side
.......................
Below is a grammar for the action sides of productions:
<rhs> ::= <rhs_action>*
<rhs_action> ::= ( variable <attr_value_make>+ ) | <func_call>
<func_call> ::= ( <func_name> <rhs_value>* )
<func_name> ::= sym_constant | + | -
<rhs_value> ::= <constant> | <func_call> | variable
<constant> ::= sym_constant | int_constant | float_constant
<attr_value_make> ::= ^ <variable_or_sym_constant> <value_make>+
<variable_or_sym_constant> ::= variable | sym_constant
<value_make> ::= <rhs_value> <preference_specifier>*
<preference-specifier> ::= <unary-preference>
| <forced-unary-preference>
| <binary-preference> <rhs_value>
<unary-preference> ::= + | - | ! | ~ | @
<binary-preference> ::= > | = | < | &
<forced-unary-preference> ::= <binary-preference> {, | ) | ^}
;but the parser doesn't consume the ")" or "^" here