Scarlet Line home page Scarlet Line - SOFTWARE DESIGN & DEVELOPMENT

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

Expand All
Collapse All
Contents

ebnf::symbol Locate in Contents

Declaration Locate in Contents

symbol[parser_type & tree, vertex_token parent_value, arc_token & current_link, parser_type::arc_label_type & current_dollar_label] ::=
    {    std::string _symbol_name;/* }*/
        label[_symbol_name] ( "[" param_list "]" )?
            {
            current_link = tree.insert_symbol(parent_value, _symbol_name.c_str(), $line);
            current_dollar_label = tree.arc_label(* current_link);
            if (_M_verbose > 1)
                {
                std::cerr << "\tUsing Symbol " << tree.arc_to(* current_link) << ":" << _symbol_name << std::endl;
                }
            tree.add_dollar_label(current_dollar_label);
            tree.add_symbol_param_list(tree.arc_label(* current_link), $5);
            }

Composition Locate in Contents

symexp_element symbol Concatenation Node label Alternation Node Concatenation Node @ '[' param_list<std::string> '\\]'

State Machine Locate in Contents

start:853:$0 label|{818|$1|819} final:854:$0 param_list<std::string>|{834|$5|835}