]> andersk Git - splint.git/blobdiff - src/lltok.c
Fixed problem with russian characters.
[splint.git] / src / lltok.c
index 3cddcf333e8f536ab37a01d47f3260f0b62ffc73..3f2c77e569a9a260855fec3e37031a70ff891337 100644 (file)
@@ -1,6 +1,6 @@
 /*
 ** Splint - annotation-assisted static program checker
-** Copyright (C) 1994-2001 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
 ** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 ** MA 02111-1307, USA.
 **
-** For information on lclint: lclint-request@cs.virginia.edu
-** To report a bug: lclint-bug@cs.virginia.edu
+** For information on splint: info@splint.org
+** To report a bug: splint-bug@splint.org
 ** For more information: http://www.splint.org
 */
 /*
 ** lltok.c
 */
 
-# include "lclintMacros.nf"
+# include "splintMacros.nf"
 # include "basic.h"
 
 # include "cgrammar.h"
 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 */
@@ -103,12 +108,12 @@ bool lltok_isLe_Op (lltok tok)
 /*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 */
@@ -116,7 +121,7 @@ bool  lltok_isMinus_Op (lltok tok)
 
 bool  lltok_isAmpersand_Op (lltok tok)
 {
-  return (tok.tok == TAMPERSAND);
+  return (tok->tok == TAMPERSAND);
 }
 
 /*end drl added */
@@ -125,24 +130,24 @@ bool  lltok_isAmpersand_Op (lltok tok)
 
 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
@@ -150,7 +155,7 @@ lltok_unparse (lltok tok)
 {
   char *lit;
 
-  switch (tok.tok)
+  switch (tok->tok)
     {
     case BREAK:      lit = "break"; break;
     case CASE:       lit = "case"; break;
@@ -199,12 +204,12 @@ lltok_unparse (lltok tok)
     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;
@@ -257,22 +262,30 @@ lltok_unparse (lltok tok)
 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);
+}
+
This page took 0.048919 seconds and 4 git commands to generate.