#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cpp.h"
Include dependency graph for hideset.c:

Go to the source code of this file.
Defines | |
| #define | HSSIZ 32 |
Typedefs | |
| typedef Nlist ** | Hideset |
Functions | |
| int | checkhideset (int hs, Nlist *np) |
| void | iniths (void) |
| int | inserths (Hideset, Hideset, Nlist *) |
| int | newhideset (int hs, Nlist *np) |
| void | prhideset (int hs) |
| int | unionhideset (int hs1, int hs2) |
Variables | |
| Hideset * | hidesets |
| int | maxhidesets = 3 |
| int | nhidesets = 0 |
|
|
Definition at line 12 of file hideset.c. Referenced by newhideset(). |
|
|
Definition at line 13 of file hideset.c. Referenced by checkhideset(), iniths(), inserths(), newhideset(), prhideset(), and unionhideset(). |
|
||||||||||||
|
Definition at line 23 of file hideset.c. References abort(), Hideset, hidesets, and Nlist. Referenced by expandrow(). 00024 {
00025 Hideset hsp;
00026
00027 if (hs>=nhidesets)
00028 abort();
00029 for (hsp = hidesets[hs]; *hsp; hsp++) {
00030 if (*hsp == np)
00031 return 1;
00032 }
00033 return 0;
00034 }
|
Here is the call graph for this function:

|
|
Definition at line 95 of file hideset.c. References domalloc(), Hideset, hidesets, maxhidesets, and nhidesets. Referenced by main(). 00096 {
00097 hidesets = (Hideset *)domalloc(maxhidesets*sizeof(Hideset *));
00098 hidesets[0] = (Hideset)domalloc(sizeof(Hideset));
00099 *hidesets[0] = NULL;
00100 nhidesets++;
00101 }
|
Here is the call graph for this function:

|
||||||||||||||||
|
Definition at line 67 of file hideset.c. References Hideset, and Nlist. Referenced by newhideset(). 00068 {
00069 Hideset odhs = dhs;
00070
00071 while (*shs && *shs < np)
00072 *dhs++ = *shs++;
00073 if (*shs != np)
00074 *dhs++ = np;
00075 do {
00076 *dhs++ = *shs;
00077 } while (*shs++);
00078 return dhs - odhs;
00079 }
|
|
||||||||||||
|
Definition at line 40 of file hideset.c. References domalloc(), error(), FATAL, Hideset, hidesets, HSSIZ, i, inserths(), maxhidesets, memmove(), nhidesets, Nlist, np, and realloc(). Referenced by expand(), and unionhideset(). 00041 {
00042 int i, len;
00043 Nlist *nhs[HSSIZ+3];
00044 Hideset hs1, hs2;
00045
00046 len = inserths(nhs, hidesets[hs], np);
00047 for (i=0; i<nhidesets; i++) {
00048 for (hs1=nhs, hs2=hidesets[i]; *hs1==*hs2; hs1++, hs2++)
00049 if (*hs1 == NULL)
00050 return i;
00051 }
00052 if (len>=HSSIZ)
00053 return hs;
00054 if (nhidesets >= maxhidesets) {
00055 maxhidesets = 3*maxhidesets/2+1;
00056 hidesets = (Hideset *)realloc(hidesets, (sizeof (Hideset *))*maxhidesets);
00057 if (hidesets == NULL)
00058 error(FATAL, "Out of memory from realloc");
00059 }
00060 hs1 = (Hideset)domalloc(len*sizeof(Hideset));
00061 memmove(hs1, nhs, len*sizeof(Hideset));
00062 hidesets[nhidesets] = hs1;
00063 return nhidesets++;
00064 }
|
Here is the call graph for this function:

|
|
Definition at line 104 of file hideset.c. References fprintf(), Hideset, hidesets, np, and stderr. Referenced by peektokens(). 00105 {
00106 Hideset np;
00107
00108 for (np = hidesets[hs]; *np; np++) {
00109 fprintf(stderr, (char*)(*np)->name, (*np)->len);
00110 fprintf(stderr, " ");
00111 }
00112 }
|
Here is the call graph for this function:

|
||||||||||||
|
Definition at line 85 of file hideset.c. References Hideset, hidesets, and newhideset(). Referenced by expand(). 00086 {
00087 Hideset hp;
00088
00089 for (hp = hidesets[hs2]; *hp; hp++)
00090 hs1 = newhideset(hs1, *hp);
00091 return hs1;
00092 }
|
Here is the call graph for this function:

|
|
Definition at line 14 of file hideset.c. Referenced by checkhideset(), iniths(), newhideset(), prhideset(), and unionhideset(). |
|
|
Definition at line 16 of file hideset.c. Referenced by iniths(), and newhideset(). |
|
|
Definition at line 15 of file hideset.c. Referenced by iniths(), and newhideset(). |
1.3.9.1