123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- # include <u.h>
- # include <libc.h>
- # include <ctype.h>
- # include <bio.h>
- # define PP 1
- # define CWIDTH 8
- # define CMASK 0377
- # define NCH 256
- # define TOKENSIZE 1000
- # define DEFSIZE 40
- # define DEFCHAR 1000
- # define STARTCHAR 100
- # define STARTSIZE 256
- # define CCLSIZE 1000
- # define TREESIZE 1000
- # define NSTATES 500
- # define MAXPOS 2500
- # define NTRANS 2000
- # define NOUTPUT 5000
- # define NACTIONS 100
- # define ALITTLEEXTRA 30
- # define RCCL NCH+90
- # define RNCCL NCH+91
- # define RSTR NCH+92
- # define RSCON NCH+93
- # define RNEWE NCH+94
- # define FINAL NCH+95
- # define RNULLS NCH+96
- # define RCAT NCH+97
- # define STAR NCH+98
- # define PLUS NCH+99
- # define QUEST NCH+100
- # define DIV NCH+101
- # define BAR NCH+102
- # define CARAT NCH+103
- # define S1FINAL NCH+104
- # define S2FINAL NCH+105
- # define DEFSECTION 1
- # define RULESECTION 2
- # define ENDSECTION 5
- # define TRUE 1
- # define FALSE 0
- # define PC 1
- # define PS 1
- # ifdef DEBUG
- # define LINESIZE 110
- extern int yydebug;
- extern int debug; /* 1 = on */
- extern int charc;
- # endif
- # ifdef DEBUG
- extern int freturn(int);
- # else
- # define freturn(s) s
- # endif
- extern int sargc;
- extern char **sargv;
- extern uchar buf[520];
- extern int yyline; /* line number of file */
- extern int sect;
- extern int eof;
- extern int lgatflg;
- extern int divflg;
- extern int funcflag;
- extern int pflag;
- extern int casecount;
- extern int chset; /* 1 = char set modified */
- extern Biobuf *fin, fout, *fother;
- extern int foutopen;
- extern int errorf;
- extern int fptr;
- extern char *cname;
- extern int prev; /* previous input character */
- extern int pres; /* present input character */
- extern int peek; /* next input character */
- extern int *name;
- extern int *left;
- extern int *right;
- extern int *parent;
- extern uchar **ptr;
- extern uchar *nullstr;
- extern int tptr;
- extern uchar pushc[TOKENSIZE];
- extern uchar *pushptr;
- extern uchar slist[STARTSIZE];
- extern uchar *slptr;
- extern uchar **def, **subs, *dchar;
- extern uchar **sname, *stchar;
- extern uchar *ccl;
- extern uchar *ccptr;
- extern uchar *dp, *sp;
- extern int dptr, sptr;
- extern uchar *bptr; /* store input position */
- extern uchar *tmpstat;
- extern int count;
- extern int **foll;
- extern int *nxtpos;
- extern int *positions;
- extern int *gotof;
- extern int *nexts;
- extern uchar *nchar;
- extern int **state;
- extern int *sfall; /* fallback state num */
- extern uchar *cpackflg; /* true if state has been character packed */
- extern int *atable, aptr;
- extern int nptr;
- extern uchar symbol[NCH];
- extern uchar cindex[NCH];
- extern int xstate;
- extern int stnum;
- extern int ccount;
- extern uchar match[NCH];
- extern uchar extra[NACTIONS];
- extern uchar *pcptr, *pchar;
- extern int pchlen;
- extern int nstates, maxpos;
- extern int yytop;
- extern int report;
- extern int ntrans, treesize, outsize;
- extern long rcount;
- extern int *verify, *advance, *stoff;
- extern int scon;
- extern uchar *psave;
- extern void acompute(int);
- extern void add(int **, int);
- extern void allprint(int);
- extern void cclinter(int);
- extern void cgoto(void);
- extern void cfoll(int);
- extern int cpyact(void);
- extern int dupl(int);
- extern void error(char *,...);
- extern void first(int);
- extern void follow(int);
- extern int gch(void);
- extern uchar *getl(uchar *);
- extern void layout(void);
- extern void lgate(void);
- extern int lookup(uchar *, uchar **);
- extern int member(int, uchar *);
- extern void mkmatch(void);
- extern int mn0(int);
- extern int mn1(int, int);
- extern int mnp(int, void*);
- extern int mn2(int, int, int);
- extern void munputc(int);
- extern void munputs(uchar *);
- extern void *myalloc(int, int);
- extern void nextstate(int, int);
- extern int notin(int);
- extern void packtrans(int, uchar *, int *, int, int);
- extern void padd(int **, int);
- extern void pccl(void);
- extern void pfoll(void);
- extern void phead1(void);
- extern void phead2(void);
- extern void pstate(int);
- extern void ptail(void);
- extern void sect1dump(void);
- extern void sect2dump(void);
- extern void statistics(void);
- extern void stprt(int);
- extern void strpt(uchar *);
- extern void treedump(void);
- extern int usescape(int);
- extern void warning(char *,...);
- extern int yyparse(void);
- extern void yyerror(char *);
|