# undef realloc
# endif
-void checkandsetBufState(idDecl id, exprNode is);
%}
%union
%token <tok> QMAXREAD
%token <tok> QTESTINRANGE
+%token <tok> TCAND
/* identifiers, literals */
context_popLoc ();
}
| namedDeclBase PushType TLPAREN genericParamList TRPAREN
- { setCurrentParams ($4);
-
+ { setCurrentParams ($4);
}
optGlobMods optGlobBufConstraints
{ setImplictfcnConstraints ();
clearCurrentParams ();
$$ = idDecl_replaceCtype ($1, ctype_makeFunction (idDecl_getCtype ($1), $4));
- context_popLoc ();
-
- // printf("Done nameDeclBase\n");
+ context_popLoc ();
}
plainNamedDeclBase
context_setProtectVars (); enterParamsTemp ();
sRef_setGlobalScopeSafe ();
-} QENSURESCONSTRAINT BufConstraintList QENDMACRO
+} QENSURESCONSTRAINT BufConstraintList optSemi QENDMACRO
{
setEnsuresConstraints ($3);
exitParamsTemp ();
context_setProtectVars (); enterParamsTemp ();
sRef_setGlobalScopeSafe ();
-} QBUFFERCONSTRAINT BufConstraintList QENDMACRO
+} QBUFFERCONSTRAINT BufConstraintList optSemi QENDMACRO
{
setFunctionConstraints ($3);
exitParamsTemp ();
| /*empty*/
BufConstraintList
-: BufConstraint BufConstraintList{ $$ = constraintList_add ($2, $1); }
-| BufConstraint {constraintList c; c = constraintList_new(); c = constraintList_add (c, $1); $$ = c}
+: BufConstraint TCAND BufConstraintList { $$ = constraintList_add ($3, $1); }
+| BufConstraint {constraintList c; c = constraintList_makeNew(); c = constraintList_add (c, $1); $$ = c}
BufConstraint
-: BufConstraintExpr relationalOp BufConstraintExpr TSEMI {
+: BufConstraintExpr relationalOp BufConstraintExpr {
$$ = makeConstraintParse3 ($1, $2, $3);
DPRINTF(("Done BufConstraint1\n")); }
: fcnDefHdr fcnBody
{
context_setFunctionDefined (exprNode_loc ($2));
- /* exprNode_checkFunction (context_getHeader (), $2); */
+ exprNode_checkFunction (context_getHeader (), $2);
/* DRL 8 8 2000 */
context_exitFunction ();