Main Page   Class Hierarchy   Compound List   File List   Compound Members  

keydrin.h

00001 
00002 
00003 /*
00004 Program         KEYDRIN.H
00005 Purpose         KEY input driver
00006 */
00007 
00008 #ifndef _KEY_DRIVER_IN
00009 #define _KEY_DRIVER_IN
00010 #ifdef __GNUG__
00011 #pragma interface
00012 #endif
00013 
00014 #include <string.h>
00015 
00017 
00018 #include "misc.h"
00019 #include "gdserr.h"
00020 
00021 #include "lsetup.h"
00022 #include "alias.h"
00023 #include "_lnk_itr.h"
00024 #include "cparser.h"
00025 
00026 class Arcseg;
00027 class ArrayReference;
00028 class Boundary;
00029 class Box;
00030 class SLine;
00031 class Circle;
00032 class Element;
00033 class ElementList;
00034 class ColumnsRows;
00035 class Elflags;
00036 class GdsII;
00037 class Header;
00038 class Library;
00039 class Path;
00040 class Point;
00041 class Segment;
00042 class Shape;
00043 class G_Polygon;
00044 class G_Polyline;
00045 class Presentation;
00046 class Reference;
00047 class Strans;
00048 class StructureReference;
00049 
00050 class Structure;
00051 class Text;
00052 class Units;
00053 class Image;
00054 
00056 
00064 class KEY_parser
00065 {
00066         public:
00069                 KEY_parser();
00071                 virtual ~KEY_parser();
00072 
00074                 void                    Read(GdsII*);
00075 
00076         protected:
00077 
00079                 virtual bool            ReadItem(const wxString& type)=0;
00081                 bool            SkipXYData();
00082 
00083                 bool            ReadGdsHeader(GdsII* _GdsII);
00084                 bool            ReadBgnlib(GdsII* _GdsII);
00085                 bool            ReadBgnstr(Structure* _structure);
00086                 bool     ReadLibrarySettings(GdsII* _GdsII);
00087                 bool            ReadLibraryName(Library* _library);
00088                 bool            ReadUnits(Library* _library);
00089                 bool            ReadStructure(GdsII* _structurelist);
00090                 bool            ReadElement(Structure* _structure);
00091 
00093                 bool            ReadBoundary(Structure* _structure);
00095                 bool      ReadPath(Structure* _structure);
00097                 bool            ReadText(Structure* _structure);
00099                 bool            ReadArrayReference(Structure* _structure);
00101                 bool      ReadStructureReference(Structure* _structure);
00103                 bool            ReadArc(Structure* _structure);
00105                 bool            ReadCircle(Structure* _structure);
00107                 bool            ReadNode(Structure* _structure);
00109                 bool            ReadBox(Structure* _structure);
00111                 bool            ReadImage(Structure* _structure);
00113                 bool            ReadLine(Structure* _structure);
00114 
00115                 bool            ReadElflags(Element* _element);
00116                 bool            ReadLayer(Shape* _shape);
00117                 bool            ReadDataType(Boundary* _boundary);
00118                 bool            ReadDataType(Path* _path);
00119                 bool            ReadDataType(Arcseg* _arcseg);
00120                 bool            ReadDataType(Circle* _circle);
00121                 bool            ReadBoxType(Box* _box);
00122                 bool            Read(G_Polygon* _polygon);
00123                 bool            ReadWidth(Shape* _shape);
00124                 bool            Read(G_Polyline* _polyline);
00125                 bool            ReadTextBody(Text* _text);
00126                 bool            ReadPresentation(Text* _text);
00127                 bool            ReadStrans(Strans* _strans);
00128                 bool     Read(Point* _point);
00129                 bool     ReadRefLibs(Library* _library);
00130                 bool     ReadFonts(Library* _library);
00131                 bool            ReadAttrtable(Library* _library);
00132                 bool            ReadGenerations(Library* _library);
00133                 bool            ReadFormatType(Library* _library);
00134                 bool            ReadColRow(ArrayReference* _aref);
00135                 bool            ReadProperties(Element* _element);
00136 
00138                 wxString                        _keyword;
00140                 wxString       _value;
00141 
00143                 int                              _recordtype;
00144 
00146                 long                                    _linenumber;
00147 
00149       double            _factor;
00150 
00152                 bool            _back;
00153 
00154 
00156       int                       _mapping_in[1000];
00157 };
00158 
00160 class KEY_driver_in : public KEY_parser, public CommandParser , public ifstream
00161 {
00162         public:
00164                 KEY_driver_in(const wxString& filename,double factor = 1);
00166                 ~KEY_driver_in();
00167 
00168         protected:
00169                 bool ReadItem(const wxString& type);
00170 
00172                 void IncC();
00174                 char PeekNextC();
00175 
00177                 wxString                KEY_filename;
00178 
00180       GdsII*            m_cur_gdsii;
00181 };
00182 
00183 
00185 
00193 class KEY_string_in : public KEY_parser, public CommandParser , public ostrstream
00194 {
00195         public:
00197                 KEY_string_in(AliasList* aliaslist, double factor);
00199                 ~KEY_string_in();
00200 
00202                 bool Insert(GdsII* _GdsII,const wxString& string);
00204                 bool ReadStructureReference(Structure* _structure,GdsII* _GdsII);
00205                 bool ReadArrayReference(Structure* _structure,GdsII* _GdsII);
00206 
00207         protected:
00208 
00209                 bool ReadItem(const wxString& type);
00210 
00212                 void IncC();
00213 
00215                 char PeekNextC();
00216 
00218       char*     _commands;
00219 
00221       char*             _c;
00222 
00223 };
00224 
00225 #endif _KEY_DRIVER_IN
00226 
00227 
00228 
keydrin.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page