allow for multiple parsers within one program
This commit is contained in:
parent
da48891d6e
commit
8c6dc46124
|
@ -125,10 +125,5 @@ Are intended to be self-explanatory. They are reported
|
|||
on standard error. A more detailed report is found in the
|
||||
\fILL.output\fP
|
||||
file.
|
||||
.SH BUGS
|
||||
Because some file names are fixed, at most one
|
||||
\fILLgen\fP
|
||||
process can be active in a given directory at
|
||||
a time.
|
||||
.SH AUTHOR
|
||||
Ceriel J. H. Jacobs
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
/* $Header$ */
|
||||
#ifdef LL_DEBUG
|
||||
#define LL_assert(x) if(!(x)) LL_badassertion("x",__FILE__,__LINE__)
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#define LL_assert(x) assert(x)
|
||||
#else
|
||||
#define LL_assert(x) /* nothing */
|
||||
#endif
|
||||
|
@ -15,8 +17,6 @@ extern int LLsymb;
|
|||
#define LLscan(x) if ((LLsymb = LL_LEXI()) != x) LLerror(x); else
|
||||
#endif
|
||||
|
||||
# include "Lpars.h"
|
||||
|
||||
extern unsigned int LLscnt[];
|
||||
extern unsigned int LLtcnt[];
|
||||
extern int LLcsymb;
|
||||
|
|
|
@ -7,10 +7,6 @@
|
|||
static char *rcsid = "$Header$";
|
||||
# endif
|
||||
|
||||
# ifdef LL_DEBUG
|
||||
# include <stdio.h>
|
||||
# endif
|
||||
|
||||
unsigned int LLtcnt[LL_NTERMINALS];
|
||||
unsigned int LLscnt[LL_NSETS];
|
||||
int LLcsymb, LLsymb;
|
||||
|
@ -20,7 +16,7 @@ static int LLlevel;
|
|||
extern LLread();
|
||||
extern int LLskip();
|
||||
extern int LLnext();
|
||||
#ifndef LLscan
|
||||
#ifndef LL_FASTER
|
||||
extern LLscan();
|
||||
#endif
|
||||
extern LLerror();
|
||||
|
@ -30,7 +26,11 @@ extern int LLfirst();
|
|||
extern LLnewlevel();
|
||||
extern LLoldlevel();
|
||||
|
||||
#ifndef LLscan
|
||||
#ifdef LL_USERHOOK
|
||||
static LLdoskip();
|
||||
#endif
|
||||
|
||||
#ifndef LL_FASTER
|
||||
LLscan(t) {
|
||||
/*
|
||||
* Check if the next symbol is equal to the parameter
|
||||
|
@ -123,6 +123,7 @@ LLskip() {
|
|||
return LLdoskip(0);
|
||||
}
|
||||
|
||||
static int
|
||||
LLuserhook(exp, list)
|
||||
int *list;
|
||||
{
|
||||
|
@ -132,6 +133,7 @@ LLuserhook(exp, list)
|
|||
return LLsymb != old;
|
||||
}
|
||||
|
||||
static
|
||||
LLmklist(list)
|
||||
register int *list;
|
||||
{
|
||||
|
@ -157,6 +159,7 @@ LLmklist(list)
|
|||
*list = 0;
|
||||
}
|
||||
|
||||
static
|
||||
LLdoskip(exp) {
|
||||
int LLx;
|
||||
int list[LL_NTERMINALS+1];
|
||||
|
@ -240,11 +243,3 @@ LLoldlevel(LLsinfo) unsigned int *LLsinfo; {
|
|||
LLcsymb = (int) LLsinfo[LL_NSETS+LL_NTERMINALS+1];
|
||||
}
|
||||
}
|
||||
|
||||
# ifdef LL_DEBUG
|
||||
LL_badassertion(asstr,file,line) char *asstr, *file; {
|
||||
|
||||
fprintf(stderr,"Assertion \"%s\" failed %s(%d)\n",asstr,file,line);
|
||||
abort();
|
||||
}
|
||||
# endif
|
||||
|
|
Loading…
Reference in a new issue