issue114 liberty colons round 3
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
872047581f
commit
9f0997ef6f
|
|
@ -70,7 +70,7 @@ HNAME ({PIN_NAME}|{BUS_NAME}|{MIXED_NAME})([\/.]({PIN_NAME}|{BUS_NAME}|{MIXED_NA
|
|||
/* default_operating_conditions : slow_100_3.00 ; */
|
||||
/* revision : 1.0.17; */
|
||||
/* default_wire_load : xc2v250-5_avg; */
|
||||
TOKEN ({ALPHA}|{DIGIT}|_)({ALPHA}|{DIGIT}|[._\-])*
|
||||
TOKEN ({ALPHA}|{DIGIT}|_)({ALPHA}|{DIGIT}|[._\-])*(:({ALPHA}|{DIGIT}|_)+)?
|
||||
/* bus_naming_style : %s[%d] ; */
|
||||
BUS_STYLE "%s"{BUS_LEFT}"%d"{BUS_RIGHT}
|
||||
PUNCTUATION [,\:;|(){}+*&!'=]
|
||||
|
|
|
|||
|
|
@ -86,18 +86,6 @@ group:
|
|||
{ sta::libertyGroupBegin($1, $3, $5); }
|
||||
statements '}' semi_opt
|
||||
{ $$ = sta::libertyGroupEnd(); }
|
||||
/* group(name1:name2) { stmts } */
|
||||
| KEYWORD '(' KEYWORD ':' KEYWORD ')' line '{'
|
||||
{ sta::LibertyAttrValueSeq *args = sta::makeLibertyGroupColonArgs($3, $5);
|
||||
sta::libertyGroupBegin($1, args, $7); }
|
||||
statements '}' semi_opt
|
||||
{ $$ = sta::libertyGroupEnd(); }
|
||||
/* group(name1:name2); */
|
||||
| KEYWORD '(' KEYWORD ':' KEYWORD ')' line
|
||||
{ sta::LibertyAttrValueSeq *args = sta::makeLibertyGroupColonArgs($3, $5);
|
||||
sta::libertyGroupBegin($1, args, $7); }
|
||||
semi_opt
|
||||
{ $$ = sta::libertyGroupEnd(); }
|
||||
;
|
||||
|
||||
line: /* empty */
|
||||
|
|
|
|||
|
|
@ -127,21 +127,6 @@ libertyGroupEnd()
|
|||
}
|
||||
}
|
||||
|
||||
// Helper for brain damaged group args with embedded colon.
|
||||
// group(name1:name2) { stmts }
|
||||
LibertyAttrValueSeq *
|
||||
makeLibertyGroupColonArgs(const char *name1,
|
||||
const char *name2)
|
||||
{
|
||||
LibertyAttrValueSeq *attr_values = new sta::LibertyAttrValueSeq;
|
||||
char *str_arg = stringPrint("%s:%s", name1, name2);
|
||||
stringDelete(name1);
|
||||
stringDelete(name2);
|
||||
LibertyAttrValue *arg = makeLibertyStringAttrValue(str_arg);
|
||||
attr_values->push_back(arg);
|
||||
return attr_values;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
LibertyStmt::LibertyStmt(int line) :
|
||||
|
|
|
|||
|
|
@ -303,9 +303,6 @@ void
|
|||
libertyGroupBegin(const char *type,
|
||||
LibertyAttrValueSeq *params,
|
||||
int line);
|
||||
LibertyAttrValueSeq *
|
||||
makeLibertyGroupColonArgs(const char *name1,
|
||||
const char *name2);
|
||||
LibertyGroup *
|
||||
libertyGroupEnd();
|
||||
LibertyGroup *
|
||||
|
|
|
|||
Loading…
Reference in New Issue