/*
** Splint - annotation-assisted static program checker
-** Copyright (C) 1994-2002 University of Virginia,
+** Copyright (C) 1994-2003 University of Virginia,
** Massachusetts Institute of Technology
**
** This program is free software; you can redistribute it and/or modify it
bool
lltok_isSemi (lltok tok)
{
- return (tok.tok == TSEMI);
+ return (tok->tok == TSEMI);
}
bool
lltok_isMult (lltok tok)
{
- return (tok.tok == TMULT);
+ return (tok->tok == TMULT);
}
-bool lltok_isInc_Op (lltok tok)
+bool lltok_isIncOp (lltok tok)
{
- return (tok.tok == INC_OP);
+ return (tok->tok == INC_OP);
}
-bool lltok_isDec_Op (lltok tok)
+bool lltok_isDecOp (lltok tok)
{
- return (tok.tok == DEC_OP);
+ return (tok->tok == DEC_OP);
}
/* DRL added this function 10/23/2000 for boolean stuff */
-bool lltok_isEq_Op (lltok tok)
+bool lltok_isEqOp (lltok tok)
{
- return (tok.tok == EQ_OP);
+ return (tok->tok == EQ_OP);
+}
+
+bool lltok_isNotEqOp (lltok tok)
+{
+ return (tok->tok == NE_OP);
}
/* DRL added this function 10/25/2000 for boolean stuff */
-bool lltok_isAnd_Op (lltok tok)
+bool lltok_isAndOp (lltok tok)
{
- return (tok.tok == AND_OP);
+ return (tok->tok == AND_OP);
}
-bool lltok_isOr_Op (lltok tok)
+bool lltok_isOrOp (lltok tok)
{
- return (tok.tok == OR_OP);
+ return (tok->tok == OR_OP);
}
-bool lltok_isNot_Op (lltok tok)
+bool lltok_isNotOp (lltok tok)
{
- return (tok.tok == TEXCL);
+ return (tok->tok == TEXCL);
}
/*drl7x added this function 11/20/00 */
bool lltok_isLt_Op (lltok tok)
{
- return (tok.tok == TLT);
+ return (tok->tok == TLT);
}
bool lltok_isGt_Op (lltok tok)
{
- return (tok.tok == TGT);
+ return (tok->tok == TGT);
}
bool lltok_isGe_Op (lltok tok)
{
- return (tok.tok == GE_OP);
+ return (tok->tok == GE_OP);
}
bool lltok_isLe_Op (lltok tok)
{
- return (tok.tok == LE_OP);
+ return (tok->tok == LE_OP);
}
/* end drl7x added */
/*drl7x added 11 30 2000*/
bool lltok_isPlus_Op (lltok tok)
{
- return (tok.tok == TPLUS);
+ return (tok->tok == TPLUS);
}
bool lltok_isMinus_Op (lltok tok)
{
- return (tok.tok == TMINUS);
+ return (tok->tok == TMINUS);
}
/*drl7x added 6 6 2001 */
bool lltok_isAmpersand_Op (lltok tok)
{
- return (tok.tok == TAMPERSAND);
+ return (tok->tok == TAMPERSAND);
}
/*end drl added */
bool lltok_isExcl_Op (lltok tok)
{
- return (tok.tok == TEXCL);
+ return (tok->tok == TEXCL);
}
bool lltok_isTilde_Op (lltok tok)
{
- return (tok.tok == TTILDE);
+ return (tok->tok == TTILDE);
}
/*end drl added */
bool lltok_isEnsures (lltok tok)
{
- return (tok.tok == QPOSTCLAUSE);
+ return (tok->tok == QPOSTCLAUSE);
}
bool lltok_isRequires (lltok tok)
{
- return (tok.tok == QPRECLAUSE);
+ return (tok->tok == QPRECLAUSE);
}
cstring
{
char *lit;
- switch (tok.tok)
+ switch (tok->tok)
{
case BREAK: lit = "break"; break;
case CASE: lit = "case"; break;
case TRBRACE: lit = "}"; break;
case TCOMMA: lit = ","; break;
case TCOLON: lit = ":"; break;
- case TASSIGN: lit = "="; break;
+ case TASSIGN: lit = "="; break;
case TLPAREN: lit = "("; break;
case TRPAREN: lit = ")"; break;
case TLSQBR: lit = "["; break;
case TRSQBR: lit = "]"; break;
- case TDOT: lit = "."; break;
+ case TDOT: lit = "."; break; /* evans 2003-05-31: Fix reported by psanzani. */
case TAMPERSAND: lit = "&"; break;
case TEXCL: lit = "!"; break;
case TTILDE: lit = "~"; break;
lltok
lltok_create (int tok, fileloc loc)
{
- lltok l;
-
- l.tok = tok;
- l.loc = loc;
+ lltok l = (lltok) dmalloc (sizeof (*l));
+ l->tok = tok;
+ l->loc = loc;
+ DPRINTF (("Create: %s [%p]", lltok_unparse (l), loc));
return (l);
}
-void lltok_release (lltok t)
+void lltok_free (lltok t)
{
- fileloc_free (t.loc);
+ fileloc_free (t->loc);
+ sfree (t);
}
-fileloc lltok_stealLoc (lltok t)
+void lltok_free2 (lltok t1, lltok t2)
{
- fileloc res = t.loc;
- t.loc = fileloc_undefined;
- return res;
+ lltok_free (t1);
+ lltok_free (t2);
}
+
+void lltok_free3 (lltok t1, lltok t2, lltok t3)
+{
+ lltok_free (t1);
+ lltok_free (t2);
+ lltok_free (t3);
+}
+