Scarlet Line home page Scarlet Line - SOFTWARE DESIGN & DEVELOPMENT

[Home]->[Documentation]->[Syntac Universal Parser]->[Other Grammars]->[Extended Backus-Naur form (EBNF)]->[Symbols]->[append_symexp_union_list]

Expand All
Collapse All
Contents

ebnf::append_symexp_union_list Locate in Contents

Declaration Locate in Contents

append_symexp_union_list[parser_type & tree, vertex_token rule_symbol, arc_token & current_link, parser_type::arc_label_type & current_dollar_label] ::=
    {
    current_link = tree.add_union_condition(current_link);
    tree.add_dollar_label_before(tree.arc_label(* current_link), current_dollar_label);
    current_dollar_label = tree.arc_label(* current_link);
    arc_token sub_link = current_link;
    parser_type::arc_label_type sub_dollar_label = current_dollar_label;
    vertex_token my_value = parser_type::arc_to(* current_link);
    }
        symexp_union_element[tree, rule_symbol, my_value, sub_link, sub_dollar_label] ( lws? '[|/]' symexp_union_element[tree, rule_symbol, my_value, sub_link, sub_dollar_label] )*

Composition Locate in Contents

production_rule append_symexp_union_list Concatenation Node symexp_union_element Iteration Node Concatenation Node Alternation Node '[/|]' symexp_union_element lws @

State Machine Locate in Contents

start:997:$0 symexp_union_element|{845|$1|846} final:998:$0 lws|{735|$5|736} symexp_union_element|{845|$7|846} lws|{735|$5|736} symexp_union_element|{845|$7|846}