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

lslOpSet.c File Reference

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

Go to the source code of this file.

Functions

lslOpSet lslOpSet_new ()
bool lslOpSet_insert (lslOpSet s, lslOp el)
cstring lslOpSet_unparse (lslOpSet s)
lslOpSet lslOpSet_copy (lslOpSet s)
void lslOpSet_free (lslOpSet s)


Function Documentation

lslOpSet lslOpSet_copy ( lslOpSet s )
 

Definition at line 164 of file lslOpSet.c.

00165 {
00166   if (lslOpSet_isDefined (s))
00167     {
00168       lslOpSet t = lslOpSet_predict (lslOpSet_size (s));
00169       int i;
00170       
00171       for (i = 0; i < lslOpSet_size (s); i++)
00172         {
00173           (void) lslOpSet_insert (t, lslOp_copy (s->elements[i])); 
00174         }
00175       
00176       return t;
00177     }
00178   else
00179     {
00180       return lslOpSet_undefined;
00181     }
00182 }

void lslOpSet_free ( lslOpSet s )
 

Definition at line 185 of file lslOpSet.c.

Referenced by computePossibleSorts().

00186 {
00187   if (lslOpSet_isDefined (s))
00188     {
00189       int i;
00190       for (i = 0; i < s->entries; i++)
00191         {
00192           lslOp_free (s->elements[i]); 
00193         }
00194       
00195       sfree (s->elements); 
00196       sfree (s);
00197     }
00198 }

bool lslOpSet_insert ( lslOpSet s,
lslOp el )
 

Definition at line 104 of file lslOpSet.c.

Referenced by lslOpSet_copy(), makeLiteralTermNode(), makeSimpleTermNode(), and symtable_opsWithLegalDomain().

00105 {
00106   llassert (lslOpSet_isDefined (s));
00107 
00108   if (lslOpSet_member (s, el))
00109     {
00110       lslOp_free (el);
00111       return FALSE;
00112     }
00113   else
00114     {
00115       if (s->nspace <= 0)
00116         lslOpSet_grow (s);
00117       s->nspace--;
00118       s->elements[s->entries] = el;
00119       s->entries++;
00120       return TRUE;
00121     }
00122 }

lslOpSet lslOpSet_new ( )
 

Definition at line 39 of file lslOpSet.c.

Referenced by computePossibleSorts(), makeIfTermNode(), makeInfixTermNode(), makeLiteralTermNode(), makeMapTermNode(), makeMatchedNode(), makeOpCallTermNode(), makePostfixTermNode2(), makePrefixTermNode(), makeQuantifiedTermNode(), makeSelectTermNode(), makeSimpleTermNode(), makeSizeofTermNode(), makeSqBracketedNode(), makeUnchangedTermNode1(), makeUnchangedTermNode2(), pushInfixOpPartNode(), and symtable_opsWithLegalDomain().

00040 {
00041   lslOpSet s = (lslOpSet) dmalloc (sizeof (*s));
00042 
00043   s->entries = 0;
00044   s->nspace = lslOpSetBASESIZE;
00045   s->elements = (lslOp *)
00046     dmalloc (sizeof (*s->elements) * lslOpSetBASESIZE);
00047   
00048   return (s);
00049 }

cstring lslOpSet_unparse ( lslOpSet s )
 

Definition at line 142 of file lslOpSet.c.

00143 {
00144   if (lslOpSet_isDefined (s))
00145     {
00146       int i;
00147       cstring st = cstring_makeLiteral ("{");
00148       
00149       for (i = 0; i < lslOpSet_size (s); i++)
00150         {
00151           st = message ("%q   %q", st, lslOp_unparse (s->elements[i]));
00152         }
00153       
00154       st = message ("%q}", st);
00155       return st;
00156     }
00157   else
00158     {
00159       return (cstring_makeLiteral ("{ }"));
00160     }
00161 }


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