hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Namespaces | Typedefs | Functions
lalr.H File Reference
#include <hobbes/parse/terminal.H>
#include <hobbes/parse/data.H>
#include <map>
#include <set>
#include <stack>
Include dependency graph for lalr.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hobbes::item
 
struct  hobbes::parserdef
 
class  hobbes::digraphF< X, Y, Fp, A, R >
 
class  hobbes::ambiguity_conflict
 
class  hobbes::compile_table_failure
 
class  hobbes::action
 

Namespaces

 hobbes
 

Typedefs

typedef terminals hobbes::rule
 
typedef std::vector< rule > hobbes::rules
 
typedef std::map< terminal *, rules > hobbes::grammar
 
typedef std::set< item > hobbes::itemset
 
typedef std::vector< itemset > hobbes::itemsets
 
typedef std::map< terminal *, nat > hobbes::state_transitions
 
typedef std::map< itemset, nat > hobbes::parser_states
 
typedef std::map< nat, itemset > hobbes::state_definitions
 
typedef std::map< nat, state_transitions > hobbes::parser_state_transitions
 
typedef std::pair< nat, terminal * > hobbes::transition
 
typedef std::set< transition > hobbes::transitionset
 
typedef std::map< transition, terminalset > hobbes::transition_lookahead
 
typedef std::map< terminal *, action > hobbes::lrstate
 
typedef std::vector< lrstate > hobbes::lrtable
 

Functions

void hobbes::removeRuleDefs (terminal *s, grammar *g)
 
void hobbes::removeRuleRefs (terminal *s, grammar *g)
 
void hobbes::undefineSymbol (terminal *s, grammar *g)
 
grammar hobbes::removeRuleDefs (terminal *s, const grammar &g)
 
grammar hobbes::removeRuleRefs (terminal *s, const grammar &g)
 
grammar hobbes::undefineSymbol (terminal *s, const grammar &g)
 
terminalset hobbes::definedSymbols (const grammar &g)
 
terminalset hobbes::topLevelSymbols (const grammar &g)
 
void hobbes::symbolsUsed (const grammar &g, const rule &r, terminalset *ss)
 
void hobbes::symbolsUsed (const grammar &g, const rules &rs, terminalset *ss)
 
void hobbes::symbolsUsed (const grammar &g, terminal *s, terminalset *ss)
 
terminalset hobbes::symbolsUsed (const grammar &g, terminal *s)
 
terminalset hobbes::symbolsUsing (const grammar &g, terminal *s)
 
bool hobbes::hasRule (const grammar &g, terminal *t)
 
bool hobbes::directlyDerivesNull (const rule &r)
 
bool hobbes::directlyDerivesNull (const grammar &g, terminal *s)
 
bool hobbes::derivesNull (const terminalset &nullAggs, const rule &r)
 
bool hobbes::derivesNull (const grammar &g, const terminalset &nullAggs, terminal *s)
 
bool hobbes::derivesNull (const grammar &g, const terminalset &nullAggs, const terminals &ss)
 
bool hobbes::derivesNull (const parserdef &p, terminal *s)
 
terminalset hobbes::symbolsDerivingNull (const grammar &g)
 
item hobbes::succ (const item &i)
 
terminal * hobbes::next (const grammar &g, const item &i)
 
terminalset hobbes::next (const grammar &g, const itemset &is)
 
terminalset hobbes::nextPrim (const grammar &g, const itemset &is)
 
itemset hobbes::follow (const grammar &g, const itemset &is, terminal *v)
 
itemsets hobbes::follow (const grammar &g, const itemset &is, const terminals &vs)
 
itemset hobbes::closure (const grammar &g, const itemset &is)
 
void hobbes::closure (const grammar &g, itemset *is)
 
nat hobbes::parserState (const itemset &s, parserdef *p)
 
state_transitions hobbes::follow (const grammar &g, const itemset &is, const terminalset &vs, parserdef *p)
 
parserdef hobbes::lr0parser (const grammar &g, terminal *s)
 
nat hobbes::follow (const parserdef &p, nat q, terminal *t)
 
transitionset hobbes::transitions (const parserdef &p)
 
bool hobbes::lookback (const parserdef &p, nat q, terminal *r, const rule &w, const transition &t)
 
bool hobbes::includes (const parserdef &p, const transition &x, const transition &y)
 
bool hobbes::reads (const parserdef &p, const transition &x, const transition &y)
 
terminalset hobbes::directReads (const parserdef &p, const transition &x)
 
transition_lookahead hobbes::Reads (const parserdef &p, const transitionset &ts)
 
transition_lookahead hobbes::Follow (const parserdef &p, const transitionset &ts)
 
parserdef hobbes::lalr1parser (const grammar &g, terminal *s)
 
std::ostream & hobbes::operator<< (std::ostream &out, const action &act)
 
lrtable hobbes::lalrTable (const parserdef &pd, const precedence &p=precedence())
 
lrtable hobbes::lalrTable (const grammar &g, terminal *s, const precedence &p=precedence())
 
void hobbes::show (std::ostream &, const lrtable &)