hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Namespaces | Typedefs | Functions
lalr.C File Reference
#include <hobbes/parse/lalr.H>
#include <stdexcept>
Include dependency graph for lalr.C:

Classes

struct  hobbes::clos1< E, X0, R >
 
struct  hobbes::clos2< E, X0, X1, R >
 

Namespaces

 hobbes
 

Typedefs

typedef std::vector< terminals > hobbes::prefixes
 
typedef terminalset(* hobbes::ptsappend) (const terminalset &, const terminalset &)
 
typedef clos1< parserdef, transition, terminalset > hobbes::DRT
 
typedef clos2< parserdef, transition, transition, bool > hobbes::readsT
 
typedef clos1< transition_lookahead, transition, terminalset > hobbes::RT
 
typedef clos2< parserdef, transition, transition, bool > hobbes::includesT
 

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)
 
const rules * hobbes::aggRules (const grammar &g, terminal *t)
 
const rule & hobbes::nthRule (const rules *rs, nat n)
 
terminal * hobbes::ruleElement (const rule &r, nat i)
 
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)
 
void hobbes::show (std::ostream &out, const grammar &g, const item &i)
 
void hobbes::show (std::ostream &out, const grammar &g, const itemset &is)
 
bool hobbes::ruleItems (const grammar &g, terminal *t, itemset *is)
 
itemset hobbes::ruleItems (const grammar &g, terminal *t)
 
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)
 
void hobbes::closure (const grammar &g, itemset *is)
 
itemset hobbes::closure (const grammar &g, const itemset &is)
 
nat hobbes::parserState (const itemset &s, parserdef *p)
 
const itemset & hobbes::parserStateDef (const parserdef &p, nat n)
 
state_transitions hobbes::follow (const grammar &g, const itemset &is, const terminalset &vs, parserdef *p)
 
parserdef hobbes::lr0parser (const grammar &g, terminal *s)
 
transitionset hobbes::transitions (const parserdef &p)
 
const state_transitions & hobbes::transitions (const parserdef &p, nat q)
 
bool hobbes::follows (const state_transitions &st, terminal *t)
 
bool hobbes::follows (const parserdef &p, nat q, terminal *t)
 
nat hobbes::follow (const state_transitions &st, terminal *t)
 
nat hobbes::follow (const parserdef &p, nat q, terminal *t)
 
nat hobbes::follow (const parserdef &p, const transition &x)
 
nat hobbes::follow (const parserdef &p, nat s, const terminals &ts)
 
bool hobbes::lookback (const parserdef &p, nat q, terminal *r, const rule &w, const transition &t)
 
prefixes hobbes::endingAt (const parserdef &p, const rule &w, terminal *a)
 
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)
 
void hobbes::apply (const transition_lookahead &tl, parserdef *p)
 
parserdef hobbes::lalr1parser (const grammar &g, terminal *s)
 
terminal * hobbes::reduceOpTerminal (const parserdef &pd, const action &a)
 
bool hobbes::shiftInstead (const parserdef &pd, const precedence &px, nat shs, terminal *t, const action &a)
 
lrtable hobbes::lalrTable (const grammar &g, terminal *s, const precedence &p=precedence())
 
void hobbes::addAction (const parserdef &pd, lrstate &s, terminal *t, const action &a, const precedence &px)
 
void hobbes::addAccept (lrstate &s, terminal *t)
 
void hobbes::addReduce (const parserdef &pd, lrstate &s, const terminalset &ts, terminal *agg, nat rule, nat len, const precedence &px)
 
void hobbes::addGoto (lrstate &s, terminal *nt, nat next)
 
void hobbes::addShift (const parserdef &pd, lrstate &s, terminal *t, nat next, const precedence &px)
 
lrtable hobbes::lalrTable (const parserdef &pd, const precedence &p=precedence())
 
bool hobbes::referencesSym (const grammar &g, const item &i, terminal *t)
 
void hobbes::beginHighlight (std::ostream &out)
 
void hobbes::endHighlight (std::ostream &out)
 
void hobbes::showHLTerm (std::ostream &out, terminal *x, terminal *hx)
 
std::ostream & hobbes::operator<< (std::ostream &out, const action &act)
 
terminalset hobbes::definedSymbols (const lrtable &t)
 
terminals hobbes::dispOrd (const terminalset &ts)
 
void hobbes::show (std::ostream &, const lrtable &)