Limbo 3.5.4
Loading...
Searching...
No Matches
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
void numNodeTerminalsCbk (int, int)
 from .nodes file, number of node and terminals
void terminalEntryCbk (string &, int, int)
 from .nodes file, terminal entry
void terminalNIEntryCbk (string &, int, int)
 from .nodes file, terminal_NI 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 sclCoreRowSiteorient (string &)
 from .scl file, site orientation
void sclCoreRowSitesymmetry (int)
 from .scl file, site symmetry
void sclCoreRowSitesymmetry (string &)
 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 wtsNetWeightEntry (string &, double)
 from .wts file, net weight entry
void shapesNumNonRectangularNodesCbk (int)
 from .shapes file, number of nodes with non-rectangular shapes
void shapesEntryCbk (string &, double, double, double, double)
 from .shapes file, one box entry
void shapesNodeNameCbk (string &, int)
 from .shapes file, node name and number of boxes
void shapesEndCbk ()
 from .shapes file, end file
void routeGridCbk (int, int, int)
 from .route file, Global routing grid (num_X_grids num_Y_grids num_layers)
void routeVerticalCapacityCbk (IntegerArray &)
 from .route file, Vertical capacity per tile edge on each layer
void routeHorizontalCapacityCbk (IntegerArray &)
 from .route file, Horizontal capacity per tile edge on each layer
void routeMinWireWidthCbk (IntegerArray &)
 from .route file, Minimum metal width on each layer
void routeMinWireSpacingCbk (IntegerArray &)
 from .route file, Minimum spacing on each layer
void routeViaSpacingCbk (IntegerArray &)
 from .route file, Via spacing per layer
void routeGridOriginCbk (double, double)
 from .route file, Absolute coordinates of the origin of the grid (grid_lowerleft_X grid_lowerleft_Y)
void routeTileSizeCbk (double, double)
 from .route file, tile_width tile_height
void routeBlockagePorosityCbk (int)
 from .route file, Porosity for routing blockages (Zero implies the blockage completely blocks overlapping routing tracks. Default = 0)
void routeNumNiTerminalsCbk (int)
 from .route file, number of IO pins
void routePinLayerCbk (string &, int)
 from .route file, for IO pins, (node_name layer_id_for_all_node_pins)
void routePinLayerCbk (string &, string &)
void routeNumBlockageNodes (int)
 from .route file, number of blockage nodes
void routeBlockageNodeLayerCbk (string &, int, IntegerArray &)
 from .route file, for blockages, (node_name num_blocked_layers list_of_blocked_layers)
void routeBlockageNodeLayerCbk (string &, int, StringArray &)
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
NodeShape m_shape
 temporary storage of shape
RouteInfo m_routeInfo
 temporary storage of routing information
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

◆ Driver()

BookshelfParser::Driver::Driver ( BookshelfDataBase & db)

construct a new parser driver context

Parameters
dbreference to database

Member Function Documentation

◆ bookshelfFiles()

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

get all bookshelf files except .aux

Returns
bookshelf files except .aux

Definition at line 201 of file BookshelfDriver.h.

◆ error() [1/2]

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.

◆ error() [2/2]

void BookshelfParser::Driver::error ( const string & m)

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

◆ parse_file()

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

◆ parse_stream()

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

◆ parse_string()

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

◆ setPlFlag()

void BookshelfParser::Driver::setPlFlag ( bool flag)

control m_plFlag

Parameters
flagcontrol flag

◆ shapesNumNonRectangularNodesCbk()

void BookshelfParser::Driver::shapesNumNonRectangularNodesCbk ( int )

from .shapes file, number of nodes with non-rectangular shapes

.shapes file

Member Data Documentation

◆ lexer

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.

◆ m_db

BookshelfDataBase& BookshelfParser::Driver::m_db

Reference to the database filled during parsing of the expressions.

Definition at line 93 of file BookshelfDriver.h.

◆ m_net

Net BookshelfParser::Driver::m_net
protected

temporary storage of net

Definition at line 204 of file BookshelfDriver.h.

◆ m_plFlag

bool BookshelfParser::Driver::m_plFlag
protected

if true, indicate that only reads .pl file, this will result in different callbacks in the database

Definition at line 208 of file BookshelfDriver.h.

◆ m_routeInfo

RouteInfo BookshelfParser::Driver::m_routeInfo
protected

temporary storage of routing information

Definition at line 206 of file BookshelfDriver.h.

◆ m_row

Row BookshelfParser::Driver::m_row
protected

temporary storage of row

Definition at line 203 of file BookshelfDriver.h.

◆ m_shape

NodeShape BookshelfParser::Driver::m_shape
protected

temporary storage of shape

Definition at line 205 of file BookshelfDriver.h.

◆ m_vBookshelfFiles

vector<string> BookshelfParser::Driver::m_vBookshelfFiles
protected

store bookshelf files except .aux

Definition at line 207 of file BookshelfDriver.h.

◆ streamname

string BookshelfParser::Driver::streamname

stream name (file or input stream) used for error messages.

Definition at line 50 of file BookshelfDriver.h.

◆ trace_parsing

bool BookshelfParser::Driver::trace_parsing

enable debug output in the bison parser

Definition at line 47 of file BookshelfDriver.h.

◆ trace_scanning

bool BookshelfParser::Driver::trace_scanning

enable debug output in the flex scanner

Definition at line 44 of file BookshelfDriver.h.


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