Limbo 3.5.4
Loading...
Searching...
No Matches
LefDriver.h File Reference

Driver for Lef parser. More...

#include <iostream>
#include <vector>
#include <string>
#include <limbo/parsers/lef/adapt/LefDataBase.h>

Go to the source code of this file.

Classes

class  LefParser::Driver

Namespaces

namespace  LefParser
 namespace for LefParser

Functions

bool LefParser::read (LefDataBase &db, const string &lefFile)
 API for LefParser. Read LEF file and initialize database by calling user-defined callback functions.

Detailed Description

Driver for Lef parser.

  • LefParser is modified from Cadence open source parser. Original version stays in C style and has very poor support to object-oriented programming. LefParser borrows its data structure and bison grammar, but wrap it in C++ style. Please follow the LICENSE agreement from Cadence when use the parser.
  • The original data structure abuses malloc and free without proper initialization to pointers, which may lead to memory allocating problems. Although I fixed some of the bugs and it looks good with current benchmarks, there may still contain problems with other benchmarks.
  • Another issue is that keywords may have conflicts with STRING in LefParser.yy, so I created a generalized string type GSTRING which includes all string and keywords. I did not replace all STRING with GSTRING, because it may result in performance degradation. If a new benchmark causes syntax error during parsing, then replace STRING of specific grammar with GSTRING. The main idea is to reduce the usage of GSTRING.
Author
Yibo Lin
Date
Oct 2014

Definition in file LefDriver.h.