Annotation of Net2/netiso/xebec/llparse.h, revision 1.1.1.3

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

unix.superglobalmegacorp.com

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