[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.226.214.1: ~ $
/*    parser.h
 *
 *    Copyright (c) 2006, 2007, 2009, 2010, 2011 Larry Wall and others
 *
 *    You may distribute under the terms of either the GNU General Public
 *    License or the Artistic License, as specified in the README file.
 * 
 * This file defines the layout of the parser object used by the parser
 * and lexer (perly.c, toke.c).
 */

#define YYEMPTY		(-2)

typedef struct {
    YYSTYPE val;    /* semantic value */
    short   state;
    I32     savestack_ix;	/* size of savestack at this state */
    CV	    *compcv; /* value of PL_compcv when this value was created */
#ifdef DEBUGGING
    const char  *name; /* token/rule name for -Dpv */
#endif
} yy_stack_frame;

typedef struct yy_parser {

    /* parser state */

    struct yy_parser *old_parser; /* previous value of PL_parser */
    YYSTYPE	    yylval;	/* value of lookahead symbol, set by yylex() */
    int		    yychar;	/* The lookahead symbol.  */

    /* Number of tokens to shift before error messages enabled.  */
    int		    yyerrstatus;

    int		    stack_size;
    int		    yylen;	/* length of active reduction */
    yy_stack_frame  *stack;	/* base of stack */
    yy_stack_frame  *ps;	/* current stack frame */

    /* lexer state */

    I32		lex_brackets;	/* square and curly bracket count */
    I32		lex_casemods;	/* casemod count */
    char	*lex_brackstack;/* what kind of brackets to pop */
    char	*lex_casestack;	/* what kind of case mods in effect */
    U8		lex_defer;	/* state after determined token */
    bool	lex_dojoin;	/* doing an array interpolation */
    U8		lex_expect;	/* expect after determined token */
    U8		expect;		/* how to interpret ambiguous tokens */
    I32		lex_formbrack;	/* bracket count at outer format level */
    OP		*lex_inpat;	/* in pattern $) and $| are special */
    OP		*lex_op;	/* extra info to pass back on op */
    SV		*lex_repl;	/* runtime replacement from s/// */
    U16		lex_inwhat;	/* what kind of quoting are we in */
    OPCODE	last_lop_op;	/* last list operator */
    I32		lex_starts;	/* how many interps done on level */
    SV		*lex_stuff;	/* runtime pattern from m// or s/// */
    I32		multi_start;	/* 1st line of multi-line string */
    I32		multi_end;	/* last line of multi-line string */
    char	multi_open;	/* delimiter of said string */
    char	multi_close;	/* delimiter of said string */
    char	pending_ident;	/* pending identifier lookup */
    bool	preambled;
    I32		lex_allbrackets;/* (), [], {}, ?: bracket count */
    SUBLEXINFO	sublex_info;
    SV		*linestr;	/* current chunk of src text */
    char	*bufptr;	
    char	*oldbufptr;	
    char	*oldoldbufptr;	
    char	*bufend;	
    char	*linestart;	/* beginning of most recently read line */
    char	*last_uni;	/* position of last named-unary op */
    char	*last_lop;	/* position of last list operator */
    line_t	copline;	/* current line number */
    U16		in_my;		/* we're compiling a "my"/"our" declaration */
    U8		lex_state;	/* next token is determined */
    U8		error_count;	/* how many compile errors so far, max 10 */
    HV		*in_my_stash;	/* declared class of this "my" declaration */
    PerlIO	*rsfp;		/* current source file pointer */
    AV		*rsfp_filters;	/* holds chain of active source filters */

#ifdef PERL_MAD
    SV		*endwhite;
    I32		faketokens;
    I32		lasttoke;
    SV		*nextwhite;
    I32		realtokenstart;
    SV		*skipwhite;
    SV		*thisclose;
    MADPROP *	thismad;
    SV		*thisopen;
    SV		*thisstuff;
    SV		*thistoken;
    SV		*thiswhite;

/* What we know when we're in LEX_KNOWNEXT state. */
    NEXTTOKE	nexttoke[5];	/* value of next token, if any */
    I32		curforce;
#else
    YYSTYPE	nextval[5];	/* value of next token, if any */
    I32		nexttype[5];	/* type of next token */
    I32		nexttoke;
#endif

    COP		*saved_curcop;	/* the previous PL_curcop */
    char	tokenbuf[256];

    U8		lex_fakeeof;	/* precedence at which to fake EOF */
    U8		lex_flags;
    PERL_BITFIELD16	in_pod:1;      /* lexer is within a =pod section */
    PERL_BITFIELD16	filtered:1;    /* source filters in evalbytes */
} yy_parser;

/* flags for lexer API */
#define LEX_STUFF_UTF8		0x00000001
#define LEX_KEEP_PREVIOUS	0x00000002

#ifdef PERL_CORE
# define LEX_START_SAME_FILTER	0x00000001
# define LEX_IGNORE_UTF8_HINTS	0x00000002
# define LEX_EVALBYTES		0x00000004
# define LEX_START_COPIED	0x00000008
# define LEX_DONT_CLOSE_RSFP	0x00000010
# define LEX_START_FLAGS \
	(LEX_START_SAME_FILTER|LEX_START_COPIED \
	|LEX_IGNORE_UTF8_HINTS|LEX_EVALBYTES|LEX_DONT_CLOSE_RSFP)
#endif

/* flags for parser API */
#define PARSE_OPTIONAL          0x00000001

/* values for lex_fakeeof */
enum {
    LEX_FAKEEOF_NEVER,      /* don't fake EOF */
    LEX_FAKEEOF_CLOSING,    /* fake EOF at unmatched closing punctuation */
    LEX_FAKEEOF_NONEXPR,    /* ... and at token that can't be in expression */
    LEX_FAKEEOF_LOWLOGIC,   /* ... and at low-precedence logic operator */
    LEX_FAKEEOF_COMMA,      /* ... and at comma */
    LEX_FAKEEOF_ASSIGN,     /* ... and at assignment operator */
    LEX_FAKEEOF_IFELSE,     /* ... and at ?: operator */
    LEX_FAKEEOF_RANGE,      /* ... and at range operator */
    LEX_FAKEEOF_LOGIC,      /* ... and at logic operator */
    LEX_FAKEEOF_BITWISE,    /* ... and at bitwise operator */
    LEX_FAKEEOF_COMPARE,    /* ... and at comparison operator */
    LEX_FAKEEOF_MAX
};

/*
 * Local variables:
 * c-indentation-style: bsd
 * c-basic-offset: 4
 * indent-tabs-mode: t
 * End:
 *
 * ex: set ts=8 sts=4 sw=4 noet:
 */

Filemanager

Name Type Size Permission Actions
EXTERN.h File 1.77 KB 0644
INTERN.h File 1.47 KB 0644
XSUB.h File 21.27 KB 0644
av.h File 2.91 KB 0644
bitcount.h File 850 B 0644
charclass_invlists.h File 9.55 KB 0644
config.h File 145.13 KB 0644
cop.h File 39.64 KB 0644
cv.h File 9.22 KB 0644
dosish.h File 5.95 KB 0644
embed.h File 84.98 KB 0644
embedvar.h File 19.08 KB 0644
fakesdio.h File 3.24 KB 0644
fakethr.h File 1.92 KB 0644
feature.h File 3.69 KB 0644
form.h File 1.43 KB 0644
git_version.h File 357 B 0644
gv.h File 10.02 KB 0644
handy.h File 53.01 KB 0644
hv.h File 23.67 KB 0644
intrpvar.h File 27.19 KB 0644
iperlsys.h File 47.63 KB 0644
keywords.h File 6.45 KB 0644
l1_char_class_tab.h File 31.86 KB 0644
libperl.so File 1.57 MB 0755
malloc_ctl.h File 1.48 KB 0644
metaconfig.h File 899 B 0644
mg.h File 2.37 KB 0644
mg_data.h File 4.84 KB 0644
mg_raw.h File 4.21 KB 0644
mg_vtable.h File 9.14 KB 0644
mydtrace.h File 1.81 KB 0644
nostdio.h File 3.37 KB 0644
op.h File 32.07 KB 0644
op_reg_common.h File 4.33 KB 0644
opcode.h File 46.2 KB 0644
opnames.h File 8.05 KB 0644
overload.h File 2.98 KB 0644
pad.h File 12.77 KB 0644
parser.h File 5.38 KB 0644
patchlevel.h File 8.05 KB 0644
perl.h File 168.47 KB 0644
perlapi.h File 5.34 KB 0644
perldtrace.h File 1.77 KB 0644
perlio.h File 10.83 KB 0644
perliol.h File 13.21 KB 0644
perlsdio.h File 4.92 KB 0644
perlsfio.h File 2.64 KB 0644
perlvars.h File 8.49 KB 0644
perly.h File 5.67 KB 0644
pp.h File 18.37 KB 0644
pp_proto.h File 10.61 KB 0644
proto.h File 259.12 KB 0644
reentr.h File 79.05 KB 0644
regcharclass.h File 30.79 KB 0644
regcomp.h File 32.46 KB 0644
regexp.h File 28.7 KB 0644
regnodes.h File 37.97 KB 0644
scope.h File 9.64 KB 0644
sv.h File 72.44 KB 0644
thread.h File 11.67 KB 0644
time64.h File 1.4 KB 0644
time64_config.h File 1.98 KB 0644
uconfig.h File 144.66 KB 0644
unixish.h File 4.48 KB 0644
utf8.h File 24.78 KB 0644
utfebcdic.h File 34.07 KB 0644
util.h File 1.71 KB 0644
uudmap.h File 904 B 0644
warnings.h File 4.23 KB 0644