Limbo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
test_adapt.cpp
Go to the documentation of this file.
1 
8 #include <iostream>
9 #include <fstream>
10 #include <string>
11 
13 
14 using std::cout;
15 using std::endl;
16 using std::string;
17 
26 {
27  public:
30 
32  LefDataBase() : base_type()
33  {
34  cout << "constructing LefDataBase" << endl;
35  }
39  virtual void lef_version_cbk(string const& v)
40  {
41  cout << "lef version = " << v << endl;
42  }
45  virtual void lef_version_cbk(double v)
46  {
47  cout << "lef version = " << v << endl;
48  }
51  virtual void lef_dividerchar_cbk(string const& v)
52  {
53  cout << "lef dividechar = " << v << endl;
54  }
57  virtual void lef_units_cbk(LefParser::lefiUnits const& v)
58  {
59  v.print(stdout);
60  }
63  virtual void lef_manufacturing_cbk(double v)
64  {
65  cout << "lef manufacturing = " << v << endl;
66  }
69  virtual void lef_busbitchars_cbk(string const& v)
70  {
71  cout << "lef busbitchars = " << v << endl;
72  }
75  virtual void lef_layer_cbk(LefParser::lefiLayer const& v)
76  {
77  v.print(stdout);
78  }
81  virtual void lef_via_cbk(LefParser::lefiVia const& v)
82  {
83  v.print(stdout);
84  }
87  virtual void lef_viarule_cbk(LefParser::lefiViaRule const& v)
88  {
89  v.print(stdout);
90  }
93  virtual void lef_spacing_cbk(LefParser::lefiSpacing const& v)
94  {
95  v.print(stdout);
96  }
99  virtual void lef_site_cbk(LefParser::lefiSite const& v)
100  {
101  v.print(stdout);
102  }
105  virtual void lef_macrobegin_cbk(std::string const& v)
106  {
107  cout << __func__ << " => " << v << endl;
108  }
111  virtual void lef_macro_cbk(LefParser::lefiMacro const& v)
112  {
113  v.print(stdout);
114  }
117  virtual void lef_prop_cbk(LefParser::lefiProp const& v)
118  {
119  v.print(stdout);
120  }
123  virtual void lef_maxstackvia_cbk(LefParser::lefiMaxStackVia const& v)
124  {
125  v.print(stdout);
126  }
129  virtual void lef_obstruction_cbk(LefParser::lefiObstruction const& v)
130  {
131  v.print(stdout);
132  }
135  virtual void lef_pin_cbk(lefiPin const& v)
136  {
137  v.print(stdout);
138  }
139 };
140 
142 void test1(std::string const& filename)
143 {
144  cout << "////////////// test1 ////////////////" << endl;
145  LefDataBase db;
146  if (LefParser::read(db, filename))
147  cout << "read successfully" << endl;
148  else cout << "read failed" << endl;
149 }
150 
155 int main(int argc, char** argv)
156 {
157 
158  if (argc > 1)
159  {
160  for (int i = 1; i < argc; ++i)
161  test1(argv[i]);
162  }
163  else
164  cout << "at least 1 argument is required" << endl;
165 
166  return 0;
167 }
168 
LefDataBase()
constructor
Definition: test_adapt.cpp:32
int main(int argc, char **argv)
main function
Definition: test_adapt.cpp:145
virtual void lef_obstruction_cbk(LefParser::lefiObstruction const &v)
obstruction callback
Definition: test_adapt.cpp:129
virtual void lef_macro_cbk(LefParser::lefiMacro const &v)
macro callback, describe standard cell type
Definition: test_adapt.cpp:111
virtual void lef_maxstackvia_cbk(LefParser::lefiMaxStackVia const &v)
noise margin callback
Definition: test_adapt.cpp:123
virtual void lef_site_cbk(LefParser::lefiSite const &v)
site callback
Definition: test_adapt.cpp:99
LefParser::LefDataBase base_type
base type
Definition: test_adapt.cpp:29
virtual void lef_dividerchar_cbk(string const &v)
set divider characters
Definition: test_adapt.cpp:51
bool read(LefDataBase &db, const string &lefFile)
API for LefParser. Read LEF file and initialize database by calling user-defined callback functions...
Custom class that inheritates LefParser::LefDataBase with all the required callbacks defined...
Definition: test_adapt.cpp:25
virtual void lef_spacing_cbk(LefParser::lefiSpacing const &v)
spacing callback
Definition: test_adapt.cpp:93
virtual void lef_via_cbk(LefParser::lefiVia const &v)
add via
Definition: test_adapt.cpp:81
virtual void lef_viarule_cbk(LefParser::lefiViaRule const &v)
add via rule
Definition: test_adapt.cpp:87
virtual void lef_manufacturing_cbk(double v)
set manufacturing entry
Definition: test_adapt.cpp:63
Driver for Lef parser.
virtual void lef_prop_cbk(LefParser::lefiProp const &v)
property callback
Definition: test_adapt.cpp:117
void test1(string const &filename)
test 1: use function wrapper DefParser::read
Definition: test_adapt.cpp:122
virtual void lef_pin_cbk(lefiPin const &v)
pin callback, describe pins in a standard cell
Definition: test_adapt.cpp:135
virtual void lef_version_cbk(string const &v)
set LEF version
Definition: test_adapt.cpp:39
Base class for lef database. Only pure virtual functions are defined. User needs to inheritate this c...
Definition: LefDataBase.h:123
virtual void lef_macrobegin_cbk(std::string const &v)
macro begin callback, describe standard cell type
Definition: test_adapt.cpp:105
virtual void lef_version_cbk(double v)
set LEF version
Definition: test_adapt.cpp:45
virtual void lef_units_cbk(LefParser::lefiUnits const &v)
set unit
Definition: test_adapt.cpp:57
virtual void lef_layer_cbk(LefParser::lefiLayer const &v)
add layer
Definition: test_adapt.cpp:75
virtual void lef_busbitchars_cbk(string const &v)
set bus bit characters
Definition: test_adapt.cpp:69