Limbo
|
#include <LpDriver.h>
Public Member Functions | |
Driver (LpDataBase &db) | |
bool | parse_stream (std::istream &in, const string &sname="stream input") |
bool | parse_string (const string &input, const string &sname="string stream") |
bool | parse_file (const string &filename) |
void | error (const class location &l, const string &m) |
void | error (const string &m) |
Public Attributes | |
bool | trace_scanning |
enable debug output in the flex scanner | |
bool | trace_parsing |
enable debug output in the bison parser | |
string | streamname |
stream name (file or input stream) used for error messages. | |
class Scanner * | lexer |
LpDataBase & | m_db |
The Driver class brings together all components. It creates an instance of the Parser and Scanner classes and connects them. Then the input stream is fed into the scanner object and the parser gets it's token sequence. Furthermore the driver object is available in the grammar rules as a parameter. Therefore the driver class contains a reference to the structure into which the parsed data is saved.
Definition at line 35 of file LpDriver.h.
LpParser::Driver::Driver | ( | LpDataBase & | db | ) |
construct a new parser driver context
db | reference to database |
void LpParser::Driver::error | ( | const class location & | l, |
const string & | m | ||
) |
Error handling with associated line number. This can be modified to output the error e.g. to a dialog box.
void LpParser::Driver::error | ( | const string & | m | ) |
General error handling. This can be modified to output the error e.g. to a dialog box.
bool LpParser::Driver::parse_file | ( | const string & | filename | ) |
Invoke the scanner and parser on a file. Use parse_stream with a std::ifstream if detection of file reading errors is required.
filename | input file name |
bool LpParser::Driver::parse_stream | ( | std::istream & | in, |
const string & | sname = "stream input" |
||
) |
Invoke the scanner and parser for a stream.
in | input stream |
sname | stream name for error messages |
bool LpParser::Driver::parse_string | ( | const string & | input, |
const string & | sname = "string stream" |
||
) |
Invoke the scanner and parser on an input string.
input | input string |
sname | stream name for error messages |
class Scanner* LpParser::Driver::lexer |
Pointer to the current lexer instance, this is used to connect the parser to the scanner. It is used in the yylex macro.
Definition at line 88 of file LpDriver.h.
LpDataBase& LpParser::Driver::m_db |
Reference to the database filled during parsing of the expressions.
Definition at line 92 of file LpDriver.h.