9 changed files with 4517 additions and 50 deletions
-
4config.m4
-
6dev/phpdbg_lexer.l
-
48dev/phpdbg_parser.y
-
55phpdbg_cmd.c
-
4phpdbg_cmd.h
-
2160phpdbg_lexer.c
-
346phpdbg_lexer.h
-
1863phpdbg_parser.c
-
81phpdbg_parser.h
2160
phpdbg_lexer.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,346 @@ |
|||
#ifndef yyHEADER_H |
|||
#define yyHEADER_H 1 |
|||
#define yyIN_HEADER 1 |
|||
|
|||
#line 6 "sapi/phpdbg/phpdbg_lexer.h" |
|||
|
|||
#line 8 "sapi/phpdbg/phpdbg_lexer.h" |
|||
|
|||
#define YY_INT_ALIGNED short int |
|||
|
|||
/* A lexical scanner generated by flex */ |
|||
|
|||
#define FLEX_SCANNER |
|||
#define YY_FLEX_MAJOR_VERSION 2 |
|||
#define YY_FLEX_MINOR_VERSION 5 |
|||
#define YY_FLEX_SUBMINOR_VERSION 35 |
|||
#if YY_FLEX_SUBMINOR_VERSION > 0 |
|||
#define FLEX_BETA |
|||
#endif |
|||
|
|||
/* First, we deal with platform-specific or compiler-specific issues. */ |
|||
|
|||
/* begin standard C headers. */ |
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include <errno.h> |
|||
#include <stdlib.h> |
|||
|
|||
/* end standard C headers. */ |
|||
|
|||
/* flex integer type definitions */ |
|||
|
|||
#ifndef FLEXINT_H |
|||
#define FLEXINT_H |
|||
|
|||
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ |
|||
|
|||
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
|||
|
|||
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, |
|||
* if you want the limit (max/min) macros for int types. |
|||
*/ |
|||
#ifndef __STDC_LIMIT_MACROS |
|||
#define __STDC_LIMIT_MACROS 1 |
|||
#endif |
|||
|
|||
#include <inttypes.h> |
|||
typedef int8_t flex_int8_t; |
|||
typedef uint8_t flex_uint8_t; |
|||
typedef int16_t flex_int16_t; |
|||
typedef uint16_t flex_uint16_t; |
|||
typedef int32_t flex_int32_t; |
|||
typedef uint32_t flex_uint32_t; |
|||
#else |
|||
typedef signed char flex_int8_t; |
|||
typedef short int flex_int16_t; |
|||
typedef int flex_int32_t; |
|||
typedef unsigned char flex_uint8_t; |
|||
typedef unsigned short int flex_uint16_t; |
|||
typedef unsigned int flex_uint32_t; |
|||
#endif /* ! C99 */ |
|||
|
|||
/* Limits of integral types. */ |
|||
#ifndef INT8_MIN |
|||
#define INT8_MIN (-128) |
|||
#endif |
|||
#ifndef INT16_MIN |
|||
#define INT16_MIN (-32767-1) |
|||
#endif |
|||
#ifndef INT32_MIN |
|||
#define INT32_MIN (-2147483647-1) |
|||
#endif |
|||
#ifndef INT8_MAX |
|||
#define INT8_MAX (127) |
|||
#endif |
|||
#ifndef INT16_MAX |
|||
#define INT16_MAX (32767) |
|||
#endif |
|||
#ifndef INT32_MAX |
|||
#define INT32_MAX (2147483647) |
|||
#endif |
|||
#ifndef UINT8_MAX |
|||
#define UINT8_MAX (255U) |
|||
#endif |
|||
#ifndef UINT16_MAX |
|||
#define UINT16_MAX (65535U) |
|||
#endif |
|||
#ifndef UINT32_MAX |
|||
#define UINT32_MAX (4294967295U) |
|||
#endif |
|||
|
|||
#endif /* ! FLEXINT_H */ |
|||
|
|||
#ifdef __cplusplus |
|||
|
|||
/* The "const" storage-class-modifier is valid. */ |
|||
#define YY_USE_CONST |
|||
|
|||
#else /* ! __cplusplus */ |
|||
|
|||
/* C99 requires __STDC__ to be defined as 1. */ |
|||
#if defined (__STDC__) |
|||
|
|||
#define YY_USE_CONST |
|||
|
|||
#endif /* defined (__STDC__) */ |
|||
#endif /* ! __cplusplus */ |
|||
|
|||
#ifdef YY_USE_CONST |
|||
#define yyconst const |
|||
#else |
|||
#define yyconst |
|||
#endif |
|||
|
|||
/* An opaque pointer. */ |
|||
#ifndef YY_TYPEDEF_YY_SCANNER_T |
|||
#define YY_TYPEDEF_YY_SCANNER_T |
|||
typedef void* yyscan_t; |
|||
#endif |
|||
|
|||
/* For convenience, these vars (plus the bison vars far below) |
|||
are macros in the reentrant scanner. */ |
|||
#define yyin yyg->yyin_r |
|||
#define yyout yyg->yyout_r |
|||
#define yyextra yyg->yyextra_r |
|||
#define yyleng yyg->yyleng_r |
|||
#define yytext yyg->yytext_r |
|||
#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) |
|||
#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) |
|||
#define yy_flex_debug yyg->yy_flex_debug_r |
|||
|
|||
/* Size of default input buffer. */ |
|||
#ifndef YY_BUF_SIZE |
|||
#define YY_BUF_SIZE 16384 |
|||
#endif |
|||
|
|||
#ifndef YY_TYPEDEF_YY_BUFFER_STATE |
|||
#define YY_TYPEDEF_YY_BUFFER_STATE |
|||
typedef struct yy_buffer_state *YY_BUFFER_STATE; |
|||
#endif |
|||
|
|||
#ifndef YY_TYPEDEF_YY_SIZE_T |
|||
#define YY_TYPEDEF_YY_SIZE_T |
|||
typedef size_t yy_size_t; |
|||
#endif |
|||
|
|||
#ifndef YY_STRUCT_YY_BUFFER_STATE |
|||
#define YY_STRUCT_YY_BUFFER_STATE |
|||
struct yy_buffer_state |
|||
{ |
|||
FILE *yy_input_file; |
|||
|
|||
char *yy_ch_buf; /* input buffer */ |
|||
char *yy_buf_pos; /* current position in input buffer */ |
|||
|
|||
/* Size of input buffer in bytes, not including room for EOB |
|||
* characters. |
|||
*/ |
|||
yy_size_t yy_buf_size; |
|||
|
|||
/* Number of characters read into yy_ch_buf, not including EOB |
|||
* characters. |
|||
*/ |
|||
int yy_n_chars; |
|||
|
|||
/* Whether we "own" the buffer - i.e., we know we created it, |
|||
* and can realloc() it to grow it, and should free() it to |
|||
* delete it. |
|||
*/ |
|||
int yy_is_our_buffer; |
|||
|
|||
/* Whether this is an "interactive" input source; if so, and |
|||
* if we're using stdio for input, then we want to use getc() |
|||
* instead of fread(), to make sure we stop fetching input after |
|||
* each newline. |
|||
*/ |
|||
int yy_is_interactive; |
|||
|
|||
/* Whether we're considered to be at the beginning of a line. |
|||
* If so, '^' rules will be active on the next match, otherwise |
|||
* not. |
|||
*/ |
|||
int yy_at_bol; |
|||
|
|||
int yy_bs_lineno; /**< The line count. */ |
|||
int yy_bs_column; /**< The column count. */ |
|||
|
|||
/* Whether to try to fill the input buffer when we reach the |
|||
* end of it. |
|||
*/ |
|||
int yy_fill_buffer; |
|||
|
|||
int yy_buffer_status; |
|||
|
|||
}; |
|||
#endif /* !YY_STRUCT_YY_BUFFER_STATE */ |
|||
|
|||
void yyrestart (FILE *input_file ,yyscan_t yyscanner ); |
|||
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); |
|||
YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); |
|||
void yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); |
|||
void yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); |
|||
void yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); |
|||
void yypop_buffer_state (yyscan_t yyscanner ); |
|||
|
|||
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); |
|||
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); |
|||
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); |
|||
|
|||
void *yyalloc (yy_size_t ,yyscan_t yyscanner ); |
|||
void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); |
|||
void yyfree (void * ,yyscan_t yyscanner ); |
|||
|
|||
/* Begin user sect3 */ |
|||
|
|||
#define yywrap(n) 1 |
|||
#define YY_SKIP_YYWRAP |
|||
|
|||
#define yytext_ptr yytext_r |
|||
|
|||
#ifdef YY_HEADER_EXPORT_START_CONDITIONS |
|||
#define INITIAL 0 |
|||
#define RAW 1 |
|||
|
|||
#endif |
|||
|
|||
#ifndef YY_NO_UNISTD_H |
|||
/* Special case for "unistd.h", since it is non-ANSI. We include it way |
|||
* down here because we want the user's section 1 to have been scanned first. |
|||
* The user has a chance to override it with an option. |
|||
*/ |
|||
#include <unistd.h> |
|||
#endif |
|||
|
|||
#ifndef YY_EXTRA_TYPE |
|||
#define YY_EXTRA_TYPE void * |
|||
#endif |
|||
|
|||
int yylex_init (yyscan_t* scanner); |
|||
|
|||
int yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); |
|||
|
|||
/* Accessor methods to globals. |
|||
These are made visible to non-reentrant scanners for convenience. */ |
|||
|
|||
int yylex_destroy (yyscan_t yyscanner ); |
|||
|
|||
int yyget_debug (yyscan_t yyscanner ); |
|||
|
|||
void yyset_debug (int debug_flag ,yyscan_t yyscanner ); |
|||
|
|||
YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner ); |
|||
|
|||
void yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); |
|||
|
|||
FILE *yyget_in (yyscan_t yyscanner ); |
|||
|
|||
void yyset_in (FILE * in_str ,yyscan_t yyscanner ); |
|||
|
|||
FILE *yyget_out (yyscan_t yyscanner ); |
|||
|
|||
void yyset_out (FILE * out_str ,yyscan_t yyscanner ); |
|||
|
|||
int yyget_leng (yyscan_t yyscanner ); |
|||
|
|||
char *yyget_text (yyscan_t yyscanner ); |
|||
|
|||
int yyget_lineno (yyscan_t yyscanner ); |
|||
|
|||
void yyset_lineno (int line_number ,yyscan_t yyscanner ); |
|||
|
|||
int yyget_column (yyscan_t yyscanner ); |
|||
|
|||
void yyset_column (int column_no ,yyscan_t yyscanner ); |
|||
|
|||
YYSTYPE * yyget_lval (yyscan_t yyscanner ); |
|||
|
|||
void yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); |
|||
|
|||
/* Macros after this point can all be overridden by user definitions in |
|||
* section 1. |
|||
*/ |
|||
|
|||
#ifndef YY_SKIP_YYWRAP |
|||
#ifdef __cplusplus |
|||
extern "C" int yywrap (yyscan_t yyscanner ); |
|||
#else |
|||
extern int yywrap (yyscan_t yyscanner ); |
|||
#endif |
|||
#endif |
|||
|
|||
#ifndef yytext_ptr |
|||
static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); |
|||
#endif |
|||
|
|||
#ifdef YY_NEED_STRLEN |
|||
static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); |
|||
#endif |
|||
|
|||
#ifndef YY_NO_INPUT |
|||
|
|||
#endif |
|||
|
|||
/* Amount of stuff to slurp up with each read. */ |
|||
#ifndef YY_READ_BUF_SIZE |
|||
#define YY_READ_BUF_SIZE 8192 |
|||
#endif |
|||
|
|||
/* Number of entries by which start-condition stack grows. */ |
|||
#ifndef YY_START_STACK_INCR |
|||
#define YY_START_STACK_INCR 25 |
|||
#endif |
|||
|
|||
/* Default declaration of generated scanner - a define so the user can |
|||
* easily add parameters. |
|||
*/ |
|||
#ifndef YY_DECL |
|||
#define YY_DECL_IS_OURS 1 |
|||
|
|||
extern int yylex \ |
|||
(YYSTYPE * yylval_param ,yyscan_t yyscanner); |
|||
|
|||
#define YY_DECL int yylex \ |
|||
(YYSTYPE * yylval_param , yyscan_t yyscanner) |
|||
#endif /* !YY_DECL */ |
|||
|
|||
/* yy_get_previous_state - get the state just before the EOB char was reached */ |
|||
|
|||
#undef YY_NEW_FILE |
|||
#undef YY_FLUSH_BUFFER |
|||
#undef yy_set_bol |
|||
#undef yy_new_buffer |
|||
#undef yy_set_interactive |
|||
#undef YY_DO_BEFORE_ACTION |
|||
|
|||
#ifdef YY_DECL_IS_OURS |
|||
#undef YY_DECL_IS_OURS |
|||
#undef YY_DECL |
|||
#endif |
|||
|
|||
#line 118 "sapi/phpdbg/phpdbg_lexer.l" |
|||
|
|||
|
|||
#line 345 "sapi/phpdbg/phpdbg_lexer.h" |
|||
#undef yyIN_HEADER |
|||
#endif /* yyHEADER_H */ |
|||
1863
phpdbg_parser.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,81 @@ |
|||
/* A Bison parser, made by GNU Bison 2.5. */ |
|||
|
|||
/* Bison interface for Yacc-like parsers in C |
|||
|
|||
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. |
|||
|
|||
This program is free software: you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation, either version 3 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
|||
|
|||
/* As a special exception, you may create a larger work that contains |
|||
part or all of the Bison parser skeleton and distribute that work |
|||
under terms of your choice, so long as that work isn't itself a |
|||
parser generator using the skeleton or a modified version thereof |
|||
as a parser skeleton. Alternatively, if you modify or redistribute |
|||
the parser skeleton itself, you may (at your option) remove this |
|||
special exception, which will cause the skeleton and the resulting |
|||
Bison output files to be licensed under the GNU General Public |
|||
License without this special exception. |
|||
|
|||
This special exception was added by the Free Software Foundation in |
|||
version 2.2 of Bison. */ |
|||
|
|||
/* "%code requires" blocks. */ |
|||
|
|||
/* Line 2068 of yacc.c */ |
|||
#line 141 "sapi/phpdbg/phpdbg_parser.y" |
|||
|
|||
#ifndef YY_TYPEDEF_YY_SCANNER_T |
|||
#define YY_TYPEDEF_YY_SCANNER_T |
|||
typedef void* yyscan_t; |
|||
#endif |
|||
|
|||
|
|||
|
|||
/* Line 2068 of yacc.c */ |
|||
#line 47 "sapi/phpdbg/phpdbg_parser.h" |
|||
|
|||
/* Tokens. */ |
|||
#ifndef YYTOKENTYPE |
|||
# define YYTOKENTYPE |
|||
/* Put the tokens into the symbol table, so that GDB and other debuggers |
|||
know about them. */ |
|||
enum yytokentype { |
|||
C_TRUTHY = 258, |
|||
C_FALSY = 259, |
|||
C_STRING = 260, |
|||
C_EVAL = 261, |
|||
C_SHELL = 262, |
|||
T_DIGITS = 263, |
|||
T_LITERAL = 264, |
|||
T_METHOD = 265, |
|||
T_OPLINE = 266, |
|||
T_FILE = 267, |
|||
T_ID = 268, |
|||
T_INPUT = 269, |
|||
T_UNEXPECTED = 270 |
|||
}; |
|||
#endif |
|||
|
|||
|
|||
|
|||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED |
|||
typedef int YYSTYPE; |
|||
# define YYSTYPE_IS_TRIVIAL 1 |
|||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ |
|||
# define YYSTYPE_IS_DECLARED 1 |
|||
#endif |
|||
|
|||
|
|||
|
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue