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.