Scarlet Line home page Scarlet Line - SOFTWARE DESIGN & DEVELOPMENT

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

Expand All
Collapse All
Contents

ebnf::label Locate in Contents

Declaration Locate in Contents

label[std::string & __name] ::=
        '[a-zA-Z_]' '([\:\-][a-zA-Z_0-9]|[a-zA-Z_0-9])*' '/[^a-zA-Z_0-9]'
            {
            assign(__name, $0);
            for (std::string::size_type pos = __name.find_first_of("-:");/* pos != std::string::npos; pos = __name.find_first_of(*/"-:", pos + 1))
                __name.replace(pos, 1, "_");
            }
    |    "<" '[ \t]*' label_name_first[__name] label_name_rest[__name]* '[ \t]*' ">"
    |    "<<" '[ \t]*' label_name_first[__name] label_name_rest[__name]* '[ \t]*' ">>"

Composition Locate in Contents

body_declaration label Alternation Node symbol_declare symbol_append_union symbol_append_concat symbol entrypoint labeldef Concatenation Node Concatenation Node Concatenation Node '[A-Z_a-z]' Iteration Node Unconsumed Tail Node '<' Iteration Node label_name_first Iteration Node Iteration Node '>' Concatenation Node Iteration Node label_name_first Iteration Node Iteration Node Concatenation Node Alternation Node '[^\\z0-9A-Z_a-z]' '[\\t ]' label_name_rest '[\\t ]' '<' '<' '[\\t ]' label_name_rest '[\\t ]' '>' '>' Concatenation Node '[0-9A-Z_a-z]' '[\\-:]' '[0-9A-Z_a-z]'

State Machine Locate in Contents

start:818:$0 final:819:$0 label_name_first|{824|$7|825} label_name_first|{824|$15|825} label_name_rest|{827|$9|828} label_name_rest|{827|$17|828} label_name_rest|{827|$9|828} label_name_rest|{827|$17|828}