Defines types of node in a BNF tree (CBNFParser).
Except for ERoot, EIncomplete, EReference, and ELastParserNodeType, the types define different types of rule that the input stream must meet to satisfy the grammar.
Enumerator | Value | Description |
---|---|---|
ERoot |
Root node. | |
EIncomplete |
Incomplete node. | |
EExact |
Exact rule: match exactly with the provided string. | |
ERange |
Range rule: next character must be in the specified range. The start of the range is specified by a CBNFNode::KRangeStart() attribute; the end by a CBNFNode::KRangeEnd() attribute. | |
ESelect |
Select rule: next character must exist in the selected string. If the select string starts with ^, it is a NOT Select. | |
EAnd |
And rule: match all of the given sub-rules. Sub-rules are defined by the child nodes of the AND rule node. | |
EOr |
Or rule: match one of the given sub-rules. Sub-rules are defined by the child nodes of the OR rule node. | |
ENMore |
NMore rule: match a single subrule N or more times. A minimum is specified by a CBNFNode::KNMoreMinimum() attribute; a maximum by a CBNFNode::KNMoreMaximum() attribute; an exact figure by a CBNFNode::KNMoreCount() attribute. | |
EOptional |
Optional rule: match a single sub-rule 0/1 times. A sub-rule is defined by the child node of the Optional rule node. | |
EWithout |
Without rule: match the first sub-rule but not the second. Sub-rules are defined by the child nodes of the Without rule node. | |
EReference |
Reference rule: match the referred to rule. The target rule name is identified by a CBNFNode::KReference() attribute. | |
ELastParserNodeType |
Indicates final node type. |