cbnfparser.h File Reference

Enum TParserNodeTypes

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.

EnumeratorValueDescription
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.

Enum TParseState

CBNFParser parser states.

EnumeratorValueDescription
EStopped

Parser has stopped.

EActive

Rarser is running.

EPaused

Parser has paused: e.g. waiting for further input to continue.