| Parser public API | LemonParser | Reads a Lemon grammar file into a tree that keeps everything the file says. |
| SyntaxException public API | LemonParser | Raised where Lemon would report an error in the grammar file. |
| CodeBlock public API | LemonParser\Ast | Host code written between braces, kept as written. |
| GrammarFile public API | LemonParser\Ast | A whole grammar file: rules and declarations in the order written. |
| Location public API | LemonParser\Ast | A position in a grammar file, counted from one. |
| RhsItem public API | LemonParser\Ast | One position on the right-hand side of a rule. |
| Rule public API | LemonParser\Ast | A rule: a nonterminal, ::=, the right-hand side, and a period. |
| Symbol public API | LemonParser\Ast | A grammar symbol named where it is written. |
| Destructor public API | LemonParser\Ast\Declaration | %destructor symbol { code }: code run when a value of the symbol is discarded. |
| Directive public API | LemonParser\Ast\Declaration | A keyword with one argument, such as %name, %include or %extra_argument. |
| Fallback public API | LemonParser\Ast\Declaration | %fallback FALLBACK TOKEN TOKEN... .: tokens the parser retries as the fallback when they cause an error. |
| PrecedenceDeclaration public API | LemonParser\Ast\Declaration | %left, %right or %nonassoc followed by terminals and a period. |
| TokenClass public API | LemonParser\Ast\Declaration | %token_class name TOKEN|TOKEN... .: a nonterminal name standing for any of several terminals. |
| TokenDeclaration public API | LemonParser\Ast\Declaration | %token TOKEN TOKEN... .: terminals named early to fix their numbering. |
| TypeDeclaration public API | LemonParser\Ast\Declaration | %type symbol { type }: the C type of a nonterminal's value. |
| Wildcard public API | LemonParser\Ast\Declaration | %wildcard TOKEN.: the terminal that matches any token the parser cannot otherwise use. |
| Condition @visibility root | LemonParser\Preprocessor | Evaluates the expression after %if, %ifdef or %ifndef. |
| Exclusion @visibility root | LemonParser\Preprocessor | How deep the preprocessor is inside an excluded region, and where the region began. |
| Preprocessor public API | LemonParser\Preprocessor | Settles %if, %ifdef, %ifndef, %else and %endif before the file is scanned. |
| DeclarationPrinter @visibility root | LemonParser\Printer | Writes declarations back as Lemon reads them. |
| Printer public API | LemonParser\Printer | Writes a tree back as a grammar file Lemon reads to the same tree. |
| RulePrinter @visibility root | LemonParser\Printer | Writes rules back as Lemon reads them. |
| CodeReader @visibility root | LemonParser\Scanner | Reads a { ... } block as Lemon's tokenizer does. |
| Cursor @visibility root | LemonParser\Scanner | A position in the text being scanned, with the line and column it is at. |
| Scanner @visibility root | LemonParser\Scanner | Splits a grammar file into tokens as Lemon's Parse does. |
| Token @visibility root | LemonParser\Scanner | One token of a grammar file. |
| DeclarationReader @visibility root | LemonParser\Syntax | Reads a declaration after its % sign, as Lemon's declaration states do. |
| GrammarReader @visibility root | LemonParser\Syntax | Reads a whole grammar file, as Lemon's WAITING_FOR_DECL_OR_RULE state does. |
| RuleReader @visibility root | LemonParser\Syntax | Reads a rule from its left-hand side to its period, as Lemon's rule states do. |
| SymbolListReader @visibility root | LemonParser\Syntax | Reads the lists of terminals that end with a period. |
| SymbolRegistry @visibility root | LemonParser\Syntax | Remembers what Lemon's symbol table would know while the file is read. |
| TokenStream @visibility root | LemonParser\Syntax | Tokens read one at a time, with one token of lookahead. |