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

Classes

struct  hobbes::ParserEvalInfo
 

Namespaces

 hobbes
 

Functions

terminals hobbes::extractGrammarRule (const ParseRule::Bindings &bs)
 
grammar hobbes::extractGrammar (const Parser &p)
 
std::string hobbes::constructorName (terminal *t)
 
void hobbes::prepareEvalInfo (cc *c, const Parser &p, terminal *root, const precedence &prec, ParserEvalInfo *pei, const LexicalAnnotation &la)
 
ExprPtr hobbes::evalExpr (const ParserEvalInfo &pei, terminal *s, size_t rule)
 
MonoTypePtr hobbes::parseVariant (const ParserEvalInfo &pei)
 
MonoTypePtr hobbes::parseResultType (const ParserEvalInfo &pei)
 
ExprPtr hobbes::lengthOf (const ExprPtr &arr, const LexicalAnnotation &la)
 
ExprPtr hobbes::elementOf (const ExprPtr &arr, const ExprPtr &i, const LexicalAnnotation &la)
 
size_t hobbes::stateCount (const ParserEvalInfo &pei)
 
bool hobbes::isNonTerminal (const ParserEvalInfo &pei, terminal *t)
 
bool hobbes::needsOutputFunction (const ParserEvalInfo &pei, size_t i)
 
str::seq hobbes::varNames (size_t n)
 
size_t hobbes::parseDepth (const ParserEvalInfo &pei, size_t i)
 
str::seq hobbes::shiftVarNames (const ParserEvalInfo &pei, size_t fromS, size_t toS)
 
ExprPtr hobbes::parseFailure (const ParserEvalInfo &pei, size_t i)
 
ExprPtr hobbes::makeOutputParserState (const ParserEvalInfo &pei, size_t i)
 
ExprPtr hobbes::makeReduction (const ParserEvalInfo &pei, size_t i, terminal *sym, size_t rule)
 
ExprPtr hobbes::doAction (const ParserEvalInfo &pei, size_t i, const action &act)
 
ExprPtr hobbes::makeInputParserState (const ParserEvalInfo &pei, size_t i)
 
LetRec::Bindings hobbes::makeParserStates (const ParserEvalInfo &pei)
 
ExprPtr hobbes::makeParser (cc *, const Parser &, terminal *root, const precedence &prec, const LexicalAnnotation &)
 
ExprPtr hobbes::makeParser (cc *, const Parser &, const precedence &prec, const LexicalAnnotation &)
 
void hobbes::show (std::ostream &, const Parser &)