Annotation of 43BSDReno/sys/netiso/xebec/llparse.h, revision 1.1.1.1

1.1       root        1: /* $Header: llparse.h,v 2.1 88/09/19 12:56:20 nhall Exp $ */
                      2: /* $Source: /var/home/tadl/src/argo/xebec/RCS/llparse.h,v $ */
                      3: 
                      4:        /************************************************************
                      5:                attributes stack garbage
                      6:        ************************************************************/
                      7: 
                      8: #define LLMAXATTR      512
                      9: #define LLMAXDESC      256
                     10: #define        LLATTR          /* build an attribute stack */
                     11: 
                     12:        /*
                     13:        **      attribute stack
                     14:        **
                     15:        **      AttrStack =     stack of record
                     16:        **                              values : array of values;
                     17:        **                              ptr     : index;
                     18:        **      end;
                     19:        **
                     20:        */
                     21: 
                     22:        typedef union llattrib LLattrib;
                     23: 
                     24:        extern LLattrib llattributes[LLMAXATTR];
                     25:        extern int      llattrtop;
                     26: 
                     27:        extern struct   llattr {
                     28:                LLattrib        *llabase; /* ptr into the attr stack (llattributes) */
                     29:                int             llaindex;/* # attrs on the stack so far for this prod */
                     30:                int             llacnt;/* total # ever to go on for this prod */
                     31: 
                     32:                int             lloldtop;/* when popping this prod, restore stack to here ;
                     33:                                                 one attr will remain on the stack (for the lhs) */
                     34:        }       llattrdesc[LLMAXDESC];
                     35: 
                     36:        extern int      lldescindex;
                     37: 
                     38:        /************************************************************
                     39:                attributes stack garbage
                     40:        ************************************************************/
                     41: 
                     42:        extern  struct  lltoken {
                     43:                short           llterm;         /* token number */
                     44:                short           llstate;        /* inserted deleted normal */
                     45:                LLattrib        llattrib; 
                     46:        }       lltoken;
                     47:        typedef struct lltoken  LLtoken;
                     48: 
                     49: /************************************************************
                     50:        constants used in llparse.c
                     51: ************************************************************/
                     52: 
                     53: #define STACKSIZE      500
                     54: #define MAXCORR                16
                     55: 
                     56: #define        NORMAL          0
                     57: #define        DELETE          1
                     58: #define        INSERT          2
                     59: 
                     60: /************************************************************
                     61:        datatypes used to communicate with the parser
                     62: ************************************************************/
                     63: 
                     64: struct llinsert {
                     65:        short   llinscost;
                     66:        short   llinslength;
                     67:        short   llinsert[MAXCORR];
                     68: };
                     69: typedef        struct llinsert LLinsert;
                     70: 
                     71: extern short   llparsestack[];
                     72: extern short   llstackptr;
                     73: extern short   llinfinite;
                     74: 
                     75: /************************************************************
                     76:        variables used to pass information
                     77:        specific to each grammer
                     78: ************************************************************/
                     79: 
                     80: extern short   llnterms;
                     81: extern short   llnsyms;
                     82: extern short   llnprods;
                     83: 
                     84: extern char    *llefile;
                     85: 
                     86: extern struct  llparsetable {
                     87:        short   llterm;
                     88:        short   llprod;
                     89: }      llparsetable[];
                     90: 
                     91: extern short   llparseindex[];
                     92: 
                     93: extern short   llepsilon[];
                     94: 
                     95: extern short   llproductions[];
                     96: 
                     97: extern struct  llprodindex {
                     98:        short   llprodstart;
                     99:        short   llprodlength;
                    100:        short   llprodtlen;
                    101: }      llprodindex[];
                    102: 
                    103: extern struct  llcosts {
                    104:        short   llinsert;
                    105:        short   lldelete;
                    106: }      llcosts[];
                    107: 
                    108: extern struct  llstable {
                    109:        short   llsstart;
                    110:        short   llslength;
                    111: }      llstable[];
                    112: 
                    113: extern short   llsspace[];
                    114: 
                    115: extern struct  lletable {
                    116:        short   llecost;
                    117:        short   llelength;
                    118:        short   llestart;
                    119: }      lletable[];
                    120: 
                    121: extern long    lleindex[];
                    122: 
                    123: extern short   llespace[];
                    124: 
                    125: extern char    *llstrings[];
                    126: 
                    127: /************************************************************
                    128:        routines defined in llparse.c
                    129: ************************************************************/
                    130: 
                    131: extern llparse();
                    132: extern llcopye();
                    133: extern llcopys();
                    134: extern llcorrector();
                    135: extern llepsilonok();
                    136: extern llexpand();
                    137: extern short llfindaction();
                    138: extern llgetprefix();
                    139: extern llgettoken();
                    140: extern llinsert();
                    141: extern llinsertsym();
                    142: extern llinserttokens();
                    143: extern llparsererror();
                    144: extern llpushprod();
                    145: extern llreadetab();

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.