Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

lsymbolSet.c File Reference

#include "lclintMacros.nf"
#include "llbasic.h"

Go to the source code of this file.

Functions

lsymbolSet lsymbolSet_new ()
bool lsymbolSet_insert (lsymbolSet s, lsymbol el)
bool lsymbolSet_member (lsymbolSet s, lsymbol el)
cstring lsymbolSet_unparse (lsymbolSet s)
void lsymbolSet_free ( lsymbolSet s)


Function Documentation

void lsymbolSet_free ( lsymbolSet s )
 

Definition at line 150 of file lsymbolSet.c.

Referenced by makestrOrUnionNode(), and resetImports().

00151 {
00152   if (lsymbolSet_isDefined (s))
00153     {
00154       sfree (s->elements); 
00155       sfree (s);
00156     }
00157 }

bool lsymbolSet_insert ( lsymbolSet s,
lsymbol el )
 

Definition at line 80 of file lsymbolSet.c.

Referenced by makestrOrUnionNode(), and resetImports().

00081 {
00082   llassert (lsymbolSet_isDefined (s));
00083 
00084   if (lsymbolSet_member (s, el))
00085     {
00086       return FALSE;
00087     }
00088   else
00089     {
00090       if (s->nspace <= 0)
00091         lsymbolSet_grow (s);
00092       s->nspace--;
00093       s->elements[s->entries] = el;
00094       s->entries++;
00095       return TRUE;
00096     }
00097 }

bool lsymbolSet_member ( lsymbolSet s,
lsymbol el )
 

Definition at line 100 of file lsymbolSet.c.

Referenced by lsymbolSet_insert(), makeInterfaceNodeImports(), makestrOrUnionNode(), and processImport().

00101 {
00102   if (lsymbolSet_isDefined (s))
00103     {
00104       int i;
00105       
00106       for (i = 0; i < s->entries; i++)
00107         {
00108           /* was: &el == &s->elements[i] ! */
00109 
00110           if (lsymbol_equal (el, s->elements[i]))
00111             {
00112               return TRUE;
00113             }
00114         }
00115     }
00116 
00117   return FALSE;
00118 }

lsymbolSet lsymbolSet_new ( )
 

Definition at line 35 of file lsymbolSet.c.

Referenced by makestrOrUnionNode(), and resetImports().

00036 {
00037   lsymbolSet s = (lsymbolSet) dmalloc (sizeof (*s));
00038 
00039   s->entries = 0;
00040   s->nspace = lsymbolSetBASESIZE;
00041   s->elements = (lsymbol *) dmalloc (sizeof (*s->elements) * lsymbolSetBASESIZE);
00042 
00043   return (s);
00044 }

cstring lsymbolSet_unparse ( lsymbolSet s )
 

Definition at line 121 of file lsymbolSet.c.

00122 {
00123   if (lsymbolSet_isDefined (s))
00124     {
00125       int i;
00126       cstring st = cstring_makeLiteral ("{");
00127       
00128       for (i = 0; i < s->entries; i++)
00129         {
00130           if (i == 0)
00131             {
00132               st = message ("%q %s", st, 
00133                             cstring_fromChars (lsymbol_toChars (s->elements[i])));
00134             }
00135           else
00136             st = message ("%q, %s", st, 
00137                           cstring_fromChars (lsymbol_toChars (s->elements[i])));
00138         }
00139       
00140       st = message ("%q }", st);
00141       return st;
00142     }
00143   else
00144     {
00145       return (cstring_makeLiteral ("{ }"));
00146     }
00147 }


Generated at Fri Nov 3 18:58:03 2000 for LCLint by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000