hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
|
#include <hobbes/lang/module.H>
#include <hobbes/lang/expr.H>
#include <hobbes/lang/pat/pattern.H>
#include <hobbes/parse/grammar.H>
#include <hobbes/read/pgen/hexpr.parse.H>
#include <hobbes/read/parser.H>
#include <hobbes/util/autorelease.H>
#include <mutex>
#include <string>
#include <stdexcept>
#include <stack>
#include <iostream>
#include <fstream>
#include <stdio.h>
Classes | |
struct | parse_mutex_lock |
Namespaces | |
hobbes | |
Macros | |
#define | LOCK_PARSER parse_mutex_lock parse_lock |
#define | YY_BUF_SIZE 16384 |
Typedefs | |
typedef yy_buffer_state * | YY_BUFFER_STATE |
Functions | |
int | yyparse () |
YY_BUFFER_STATE | yy_scan_string (const char *) |
YY_BUFFER_STATE | yy_create_buffer (FILE *, int) |
void | yy_switch_to_buffer (YY_BUFFER_STATE) |
void | yy_delete_buffer (YY_BUFFER_STATE) |
void | hobbes::throwFileError (const std::string &fname, const YYLTYPE &errPos, const std::string &emsg) |
void | hobbes::throwBufferError (const char *buffer, const YYLTYPE &errPos, const std::string &emsg) |
void | hobbes::freeParserData () |
template<typename T > | |
const T & | hobbes::checkReturn (const T &x) |
void | hobbes::runParserOnBuffer (cc *c, int initTok, YY_BUFFER_STATE bs) |
void | hobbes::runParserOnFile (cc *c, int initTok, const std::string &fname) |
void | hobbes::runParserOnString (cc *c, int initTok, const char *s) |
ModulePtr | hobbes::defReadModuleFile (cc *, const std::string &) |
ModulePtr | hobbes::defReadModule (cc *, const char *) |
ModulePtr | hobbes::defReadModule (cc *, const std::string &) |
ExprDefn | hobbes::defReadExprDefn (cc *, const std::string &) |
ExprPtr | hobbes::defReadExpr (cc *, const std::string &) |
Expr * | hobbes::defVarCtor (const std::string &, const LexicalAnnotation &) |
void | hobbes::overrideVarCtor (VarCtorFn) |
Pattern * | hobbes::defPatVarCtor (const std::string &, const LexicalAnnotation &) |
void | hobbes::overridePatVarCtor (PatVarCtorFn) |
Variables | |
static std::recursive_mutex | parse_mutex |
hobbes::cc * | yyParseCC |
std::string | yyVexpLexError |
hobbes::Module * | yyParsedModule |
std::string | yyParsedVar |
hobbes::Expr * | yyParsedExpr |
std::string | yyMatchDiagram |
int | yyInitToken |
std::string | yyModulePath |
int | yylineno = 1 |
int | yycolumn |
YYLTYPE | yyErrPos |
std::stack< YY_BUFFER_STATE > | hobbes::activeParseBuffers |
VarCtorFn | hobbes::varCtorFn = &defVarCtor |
PatVarCtorFn | hobbes::patVarCtorFn = &defPatVarCtor |
#define LOCK_PARSER parse_mutex_lock parse_lock |
#define YY_BUF_SIZE 16384 |
typedef yy_buffer_state* YY_BUFFER_STATE |
YY_BUFFER_STATE yy_create_buffer | ( | FILE * | file, |
int | size | ||
) |
Allocate and initialize an input buffer state.
file | A readable stream. |
size | The character buffer size in bytes. When in doubt, use YY_BUF_SIZE . |
void yy_delete_buffer | ( | YY_BUFFER_STATE | b | ) |
Destroy the buffer.
b | a buffer created with yy_create_buffer() |
YY_BUFFER_STATE yy_scan_string | ( | const char * | ) |
void yy_switch_to_buffer | ( | YY_BUFFER_STATE | new_buffer | ) |
Switch to a different input buffer.
new_buffer | The new input buffer. |
int yyparse | ( | ) |
|
static |
int yycolumn |
YYLTYPE yyErrPos |
int yyInitToken |
int yylineno = 1 |
std::string yyMatchDiagram |
std::string yyModulePath |
hobbes::cc* yyParseCC |
hobbes::Expr* yyParsedExpr |
hobbes::Module* yyParsedModule |
std::string yyParsedVar |
std::string yyVexpLexError |