Nonterminal symbols are names of grammar productions. If a nonterminal symbol is at the left-hand side of a production, the nonterminal symbol does name the production. If a nonterminal symbol is in the right-hand side of a production, the nonterminal symbol means expanding a nested production named by the nonterminal symbol.
Simple nonterminal symbols are unquoted strings that can consist of digits, English letters, and ‘_’ and must begin with an English letter or ‘_’.
Examples: START, C25, Function_A.
Simple nonterminal symbols that begin with ‘_’ are for internal use by QSMM tools.
On passing the option --viterbi to the adaptive bottom-up parser abu-parser, it supports simple and compound nonterminal symbols.
A compound nonterminal symbol consists of a simple nonterminal symbol and length concatenated by ‘/’:
NAME/LENGTH
Here LENGTH is the expected number of terminal symbols in a terminal symbol subsequence parsed by the compound nonterminal symbol.
Examples: START/2, START/10.
Note: bottom-up template grammar supports extended syntax for compound nonterminal symbols, where they can include a context name; see Compound Nonterminal Symbols, for more information.
A start nonterminal symbol is a nonterminal symbol at the left-hand side of a top-level production for consuming the entire parse unit or segment of a training terminal symbol sequence. If the first production in a grammar has a simple nonterminal symbol at the left-hand side, the simple nonterminal symbol is a single start nonterminal symbol in the grammar.
On passing the option --viterbi to abu-parser, the first production in a grammar must have a compound nonterminal symbol StartName/… at the left-hand side, and all compound nonterminal symbols StartName/… are start nonterminal symbols.
If ParseUnitLength is the number of terminal symbols in a training parse unit, the parser selects a compound nonterminal symbol StartName/ParseUnitLength as a start nonterminal symbol.