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

syntable.c File Reference

#include "lclintMacros.nf"
#include "basic.h"
#include "tokentable.h"
#include "syntable.h"

Go to the source code of this file.

Typedefs

typedef lsymbol* lsymbolTable

Functions

void LSLAddSyn (lsymbol ntok, lsymbol otok)
ltoken LSLGetTokenForSyn (lsymbol ntok)
bool LSLIsSyn (lsymbol str)
void lsynTableInit (void)
void lsynTableReset (void)
void lsynTableCleanup (void)


Typedef Documentation

typedef lsymbol* lsymbolTable
 

Definition at line 44 of file syntable.c.


Function Documentation

void LSLAddSyn ( lsymbol ntok,
lsymbol otok )
 

Definition at line 94 of file syntable.c.

00095 {
00096   if (ntok >= SynTableEntries) /* was otok */
00097     {
00098       SynTable_grow (otok);
00099     }
00100 
00101   llassert (SynTable != NULL);
00102 
00103   if (SynTable[ntok] == (lsymbol) 0)
00104     {                           /* Entry is empty. Fill it in. */
00105       SynTable[ntok] = otok;
00106       LSLSetTokenHasSyn (otok, TRUE);   /* Mark oldToken as having a synonym. */
00107     }
00108   else
00109     {
00110       llbuglit ("LSLAddSyn: duplicate SynTable entry");
00111     }
00112 }

ltoken LSLGetTokenForSyn ( lsymbol ntok )
 

Definition at line 115 of file syntable.c.

Referenced by lscanLine().

00116 {
00117   llassert (SynTable != NULL);
00118   llassert (!(!((ntok < SynTableEntries) || (SynTable[ntok] != 0))));
00119 
00120   return LSLGetToken (SynTable[ntok]);
00121 }

bool LSLIsSyn ( lsymbol str )
 

Definition at line 124 of file syntable.c.

Referenced by lscanLine().

00125 {
00126   if (str < SynTableEntries)
00127     {
00128       llassert (SynTable != NULL);
00129       return (SynTable[str] != 0);
00130     }
00131   else
00132     {
00133       return FALSE;
00134     }
00135 }

void lsynTableCleanup ( void )
 

Definition at line 202 of file syntable.c.

00203 {
00204   sfree (SynTable);
00205   SynTable = NULL;
00206 }

void lsynTableInit ( void )
 

Definition at line 180 of file syntable.c.

00181 {
00182   int i;
00183 
00184   SynTable = (lsymbolTable) dmalloc (sizeof (*SynTable) * SYNTABLE_BASESIZE);
00185 
00186   /*@+loopexec@*/
00187   for (i = 0; i < SYNTABLE_BASESIZE; i++)
00188     {
00189       SynTable[i] = (lsymbol) 0;
00190     }
00191   /*@=loopexec@*/
00192 
00193   SynTableEntries = SYNTABLE_BASESIZE;
00194 /*@-compdef@*/ }

void lsynTableReset ( void )
 

Definition at line 197 of file syntable.c.

00198 {
00199 }


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