diff --git a/CoreParse/Grammar/CPGrammar.h b/CoreParse/Grammar/CPGrammar.h index dd2210d..1ac7415 100644 --- a/CoreParse/Grammar/CPGrammar.h +++ b/CoreParse/Grammar/CPGrammar.h @@ -92,39 +92,29 @@ typedef enum * The grammar used for parsing the BNF can be expressed as follows: * *
- * 0 ruleset ::= <ruleset> <rule>; - * 1 ruleset ::= <rule>; - * - * 2 rule ::= "Number" <unNumbered>; - * 3 rule ::= <unNumbered>; - * - * 4 unNumbered ::= "Identifier" "::=" <rightHandSide> ";"; - * - * 5 rightHandSide ::= <rightHandSide> "|" <sumset>; - * 6 rightHandSide ::= <rightHandSide> "|"; - * 7 rightHandSide ::= <sumset>; - * - * 8 sumset ::= <sumset> <taggedRightHandSideItem>; - * 9 sumset ::= <taggedRightHandSideItem>; - * - * 10 taggedRightHandSideItem ::= <rightHandSideItem>; - * 11 taggedRightHandSideItem ::= "Identifier" "@" <rightHandSideItem>; - * - * 12 rightHandSideItem ::= <unit>; - * 13 rightHandSideItem ::= <unit> <repeatSymbol>; - * - * 14 unit ::= <gramarSymbol>; - * 15 unit ::= "(" <rightHandSide> ")"; - * - * 16 repeatSymbol ::= "*"; - * 17 repeatSymbol ::= "+"; - * 18 repeatSymbol ::= "?"; - * - * 19 grammarSymbol ::= <nonTerminal>; - * 20 grammarSymbol ::= <terminal>; - * - * 21 nonTerminal ::= "<" "Identifier" ">"; - * 22 terminal ::= "String"; + * ruleset ::= <rule>+; + * + * rule ::= "Number"? <unNumbered>; + * + * unNumbered ::= "Identifier" "::=" <rightHandSide> ";"; + * + * rightHandSide ::= (<sumset> "|")* <sumset>?; + * + * sumset ::= <taggedRightHandSideItem>+; + * + * taggedRightHandSideItem ::= ("Identifier" "@")? <rightHandSideItem>; + * + * rightHandSideItem ::= <unit> <repeatSymbol>?; + * + * unit ::= <gramarSymbol> | "(" <rightHandSide> ")"; + * + * repeatSymbol ::= "*" | "+" | "?"; + * + * grammarSymbol ::= <nonTerminal> | <terminal>; + * + * nonTerminal ::= "<" "Identifier" ">"; + * + * terminal ::= "String"; ** * @param start The non-terminal that all parses must reduce to. @@ -149,39 +139,29 @@ typedef enum * The grammar used for parsing the BNF can be expressed as follows: * *
- * 0 ruleset ::= <ruleset> <rule>; - * 1 ruleset ::= <rule>; + * ruleset ::= <rule>+; + * + * rule ::= "Number"? <unNumbered>; * - * 2 rule ::= "Number" <unNumbered>; - * 3 rule ::= <unNumbered>; + * unNumbered ::= "Identifier" "::=" <rightHandSide> ";"; * - * 4 unNumbered ::= "Identifier" "::=" <rightHandSide> ";"; + * rightHandSide ::= (<sumset> "|")* <sumset>?; * - * 5 rightHandSide ::= <rightHandSide> "|" <sumset>; - * 6 rightHandSide ::= <rightHandSide> "|"; - * 7 rightHandSide ::= <sumset>; + * sumset ::= <taggedRightHandSideItem>+; * - * 8 sumset ::= <sumset> <taggedRightHandSideItem>; - * 9 sumset ::= <taggedRightHandSideItem>; + * taggedRightHandSideItem ::= ("Identifier" "@")? <rightHandSideItem>; * - * 10 taggedRightHandSideItem ::= <rightHandSideItem>; - * 11 taggedRightHandSideItem ::= "Identifier" "@" <rightHandSideItem>; + * rightHandSideItem ::= <unit> <repeatSymbol>?; * - * 12 rightHandSideItem ::= <unit>; - * 13 rightHandSideItem ::= <unit> <repeatSymbol>; + * unit ::= <gramarSymbol> | "(" <rightHandSide> ")"; * - * 14 unit ::= <gramarSymbol>; - * 15 unit ::= "(" <rightHandSide> ")"; + * repeatSymbol ::= "*" | "+" | "?"; * - * 16 repeatSymbol ::= "*"; - * 17 repeatSymbol ::= "+"; - * 18 repeatSymbol ::= "?"; + * grammarSymbol ::= <nonTerminal> | <terminal>; * - * 19 grammarSymbol ::= <nonTerminal>; - * 20 grammarSymbol ::= <terminal>; + * nonTerminal ::= "<" "Identifier" ">"; * - * 21 nonTerminal ::= "<" "Identifier" ">"; - * 22 terminal ::= "String"; + * terminal ::= "String"; ** * @param start The non-terminal that all parses must reduce to.