The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/netiso/xebec/llparse.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: llparse.h,v 1.6 2005/02/26 22:39:49 perry Exp $        */
    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 int llparse();
  131 extern void llcopye();
  132 extern void llcopys();
  133 extern void llcorrector();
  134 extern int llepsilonok();
  135 extern void llexpand();
  136 extern short llfindaction();
  137 extern void llgetprefix();
  138 extern void llgettoken();
  139 extern void llinsert();
  140 extern void llinsertsym();
  141 extern void llinserttokens();
  142 extern void llparsererror();
  143 extern void llpushprod();
  144 extern void llreadetab();
  145 extern void llaction();
  146 extern void llpushattr();
  147 extern void llsetattr();
  148 extern void llfinprod();
  149 
  150 /************************************************************
  151         routines defined in llscan.c
  152 ************************************************************/
  153 extern void llscan();
  154 extern void dump_buffer();
  155 extern void llaccept();

Cache object: 44fd4972ff7885d1080f161761d67d76


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.