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 ; */
|
/* default_operating_conditions : slow_100_3.00 ; */
|
||||||
/* revision : 1.0.17; */
|
/* revision : 1.0.17; */
|
||||||
/* default_wire_load : xc2v250-5_avg; */
|
/* default_wire_load : xc2v250-5_avg; */
|
||||||
TOKEN ({ALPHA}|{DIGIT}|_)({ALPHA}|{DIGIT}|[._\-])*
|
TOKEN ({ALPHA}|{DIGIT}|_)({ALPHA}|{DIGIT}|[._\-])*(:({ALPHA}|{DIGIT}|_)+)?
|
||||||
/* bus_naming_style : %s[%d] ; */
|
/* bus_naming_style : %s[%d] ; */
|
||||||
BUS_STYLE "%s"{BUS_LEFT}"%d"{BUS_RIGHT}
|
BUS_STYLE "%s"{BUS_LEFT}"%d"{BUS_RIGHT}
|
||||||
PUNCTUATION [,\:;|(){}+*&!'=]
|
PUNCTUATION [,\:;|(){}+*&!'=]
|
||||||
|
|
|
||||||
|
|
@ -86,18 +86,6 @@ group:
|
||||||
{ sta::libertyGroupBegin($1, $3, $5); }
|
{ sta::libertyGroupBegin($1, $3, $5); }
|
||||||
statements '}' semi_opt
|
statements '}' semi_opt
|
||||||
{ $$ = sta::libertyGroupEnd(); }
|
{ $$ = 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 */
|
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) :
|
LibertyStmt::LibertyStmt(int line) :
|
||||||
|
|
|
||||||
|
|
@ -303,9 +303,6 @@ void
|
||||||
libertyGroupBegin(const char *type,
|
libertyGroupBegin(const char *type,
|
||||||
LibertyAttrValueSeq *params,
|
LibertyAttrValueSeq *params,
|
||||||
int line);
|
int line);
|
||||||
LibertyAttrValueSeq *
|
|
||||||
makeLibertyGroupColonArgs(const char *name1,
|
|
||||||
const char *name2);
|
|
||||||
LibertyGroup *
|
LibertyGroup *
|
||||||
libertyGroupEnd();
|
libertyGroupEnd();
|
||||||
LibertyGroup *
|
LibertyGroup *
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue