Empirical
Classes | Namespaces
Parser.h File Reference

A general-purpose, fast parser. More...

#include "../base/vector.h"
#include "BitVector.h"
#include "Lexer.h"

Go to the source code of this file.

Classes

struct  emp::ParseSymbol
 A single symbol in a grammer including the patterns that generate it. More...
 
struct  emp::ParseRule
 A rule for how parsing should work. More...
 
class  emp::Parser
 Full information about a parser, including a lexer, symbols, and rules. More...
 

Namespaces

 emp
 If we are in emscripten, make sure to include the header.
 

Detailed Description

A general-purpose, fast parser.

Note
This file is part of Empirical, https://github.com/devosoft/Empirical
Date
2016-2017
Note
Status: DEVELOPMENT
Todo:

Patterns should include functions that are called when that point of rule is triggered.

Make sure to warn if a symbol has no patterns associated with it.

Make sure to warn if a symbol has no path to terminals.

Make sure to warn if a symbol is never use in another pattern (and is not a start state)

Should we change Parser to a template that takes in the type for the lexer?