production_rule[parser_type & tree, std::string & _rules] ::= { vertex_token rule_symbol = 0; std::string _result; arc_token current_link; parser_type::arc_label_type current_dollar_label; } (reference lws?)? ( symbol_declare[tree, rule_symbol] ( lws? code_block[_result] )? symbol_expression[tree, rule_symbol, rule_symbol, current_link, current_dollar_label] | symbol_append_union[tree, rule_symbol, current_link, current_dollar_label] ( lws? code_block[_result] )? append_symexp_union_list[tree, rule_symbol, current_link, current_dollar_label] | symbol_append_concat[tree, rule_symbol, current_link, current_dollar_label] ( lws? code_block[_result] )? additional_symexp_concat_list[tree, rule_symbol, current_link, current_dollar_label] ) { tree.add_pre_code(current_link, _result); tree.add_comment(rule_symbol, $0); if (_M_ParseMode == PreprocessMode) { _rules += $0; } } |