Scarlet Line home page Scarlet Line - SOFTWARE DESIGN & DEVELOPMENT

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

Expand All
Collapse All
Contents

ebnf::additional_symexp_union_list Locate in Contents

Declaration Locate in Contents

additional_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);
    }
        ( lws? '[|/]' symexp_union_element[tree, rule_symbol, my_value, sub_link, sub_dollar_label] )+

Composition Locate in Contents

symbol_expression additional_symexp_union_list Concatenation Node Concatenation Node Iteration Node Alternation Node '[/|]' symexp_union_element Concatenation Node lws @ Alternation Node '[/|]' symexp_union_element lws @

State Machine Locate in Contents

start:991:$0 lws|{735|$3|736} final:992:$0 symexp_union_element|{845|$5|846} lws|{735|$3|736} symexp_union_element|{845|$5|846} lws|{735|$3|736} symexp_union_element|{845|$5|846}