]> andersk Git - splint.git/blobdiff - src/Headers/ltoken.h
Added va_copy to standard.h.
[splint.git] / src / Headers / ltoken.h
index 4f5cf9901092a16d196ca3011d1ac676f15390e9..78c994fb4e09d2539bc7787d0c66ee0a0a9a0ed1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000.
+** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
 ** See ../LICENSE for license information.
 **
 */
@@ -7,10 +7,6 @@
 ** ltoken.h
 */
 
-# ifdef NOLCL
-# error "Bad include"
-# endif
-
 # ifndef LTOKEN_H
 # define LTOKEN_H
 
@@ -22,25 +18,23 @@ typedef enum {
   SID_SORT          /* sortId */ 
 } SimpleIdCode;
 
-struct _ltoken {
-    unsigned int code;                         
-    unsigned int col:  8;                      
-    unsigned int line: 16;                     
-
-
-    /* if idtype is SID_SORT, then text field keeps the sort */
-
-    lsymbol text;                      /* string handle    */
-    lsymbol fname;                     /* source handle    */
-    lsymbol rawText;                   /* original text    */
-    bool defined: 1;                   /* token predefined */
-    bool hasSyn: 1;                    /* synonym exists   */
-
-    /* just for simpleId: for distinguish simpleId into varId, fcnId, TypeId, ... */
-    /*@reldef@*/ SimpleIdCode idtype; 
-
-    /* quick and dirty: just for ctypes */
-    /*@reldef@*/ unsigned int intfield; 
+struct s_ltoken {
+  ltokenCode code;                             
+  int col;                     
+  int line;                    
+  
+  /* if idtype is SID_SORT, then text field keeps the sort */
+  lsymbol text;                        /* string handle    */
+  lsymbol fname;                       /* source handle    */
+  lsymbol rawText;                     /* original text    */
+  bool defined: 1;                     /* token predefined */
+  bool hasSyn: 1;                      /* synonym exists   */
+  
+  /* just for simpleId: for distinguish simpleId into varId, fcnId, TypeId, ... */
+  /*@reldef@*/ SimpleIdCode idtype; 
+  
+  /* quick and dirty: just for ctypes */
+  /*@reldef@*/ unsigned int intfield; 
 } ;
 
 typedef /*@only@*/ ltoken o_ltoken;
@@ -48,10 +42,10 @@ typedef /*@only@*/ ltoken o_ltoken;
 /*@constant null ltoken ltoken_undefined; @*/
 # define ltoken_undefined  ((ltoken)NULL)
 
-extern /*@falsenull@*/ bool ltoken_isValid (ltoken p_tok);
+extern /*@falsewhennull@*/ bool ltoken_isValid (ltoken p_tok);
 # define ltoken_isValid(t) ((t) != ltoken_undefined)
 
-extern /*@truenull@*/ bool ltoken_isUndefined (ltoken p_tok);
+extern /*@nullwhentrue@*/ bool ltoken_isUndefined (ltoken p_tok);
 # define ltoken_isUndefined(t) ((t) == ltoken_undefined)
 
 extern bool ltoken_isStateDefined (/*@sef@*/ ltoken p_tok) /*@*/ ;
@@ -63,32 +57,32 @@ extern void ltoken_setDefined (/*@sef@*/ ltoken p_tok, bool p_def);
   (ltoken_isValid (t) ? (t)->defined = (def) : (def))
 
 extern ltoken 
-  ltoken_createType (unsigned int p_code, SimpleIdCode p_idtype, lsymbol p_text) /*@*/ ;
+  ltoken_createType (ltokenCode p_code, SimpleIdCode p_idtype, lsymbol p_text) /*@*/ ;
 
-extern ltoken ltoken_create (unsigned int p_code, lsymbol p_text) /*@*/ ;
+extern ltoken ltoken_create (ltokenCode p_code, lsymbol p_text) /*@*/ ;
 
 extern void ltoken_setIntField (/*@sef@*/ ltoken p_tok, unsigned int p_i);
 # define ltoken_setIntField(tok,i) \
   (ltoken_isValid (tok) ? (tok)->intfield = (i) : (i))
      
-extern unsigned int ltoken_getLine (/*@sef@*/ ltoken p_tok);
+extern int ltoken_getLine (/*@sef@*/ ltoken p_tok);
 # define ltoken_getLine(tok) \
   (ltoken_isValid (tok) ? (tok)->line : 0)
 
-extern void ltoken_setLine (/*@sef@*/ ltoken p_tok, unsigned int p_line);
+extern void ltoken_setLine (/*@sef@*/ ltoken p_tok, /*@sef@*/ int p_line);
 # define ltoken_setLine(tok, ln) \
-  (ltoken_isValid (tok) ? (tok)->line = (ln) : (ln))
+  (ltoken_isValid (tok) ? (tok)->line = (ln) : 0)
 
-extern unsigned int ltoken_getCol (/*@sef@*/ ltoken p_tok);
+extern int ltoken_getCol (/*@sef@*/ ltoken p_tok);
 # define ltoken_getCol(tok) \
   (ltoken_isValid (tok) ? (tok)->col : 0)
 
-extern void ltoken_setCol (/*@sef@*/ ltoken p_tok, unsigned int p_col)
+extern void ltoken_setCol (/*@sef@*/ ltoken p_tok, int p_col)
    /*@modifies p_tok@*/ ;
 # define ltoken_setCol(tok, c) \
   (ltoken_isValid (tok) ? (tok)->col = (c) : (c))
 
-extern unsigned int ltoken_getCode (/*@sef@*/ ltoken p_tok) /*@*/ ;
+extern ltokenCode ltoken_getCode (/*@sef@*/ ltoken p_tok) /*@*/ ;
 # define ltoken_getCode(tok) \
   (ltoken_isValid (tok) ? (tok)->code : NOTTOKEN)
 
@@ -113,7 +107,7 @@ extern bool ltoken_wasSyn (/*@sef@*/ ltoken p_tok);
 # define ltoken_wasSyn(tok) \
   (ltoken_isValid (tok) ? lsymbol_isDefined ((tok)->rawText) : FALSE)
 
-/*@-namechecks@*/
+/*@-namechecks@*/ /* all of these should start with g_ */
 extern /*@dependent@*/ ltoken ltoken_forall;
 extern /*@dependent@*/ ltoken ltoken_exists;
 extern /*@dependent@*/ ltoken ltoken_true;
@@ -151,7 +145,7 @@ extern cstring ltoken_unparseCodeName (ltoken p_tok) /*@*/ ;
 
 extern /*@observer@*/ cstring ltoken_unparse (ltoken p_s);
 
-extern void ltoken_setCode (/*@sef@*/ ltoken p_s, unsigned int p_code);
+extern void ltoken_setCode (/*@sef@*/ ltoken p_s, ltokenCode p_code);
 # define ltoken_setCode(s,c) (ltoken_isValid (s) ? (s)->code = (c) : (c))
 
 extern void ltoken_setRawText (/*@sef@*/ ltoken p_s, lsymbol p_t);
@@ -182,9 +176,9 @@ extern /*@observer@*/ cstring ltoken_fileName (/*@sef@*/ ltoken p_s);
 # define ltoken_fileName(s) \
   (ltoken_isValid(s) ? lsymbol_toString ((s)->fname) : cstring_undefined)
 
-extern void ltoken_setFileName (/*@sef@*/ ltoken p_tok, char *p_fname);
+extern void ltoken_setFileName (/*@sef@*/ ltoken p_tok, /*@sef@*/ cstring p_fname);
 # define ltoken_setFileName(tok,f) \
-  (ltoken_isValid(tok) ? (tok)->fname = lsymbol_fromChars (f) : (f, lsymbol_undefined))
+  (ltoken_isValid(tok) ? (tok)->fname = lsymbol_fromString (f) : lsymbol_undefined)
 
 extern bool ltoken_isChar (ltoken p_tok);
 # define ltoken_isChar(t) \
@@ -196,11 +190,10 @@ extern void ltoken_setHasSyn (/*@sef@*/ ltoken p_tok, bool p_def);
 
 extern void ltoken_free (/*@only@*/ ltoken);
 
-extern ltoken ltoken_createFull (unsigned int p_code, lsymbol p_text, 
-                                cstring p_file, unsigned int p_line, 
-                                unsigned int p_col) /*@*/ ;
+extern ltoken ltoken_createFull (ltokenCode p_code, lsymbol p_text, 
+                                cstring p_file, int p_line, int p_col) /*@*/ ;
 
-extern ltoken ltoken_createRaw (unsigned int p_code, lsymbol p_text) /*@*/ ;
+extern ltoken ltoken_createRaw (ltokenCode p_code, lsymbol p_text) /*@*/ ;
 extern cstring ltoken_unparseLoc (ltoken p_t) /*@*/ ;
 
 extern void ltoken_markOwned (/*@owned@*/ ltoken);
This page took 0.072776 seconds and 4 git commands to generate.