byucc.edif.javacc
Class EdifParserCore

java.lang.Object
  extended by byucc.edif.javacc.EdifParserCore
All Implemented Interfaces:
EdifParserCoreConstants
Direct Known Subclasses:
EdifParser

public class EdifParserCore
extends java.lang.Object
implements EdifParserCoreConstants

edif.jj This file (edif.jj) defines the grammar for the EDIF 2.0 file format. This file is translated into a java file (EdifParserCore.java) by the javacc parser generator tool. This parser is configured in case sensitive mode as EDIF is a case sensitive grammer. Options that we should provide to parser: - generate interfaces only (don't look at contents of EdifCell objects) - Used for BuildWrapper and other interface tools - ignore rename objects (significantly reduce memory requirements) TODO: - Save user comments: comment() - Create a EDIF comment object - parse it and allow it to be modified - implement and test name caching (using getName and treeMap of names) - Turn off construction for checking only? $Id: edif.jj,v 1.41 2006/08/10 06:31:15 jonjohn Exp $


Nested Class Summary
(package private)  class EdifParserCore.ArrayElement
          Represents and "array" or "member" element during parsing.
(package private) static class EdifParserCore.JJCalls
           
private static class EdifParserCore.LookaheadSuccess
           
 
Field Summary
private  EdifEnvironment edif_environment
           
private  EdifParserCore.JJCalls[] jj_2_rtns
           
private  int jj_endpos
           
private  java.util.Vector jj_expentries
           
private  int[] jj_expentry
           
private  int jj_gc
           
private  int jj_gen
           
(package private)  SimpleCharStream jj_input_stream
           
private  int jj_kind
           
private  int jj_la
           
private  int[] jj_la1
           
private static int[] jj_la1_0
           
private static int[] jj_la1_1
           
private static int[] jj_la1_10
           
private static int[] jj_la1_2
           
private static int[] jj_la1_3
           
private static int[] jj_la1_4
           
private static int[] jj_la1_5
           
private static int[] jj_la1_6
           
private static int[] jj_la1_7
           
private static int[] jj_la1_8
           
private static int[] jj_la1_9
           
private  Token jj_lastpos
           
private  int[] jj_lasttokens
           
private  EdifParserCore.LookaheadSuccess jj_ls
           
 Token jj_nt
           
private  int jj_ntk
           
private  boolean jj_rescan
           
private  Token jj_scanpos
           
private  boolean jj_semLA
           
static boolean keepComments
          Adds comments from source edif to data structure when true.
 boolean lookingAhead
           
private  java.util.TreeMap names
          This is a mapping from a String object to another String object.
static java.lang.String primitiveViewName
          The name to use when checking views as primitives.
private  EdifParserCore.ArrayElement singleArray
          A preallocated array with one element.
private  java.util.List singleItemList
          This is a preallocated List with one for use within the parser to avoid construction on simple lists.
static boolean tagPrimitives
          Determines if cells will be tagged as a primitive.
 Token token
           
 EdifParserCoreTokenManager token_source
           
 
Fields inherited from interface byucc.edif.javacc.EdifParserCoreConstants
ABS, ACLOAD, AFTER, AND, ANGLE, ANNOTATE, APPLY, ARC, ARRAY, ARRAYMACRO, ARRAYRELATEDINFO, ARRAYSITE, ATLEAST, ATMOST, AUTHOR, BASEARRAY, BECOMES, BEHAVIOR, BETWEEN, BOOLEAN, BOOLEANDISPLAY, BOOLEANMAP, BORDERPATTERN, BORDERWIDTH, BOUNDINGBOX, CALCULATED, CAPACITANCE, CEILING, CELL, CELLREF, CELLTYPE, CENTERCENTER, CENTERLEFT, CENTERRIGHT, CHANGE, CHARGE, CIRCLE, COLOR, COMMENT, COMMENTGRAPHICS, COMPOUND, CONCAT, CONDUCTANCE, CONNECTLOCATION, CONSTANT, CONSTRAINT, CONTENTS, CORNERTYPE, CRITICALITY, CURRENT, CURRENTMAP, CURVE, CYCLE, DATAORIGIN, DCFANINLOAD, DCFANOUTLOAD, DCMAXFANIN, DCMAXFANOUT, DEFAULT, DELAY, DELTA, DERIVATION, DESIGN, DESIGNATOR, DIFFERENCE, DIGIT, DIRECTION, DISPLAY, DISTANCE, DIVIDE, DOCUMENT, DOMINATES, DOT, DURATION, E, EDIF, EDIFLEVEL, EDIFVERSION, ENCLOSUREDISTANCE, ENDTYPE, ENERGY, ENTRY, EOF, EQUAL, EVENT, EXACTLY, EXTEND, EXTERNAL, FABRICATE, FALSE, FIGURE, FIGUREAREA, FIGUREGROUP, FIGUREGROUPOBJECT, FIGUREGROUPOVERRIDE, FIGUREGROUPREF, FIGUREPERIMETER, FIGUREWIDTH, FILLPATTERN, FIX, FLOOR, FLUX, FOLLOW, FORBIDDENEVENT, FREQUENCY, GENERIC, GLOBALPORTREF, GRAPHIC, GREATERTHAN, GRIDMAP, IDENTIFIER, IGNORE, INCLUDEFIGUREGROUP, INCREASING, INDUCTANCE, INITIAL, INOUT, INPUT, INSTANCE, INSTANCEBACKANNOTATE, INSTANCEGROUP, INSTANCEMAP, INSTANCEREF, INTEGER, INTEGER_TOK, INTEGERDISPLAY, INTERFACE, INTERFIGUREGROUPSPACING, INTERSECTION, INTRAFIGUREGROUPSPACING, INVERSE, ISOLATED, JOINED, JUSTIFY, KEYWORDDISPLAY, KEYWORDLEVEL, KEYWORDMAP, LBR, LESSTHAN, LETTER, LIBRARY, LIBRARYREF, LISTOFNETS, LISTOFPORTS, LOADDELAY, LOGICASSIGN, LOGICINPUT, LOGICLIST, LOGICMAPINPUT, LOGICMAPOUTPUT, LOGICMODEL, LOGICONEOF, LOGICOUTPUT, LOGICPORT, LOGICREF, LOGICVALUE, LOGICWAVEFORM, LOWERCENTER, LOWERLEFT, LOWERRIGHT, MAINTAIN, MASKLAYOUT, MASS, MATCH, MAX, MEASURED, MEMBER, MIN, MINOMAX, MINOMAXDISPLAY, MNM, MOD, MULTIPLEVALUESET, MUSTJOIN, MX, MXR90, MY, MYR90, NAME, NEGATE, NET, NETBACKANNOTATE, NETBUNDLE, NETDELAY, NETGROUP, NETLIST, NETMAP, NETREF, NOCHANGE, NONPERMUTABLE, NOT, NOTALLOWED, NOTCHSPACING, NUMBER, NUMBERDEFINITION, NUMBERDISPLAY, OFFPAGECONNECTOR, OFFSETEVENT, OPENSHAPE, OR, ORIENTATION, ORIGIN, OUTPUT, OVERHANGDISTANCE, OVERLAPDISTANCE, OVERSIZE, OWNER, PAGE, PAGESIZE, PARAMETER, PARAMETERASSIGN, PARAMETERDISPLAY, PATH, PATHDELAY, PATHWIDTH, PCBLAYOUT, PERMUTABLE, PHYSICALDESIGNRULE, PLUG, POINT, POINTDISPLAY, POINTLIST, POINTSUBTRACT, POINTSUM, POLYGON, PORT, PORTBACKANNOTATE, PORTBUNDLE, PORTDELAY, PORTGROUP, PORTIMPLEMENTATION, PORTINSTANCE, PORTLIST, PORTLISTALIAS, PORTMAP, PORTREF, POWER, PRODUCT, PROGRAM, PROPERTY, PROPERTYDISPLAY, PROTECTIONFRAME, PT, R0, R180, R270, R90, RANGEVECTOR, RBR, RECTANGLE, RECTANGLESIZE, RENAME, REQUIRED, RESISTANCE, RESOLVES, RIPPER, ROUND, SCALE, SCALEX, SCALEY, SCHEMATIC, SECTION, SHAPE, SIMULATE, SIMULATIONINFO, SINGLEVALUESET, SITE, SOCKET, SOCKETSET, STATUS, STEADY, STRANGER, STRICTLYINCREASING, STRING, STRING_TOK, STRINGDISPLAY, STRONG, SUBTRACT, SUM, SYMBOL, SYMBOLIC, SYMMETRY, TABLE, TABLEDEFAULT, TECHNOLOGY, TEMPERATURE, TEXTHEIGHT, TIE, TIME, TIMEINTERVAL, TIMESTAMP, TIMING, tokenImage, TRANSFORM, TRANSITION, TRIGGER, TRUE, TRUNCATE, UNCONSTRAINED, UNDEFINED, UNION, UNIT, UNUSED, UPPERCENTER, UPPERLEFT, UPPERRIGHT, USERDATA, VARIABLE, VERSION, VIEW, VIEWLIST, VIEWMAP, VIEWREF, VIEWTYPE, VISIBLE, VOLTAGE, VOLTAGEMAP, WAVEVALUE, WEAK, WEAKJOINED, WHEN, WRITTEN, XCOORD, XOR, YCOORD
 
Constructor Summary
EdifParserCore()
           
EdifParserCore(EdifParserCoreTokenManager tm)
           
EdifParserCore(java.io.InputStream stream)
           
EdifParserCore(java.io.InputStream stream, java.lang.String encoding)
           
EdifParserCore(java.io.Reader stream)
           
 
Method Summary
 void abs()
           
 void acLoad()
          The following constructs are NOT used by the Edif insfrastructure
 void after()
           
 void and()
           
 void annotate()
           
 void apply()
           
 void arc()
           
 EdifParserCore.ArrayElement array()
          This will return an array element representing an integer array.
 void arrayMacro()
           
 void arrayRelatedInfo()
           
 void arraySite()
           
 void atLeast()
           
 void atMost()
           
 java.lang.String author()
           
 void baseArray()
           
 void becomes()
           
 void between()
           
 boolean booleanDisplay()
           
 void booleanMap()
           
 boolean booleanValue()
           
 void borderPattern()
           
 void borderWidth()
           
 void boundingBox()
           
 void ceiling()
           
 EdifCell cell(EdifLibrary lib)
          Parses a cell definition and create a new EdifCell object for the defined cell.
 EdifCell cellNameDef(EdifLibrary lib)
          This method parses the name of a cell and creates a new cell object for current_cell.
 java.lang.String cellNameRef()
           
 EdifCell cellRef(EdifCell parent)
           
 void cellType()
           
 void change()
           
 void circle()
           
 void color()
           
 EdifComment comment()
          Process an EDIF comment and return a EdifComment object.
 void commentGraphics()
           
 void compound()
           
 java.lang.String concat()
           
 void connectLocation()
           
 void constant()
           
 void constraint()
           
 void contents(EdifCell cell)
           
 void cornerType()
           
 void criticality()
           
 void currentMap()
           
 void curve()
           
 void cycle()
           
 java.lang.String dataOrigin()
           
 void dcFaninLoad()
           
 void dcFanoutLoad()
           
 void dcMaxFanin()
           
 void dcMaxFanout()
           
 void delay()
           
 void delta()
           
 void derivation()
           
 EdifDesign design()
           
 void designator()
           
 EdifDesign designNameDef()
           
 void difference()
           
 int direction()
          Parses the direction construct.
 void disable_tracing()
           
 void display()
           
 void divide()
           
 void dominates()
           
 void dot()
           
 void duration()
           
 ExpValue e()
           
 EdifEnvironment edif()
          Top production for parsing an EDIF file.
 EdifEnvironment edifFileName()
          Parse the "name" of the current edif environment.
 void edifLevel()
          Check to make sure that the edif level = 0.
 void edifVersion()
          Check to make sure that the edif Version 2.0.0 is used.
 void enable_tracing()
           
 void enclosureDistance()
           
 void endType()
           
 void entry()
           
 void equal()
           
 void event()
           
 void exactly()
           
 EdifLibrary external(EdifEnvironment env)
          Handles external libraries
 void fabricate()
           
 void figure()
           
 void figureArea()
           
 void figureGroup()
           
 void figureGroupNameDef()
           
 EdifNameable figureGroupNameRef()
           
 void figureGroupObject()
           
 void figureGroupOverride()
           
 void figureGroupRef()
           
 void figureOp()
           
 void figurePerimeter()
           
 void figureWidth()
           
 void fillPattern()
           
 void fix()
           
 void floor()
           
 void follow()
           
 void forbiddenEvent()
           
 void form()
           
 ParseException generateParseException()
           
 EdifEnvironment getEdifEnvironment()
          Return the current EdifEnvironment object translated from the edif file
 java.lang.String getName(java.lang.String name)
          This method is used to reduce the memory comsumption by creating a String collection for all the named objects.
 Token getNextToken()
           
 Token getToken(int index)
           
 void globalPortRef()
           
 void greaterThan()
           
 void gridMap()
           
 java.lang.String ident()
           
 void identifier()
           
 void ignore()
           
 void includeFigureGroup()
           
 void increasing()
           
 void initial()
           
 EdifCellInstance instance(EdifCell parentCell)
           
 void instanceBackAnnotate()
           
 void instanceGroup()
           
 void instanceMap()
           
 java.lang.Object instanceNameDef()
           
 java.lang.String instanceNameRef()
           
 java.lang.String instanceRef()
           
 java.util.List integer()
          Returns a List of integer objects associated with this integer specification.
 int integerDisplay()
           
 int integerToken()
           
 int integerValue()
          The EDIF level 0 version of integerValue is simply an integer token value.
 void interFigureGroupSpacing()
           
 void intersection()
           
 void intraFigureGroupSpacing()
           
 void inverse()
           
 void isolated()
           
private  boolean jj_2_1(int xla)
           
private  boolean jj_2_10(int xla)
           
private  boolean jj_2_100(int xla)
           
private  boolean jj_2_1000(int xla)
           
private  boolean jj_2_1001(int xla)
           
private  boolean jj_2_1002(int xla)
           
private  boolean jj_2_1003(int xla)
           
private  boolean jj_2_1004(int xla)
           
private  boolean jj_2_1005(int xla)
           
private  boolean jj_2_1006(int xla)
           
private  boolean jj_2_1007(int xla)
           
private  boolean jj_2_1008(int xla)
           
private  boolean jj_2_1009(int xla)
           
private  boolean jj_2_101(int xla)
           
private  boolean jj_2_1010(int xla)
           
private  boolean jj_2_1011(int xla)
           
private  boolean jj_2_1012(int xla)
           
private  boolean jj_2_1013(int xla)
           
private  boolean jj_2_1014(int xla)
           
private  boolean jj_2_1015(int xla)
           
private  boolean jj_2_1016(int xla)
           
private  boolean jj_2_1017(int xla)
           
private  boolean jj_2_1018(int xla)
           
private  boolean jj_2_1019(int xla)
           
private  boolean jj_2_102(int xla)
           
private  boolean jj_2_1020(int xla)
           
private  boolean jj_2_1021(int xla)
           
private  boolean jj_2_1022(int xla)
           
private  boolean jj_2_1023(int xla)
           
private  boolean jj_2_1024(int xla)
           
private  boolean jj_2_1025(int xla)
           
private  boolean jj_2_1026(int xla)
           
private  boolean jj_2_1027(int xla)
           
private  boolean jj_2_1028(int xla)
           
private  boolean jj_2_1029(int xla)
           
private  boolean jj_2_103(int xla)
           
private  boolean jj_2_1030(int xla)
           
private  boolean jj_2_1031(int xla)
           
private  boolean jj_2_1032(int xla)
           
private  boolean jj_2_1033(int xla)
           
private  boolean jj_2_1034(int xla)
           
private  boolean jj_2_1035(int xla)
           
private  boolean jj_2_1036(int xla)
           
private  boolean jj_2_1037(int xla)
           
private  boolean jj_2_1038(int xla)
           
private  boolean jj_2_1039(int xla)
           
private  boolean jj_2_104(int xla)
           
private  boolean jj_2_1040(int xla)
           
private  boolean jj_2_1041(int xla)
           
private  boolean jj_2_1042(int xla)
           
private  boolean jj_2_1043(int xla)
           
private  boolean jj_2_1044(int xla)
           
private  boolean jj_2_1045(int xla)
           
private  boolean jj_2_1046(int xla)
           
private  boolean jj_2_1047(int xla)
           
private  boolean jj_2_1048(int xla)
           
private  boolean jj_2_1049(int xla)
           
private  boolean jj_2_105(int xla)
           
private  boolean jj_2_1050(int xla)
           
private  boolean jj_2_1051(int xla)
           
private  boolean jj_2_1052(int xla)
           
private  boolean jj_2_1053(int xla)
           
private  boolean jj_2_1054(int xla)
           
private  boolean jj_2_1055(int xla)
           
private  boolean jj_2_1056(int xla)
           
private  boolean jj_2_1057(int xla)
           
private  boolean jj_2_1058(int xla)
           
private  boolean jj_2_1059(int xla)
           
private  boolean jj_2_106(int xla)
           
private  boolean jj_2_1060(int xla)
           
private  boolean jj_2_1061(int xla)
           
private  boolean jj_2_1062(int xla)
           
private  boolean jj_2_1063(int xla)
           
private  boolean jj_2_1064(int xla)
           
private  boolean jj_2_1065(int xla)
           
private  boolean jj_2_1066(int xla)
           
private  boolean jj_2_1067(int xla)
           
private  boolean jj_2_1068(int xla)
           
private  boolean jj_2_1069(int xla)
           
private  boolean jj_2_107(int xla)
           
private  boolean jj_2_1070(int xla)
           
private  boolean jj_2_1071(int xla)
           
private  boolean jj_2_1072(int xla)
           
private  boolean jj_2_1073(int xla)
           
private  boolean jj_2_1074(int xla)
           
private  boolean jj_2_1075(int xla)
           
private  boolean jj_2_1076(int xla)
           
private  boolean jj_2_1077(int xla)
           
private  boolean jj_2_1078(int xla)
           
private  boolean jj_2_1079(int xla)
           
private  boolean