Limbo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | Protected Attributes | List of all members
BookshelfParser::Driver Class Reference

#include <BookshelfDriver.h>

Public Member Functions

 Driver (BookshelfDataBase &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)
 
void setPlFlag (bool flag)
 control m_plFlag More...
 
void numNodeTerminalsCbk (int, int)
 from .nodes file, number of node and terminals
 
void terminalEntryCbk (string &, int, int)
 from .nodes file, terminal entry
 
void nodeEntryCbk (string &, int, int, string &)
 from .nodes file, node entry
 
void nodeEntryCbk (string &, int, int)
 from .nodes file, node entry
 
void numNetCbk (int)
 from .nets file, number of nets
 
void numPinCbk (int)
 from .nets file, number of pins
 
void netPinEntryCbk (string &, char, double, double, double, double, string &)
 from .nets file, entry of net and pin
 
void netPinEntryCbk (string &, char, double, double, double=0.0, double=0.0)
 from .nets file, entry of net and pin
 
void netNameAndDegreeCbk (string &, int)
 from .nets file, net name and degree
 
void netEntryCbk ()
 from .nets file, net entry
 
void plNodeEntryCbk (string &, double, double, string &, string &)
 from .pl file, node entry in placement
 
void plNodeEntryCbk (string &, double, double, string &)
 from .pl file, node entry in placement
 
void sclNumRows (int)
 from .scl file, number of rows
 
void sclCoreRowStart (string const &)
 from .scl file, core row start
 
void sclCoreRowCoordinate (int)
 from .scl file, core row coordinate
 
void sclCoreRowHeight (int)
 from .scl file, core row height
 
void sclCoreRowSitewidth (int)
 from .scl file, site width
 
void sclCoreRowSitespacing (int)
 from .scl file, site spacing
 
void sclCoreRowSiteorient (int)
 from .scl file, site orientation
 
void sclCoreRowSitesymmetry (int)
 from .scl file, site symmetry
 
void sclCoreRowSubRowOrigin (int)
 from .scl file, subrow origin
 
void sclCoreRowNumSites (int)
 from .scl file, number of sites
 
void sclCoreRowEnd ()
 from .scl file, end of core row
 
void auxCbk (string &, vector< string > &)
 from .aux file, other bookshelf files
 
vector< string > const & bookshelfFiles () const
 

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
 
BookshelfDataBasem_db
 

Protected Attributes

Row m_row
 temporary storage of row
 
Net m_net
 temporary storage of net
 
vector< string > m_vBookshelfFiles
 store bookshelf files except .aux
 
bool m_plFlag
 if true, indicate that only reads .pl file, this will result in different callbacks in the database
 

Detailed Description

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 36 of file BookshelfDriver.h.

Constructor & Destructor Documentation

BookshelfParser::Driver::Driver ( BookshelfDataBase db)

construct a new parser driver context

Parameters
dbreference to database

Member Function Documentation

vector<string> const& BookshelfParser::Driver::bookshelfFiles ( ) const
inline

get all bookshelf files except .aux

Returns
bookshelf files except .aux

Definition at line 155 of file BookshelfDriver.h.

void BookshelfParser::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 BookshelfParser::Driver::error ( const string &  m)

General error handling. This can be modified to output the error e.g. to a dialog box.

bool BookshelfParser::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.

Parameters
filenameinput file name
Returns
true if successfully parsed
bool BookshelfParser::Driver::parse_stream ( std::istream &  in,
const string &  sname = "stream input" 
)

Invoke the scanner and parser for a stream.

Parameters
ininput stream
snamestream name for error messages
Returns
true if successfully parsed
bool BookshelfParser::Driver::parse_string ( const string &  input,
const string &  sname = "string stream" 
)

Invoke the scanner and parser on an input string.

Parameters
inputinput string
snamestream name for error messages
Returns
true if successfully parsed
void BookshelfParser::Driver::setPlFlag ( bool  flag)

control m_plFlag

Parameters
flagcontrol flag

Member Data Documentation

class Scanner* BookshelfParser::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 89 of file BookshelfDriver.h.

BookshelfDataBase& BookshelfParser::Driver::m_db

Reference to the database filled during parsing of the expressions.

Definition at line 93 of file BookshelfDriver.h.


The documentation for this class was generated from the following file: