[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/i586-linux-thread-multi/CORE/ -> parser.h (source)

   1  /*    parser.h
   2   *
   3   *    Copyright (c) 2006, 2007, Larry Wall and others
   4   *
   5   *    You may distribute under the terms of either the GNU General Public
   6   *    License or the Artistic License, as specified in the README file.
   7   * 
   8   * This file defines the layout of the parser object used by the parser
   9   * and lexer (perly.c, toke,c).
  10   */
  11  
  12  #define YYEMPTY        (-2)
  13  
  14  typedef struct {
  15      YYSTYPE val;    /* semantic value */
  16      short   state;
  17      I32     savestack_ix;    /* size of savestack at this state */
  18      AV        *comppad; /* value of PL_comppad when this value was created */
  19  #ifdef DEBUGGING
  20      const char  *name; /* token/rule name for -Dpv */
  21  #endif
  22  } yy_stack_frame;
  23  
  24  typedef struct yy_parser {
  25  
  26      /* parser state */
  27  
  28      struct yy_parser *old_parser; /* previous value of PL_parser */
  29      YYSTYPE        yylval;    /* value of lookahead symbol, set by yylex() */
  30      int            yychar;    /* The lookahead symbol.  */
  31  
  32      /* Number of tokens to shift before error messages enabled.  */
  33      int            yyerrstatus;
  34  
  35      int            stack_size;
  36      int            yylen;    /* length of active reduction */
  37      yy_stack_frame  *stack;    /* base of stack */
  38      yy_stack_frame  *ps;    /* current stack frame */
  39  
  40      /* lexer state */
  41  
  42      I32        lex_brackets;    /* bracket count */
  43      I32        lex_casemods;    /* casemod count */
  44      char    *lex_brackstack;/* what kind of brackets to pop */
  45      char    *lex_casestack;    /* what kind of case mods in effect */
  46      U8        lex_defer;    /* state after determined token */
  47      bool    lex_dojoin;    /* doing an array interpolation */
  48      U8        lex_expect;    /* expect after determined token */
  49      U8        expect;        /* how to interpret ambiguous tokens */
  50      I32        lex_formbrack;    /* bracket count at outer format level */
  51      OP        *lex_inpat;    /* in pattern $) and $| are special */
  52      OP        *lex_op;    /* extra info to pass back on op */
  53      SV        *lex_repl;    /* runtime replacement from s/// */
  54      U16        lex_inwhat;    /* what kind of quoting are we in */
  55      OPCODE    last_lop_op;    /* last list operator */
  56      I32        lex_starts;    /* how many interps done on level */
  57      SV        *lex_stuff;    /* runtime pattern from m// or s/// */
  58      I32        multi_start;    /* 1st line of multi-line string */
  59      I32        multi_end;    /* last line of multi-line string */
  60      char    multi_open;    /* delimiter of said string */
  61      char    multi_close;    /* delimiter of said string */
  62      char    pending_ident;    /* pending identifier lookup */
  63      bool    preambled;
  64      /* XXX I32 space */
  65      SUBLEXINFO    sublex_info;
  66      SV        *linestr;    /* current chunk of src text */
  67      char    *bufptr;    
  68      char    *oldbufptr;    
  69      char    *oldoldbufptr;    
  70      char    *bufend;    
  71      char    *linestart;    /* beginning of most recently read line */
  72      char    *last_uni;    /* position of last named-unary op */
  73      char    *last_lop;    /* position of last list operator */
  74      line_t    copline;    /* current line number */
  75      U16        in_my;        /* we're compiling a "my"/"our" declaration */
  76      U8        lex_state;    /* next token is determined */
  77      U8        error_count;    /* how many compile errors so far, max 10 */
  78      HV        *in_my_stash;    /* declared class of this "my" declaration */
  79      PerlIO    *rsfp;        /* current source file pointer */
  80      AV        *rsfp_filters;    /* holds chain of active source filters */
  81  
  82  #ifdef PERL_MAD
  83      SV        *endwhite;
  84      I32        faketokens;
  85      I32        lasttoke;
  86      SV        *nextwhite;
  87      I32        realtokenstart;
  88      SV        *skipwhite;
  89      SV        *thisclose;
  90      MADPROP *    thismad;
  91      SV        *thisopen;
  92      SV        *thisstuff;
  93      SV        *thistoken;
  94      SV        *thiswhite;
  95  
  96  /* What we know when we're in LEX_KNOWNEXT state. */
  97      NEXTTOKE    nexttoke[5];    /* value of next token, if any */
  98      I32        curforce;
  99  #else
 100      YYSTYPE    nextval[5];    /* value of next token, if any */
 101      I32        nexttype[5];    /* type of next token */
 102      I32        nexttoke;
 103  #endif
 104  
 105      COP        *saved_curcop;    /* the previous PL_curcop */
 106      char    tokenbuf[256];
 107  
 108  } yy_parser;
 109      
 110  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1