mirror of
https://github.com/php/pecl-php-parsekit.git
synced 2026-03-24 17:22:10 +01:00
324 lines
22 KiB
C
324 lines
22 KiB
C
/*
|
|
+----------------------------------------------------------------------+
|
|
| PHP Version 5 |
|
|
+----------------------------------------------------------------------+
|
|
| Copyright (c) 1997-2004 The PHP Group |
|
|
+----------------------------------------------------------------------+
|
|
| This source file is subject to version 3.0 of the PHP license, |
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
| available through the world-wide-web at the following url: |
|
|
| http://www.php.net/license/3_0.txt. |
|
|
| If you did not receive a copy of the PHP license and are unable to |
|
|
| obtain it through the world-wide-web, please send a note to |
|
|
| license@php.net so we can mail you a copy immediately. |
|
|
+----------------------------------------------------------------------+
|
|
| Author: Sara Golemon <pollita@php.net> |
|
|
+----------------------------------------------------------------------+
|
|
*/
|
|
|
|
/* $Id$ */
|
|
|
|
#ifndef PHP_PARSEKIT_H
|
|
#define PHP_PARSEKIT_H
|
|
|
|
#ifdef ZTS
|
|
#include "TSRM.h"
|
|
#endif
|
|
|
|
extern zend_module_entry parsekit_module_entry;
|
|
#define phpext_parsekit_ptr &parsekit_module_entry
|
|
|
|
PHP_MINIT_FUNCTION(parsekit);
|
|
PHP_MSHUTDOWN_FUNCTION(parsekit);
|
|
PHP_MINFO_FUNCTION(parsekit);
|
|
|
|
PHP_FUNCTION(parsekit_compile_string);
|
|
PHP_FUNCTION(parsekit_compile_file);
|
|
|
|
ZEND_BEGIN_MODULE_GLOBALS(parsekit)
|
|
int in_parsekit_compile;
|
|
zval *compile_errors;
|
|
ZEND_END_MODULE_GLOBALS(parsekit)
|
|
|
|
#ifdef ZTS
|
|
#define PARSEKIT_G(v) TSRMG(parsekit_globals_id, zend_parsekit_globals *, v)
|
|
#else
|
|
#define PARSEKIT_G(v) (parsekit_globals.v)
|
|
#endif
|
|
|
|
typedef struct _php_parsekit_define_list {
|
|
long val;
|
|
char *str;
|
|
long flags;
|
|
} php_parsekit_define_list;
|
|
|
|
#ifdef ZEND_ENGINE_2
|
|
#define PHP_PARSEKIT_TSRMLS_CC_ZE2ONLY TSRMLS_CC
|
|
#else
|
|
#define PHP_PARSEKIT_TSRMLS_CC_ZE2ONLY
|
|
#endif
|
|
|
|
#define PHP_PARSEKIT_QUIET 0
|
|
#define PHP_PARSEKIT_ALWAYS_SET 1
|
|
#define PHP_PARSEKIT_ALL_ELEMENTS 2
|
|
#define PHP_PARSEKIT_SIMPLE 3
|
|
|
|
#define PHP_PARSEKIT_UNKNOWN "UNKNOWN"
|
|
#define PHP_PARSEKIT_OPCODE_UNKNOWN "Unknown Opcode"
|
|
#define PHP_PARSEKIT_NODETYPE_UNKNOWN "Unknown Nodetype"
|
|
#define PHP_PARSEKIT_FUNCTYPE_UNKNOWN "Unknown Functiontype"
|
|
#define PHP_PARSEKIT_CLASSTYPE_UNKNOWN "Unknown Classtype"
|
|
|
|
/* Opcode Flags */
|
|
|
|
#define PHP_PARSEKIT_RESULT_CONST 0x00000001
|
|
#define PHP_PARSEKIT_RESULT_VAR 0x00000002
|
|
#define PHP_PARSEKIT_RESULT_OPLINE 0x00000004
|
|
#define PHP_PARSEKIT_RESULT_OPARRAY 0x00000008
|
|
#define PHP_PARSEKIT_RESULT_JMP_ADDR 0x00000010
|
|
#define PHP_PARSEKIT_RESULT_EA_TYPE 0x00000020
|
|
|
|
#define PHP_PARSEKIT_RESULT_GETVAR (PHP_PARSEKIT_RESULT_CONST | PHP_PARSEKIT_RESULT_VAR)
|
|
#define PHP_PARSEKIT_RESULT_USED 0x000000FF
|
|
|
|
#define PHP_PARSEKIT_OP1_CONST 0x00000100
|
|
#define PHP_PARSEKIT_OP1_VAR 0x00000200
|
|
#define PHP_PARSEKIT_OP1_OPLINE 0x00000400
|
|
#define PHP_PARSEKIT_OP1_OPARRAY 0x00000800
|
|
#define PHP_PARSEKIT_OP1_JMP_ADDR 0x00001000
|
|
#define PHP_PARSEKIT_OP1_EA_TYPE 0x00002000
|
|
|
|
#define PHP_PARSEKIT_OP1_GETVAR (PHP_PARSEKIT_OP1_CONST | PHP_PARSEKIT_OP1_VAR)
|
|
#define PHP_PARSEKIT_OP1_USED 0x0000FF00
|
|
|
|
#define PHP_PARSEKIT_OP2_CONST 0x00010000
|
|
#define PHP_PARSEKIT_OP2_VAR 0x00020000
|
|
#define PHP_PARSEKIT_OP2_OPLINE 0x00040000
|
|
#define PHP_PARSEKIT_OP2_OPARRAY 0x00080000
|
|
#define PHP_PARSEKIT_OP2_JMP_ADDR 0x00100000
|
|
#define PHP_PARSEKIT_OP2_EA_TYPE 0x00200000
|
|
|
|
#define PHP_PARSEKIT_OP2_GETVAR (PHP_PARSEKIT_OP2_CONST | PHP_PARSEKIT_OP2_VAR)
|
|
#define PHP_PARSEKIT_OP2_USED 0x00FF0000
|
|
|
|
#define PHP_PARSEKIT_EXTENDED_VALUE 0x01000000
|
|
|
|
#define PHP_PARSEKIT_USAGE_UNKNOWN 0xFFFFFFFF
|
|
|
|
#define PHP_PARSEKIT_CONSY ( PHP_PARSEKIT_RESULT_CONST | PHP_PARSEKIT_OP1_CONST | PHP_PARSEKIT_OP2_CONST )
|
|
#define PHP_PARSEKIT_VAR ( PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_VAR | PHP_PARSEKIT_OP2_VAR )
|
|
#define PHP_PARSEKIT_OPLINE ( PHP_PARSEKIT_RESULT_OPLINE | PHP_PARSEKIT_OP1_OPLINE | PHP_PARSEKIT_OP2_OPLINE )
|
|
#define PHP_PARSEKIT_OPARRAY ( PHP_PARSEKIT_RESULT_OPARRAY | PHP_PARSEKIT_OP1_OPARRAY | PHP_PARSEKIT_OP2_OPARRAY )
|
|
#define PHP_PARSEKIT_JMP_ADDR ( PHP_PARSEKIT_RESULT_JMP_ADDR | PHP_PARSEKIT_OP1_JMP_ADDR | PHP_PARSEKIT_OP2_JMP_ADDR )
|
|
#define PHP_PARSEKIT_EA_TYPE ( PHP_PARSEKIT_RESULT_EA_TYPE | PHP_PARSEKIT_OP1_EA_TYPE | PHP_PARSEKIT_OP2_EA_TYPE )
|
|
|
|
static php_parsekit_define_list php_parsekit_opnode_flags[] = {
|
|
{ PHP_PARSEKIT_RESULT_CONST, "RESULT_CONST" },
|
|
{ PHP_PARSEKIT_RESULT_VAR, "RESULT_VAR" },
|
|
{ PHP_PARSEKIT_RESULT_OPLINE, "RESULT_OPLINE" },
|
|
{ PHP_PARSEKIT_RESULT_OPARRAY, "RESULT_OPARRAY" },
|
|
{ PHP_PARSEKIT_RESULT_JMP_ADDR, "RESULT_JMP_ADDRR" },
|
|
{ PHP_PARSEKIT_RESULT_EA_TYPE, "RESLUT_EA_TYPE" },
|
|
{ PHP_PARSEKIT_OP1_CONST, "OP1_CONST" },
|
|
{ PHP_PARSEKIT_OP1_VAR, "OP1_VAR" },
|
|
{ PHP_PARSEKIT_OP1_OPLINE, "OP1_OPLINE" },
|
|
{ PHP_PARSEKIT_OP1_OPARRAY, "OP1_OPARRAY" },
|
|
{ PHP_PARSEKIT_OP1_JMP_ADDR, "OP1_JMP_ADDRR" },
|
|
{ PHP_PARSEKIT_OP1_EA_TYPE, "OP1_EA_TYPE" },
|
|
{ PHP_PARSEKIT_OP2_CONST, "OP2_CONST" },
|
|
{ PHP_PARSEKIT_OP2_VAR, "OP2_VAR" },
|
|
{ PHP_PARSEKIT_OP2_OPLINE, "OP2_OPLINE" },
|
|
{ PHP_PARSEKIT_OP2_OPARRAY, "OP2_OPARRAY" },
|
|
{ PHP_PARSEKIT_OP2_JMP_ADDR, "OP2_JMP_ADDRR" },
|
|
{ PHP_PARSEKIT_OP2_EA_TYPE, "OP2_EA_TYPE" },
|
|
{ PHP_PARSEKIT_EXTENDED_VALUE, "EXTENDED_VALUE" },
|
|
{ PHP_PARSEKIT_USAGE_UNKNOWN, "USAGE_UNKNOWN" },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static php_parsekit_define_list php_parsekit_class_types[] = {
|
|
{ ZEND_INTERNAL_CLASS, "ZEND_INTERNAL_CLASS" },
|
|
{ ZEND_USER_CLASS, "ZEND_USER_CLASS" },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static php_parsekit_define_list php_parsekit_function_types[] = {
|
|
{ ZEND_INTERNAL_FUNCTION, "ZEND_INTERNAL_FUNCTION" },
|
|
{ ZEND_USER_FUNCTION, "ZEND_USER_FUNCTION" },
|
|
{ ZEND_OVERLOADED_FUNCTION, "ZEND_OVERLOADED_FUNCTION" },
|
|
{ ZEND_EVAL_CODE, "ZEND_EVAL_CODE" },
|
|
#ifdef ZEND_OVERLOADED_FUNCTION_TEMPORARY
|
|
/* ZE2 Only */
|
|
{ ZEND_OVERLOADED_FUNCTION_TEMPORARY, "ZEND_OVERLOADED_FUNCTION_TEMPORARY" },
|
|
#endif
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static php_parsekit_define_list php_parsekit_nodetype_names[] = {
|
|
{ IS_CONST, "IS_CONST" },
|
|
{ IS_TMP_VAR, "IS_TMP_VAR" },
|
|
{ IS_VAR, "IS_VAR" },
|
|
{ IS_UNUSED, "IS_UNUSED" },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static php_parsekit_define_list php_parsekit_opcode_names[] = {
|
|
{ ZEND_NOP, "ZEND_NOP", 0 },
|
|
{ ZEND_ADD, "ZEND_ADD", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_SUB, "ZEND_SUB", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_MUL, "ZEND_MUL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_DIV, "ZEND_DIV", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_MOD, "ZEND_MOD", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_SL, "ZEND_SL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_SR, "ZEND_SR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_CONCAT, "ZEND_CONCAT", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_BW_OR, "ZEND_BW_OR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_BW_AND, "ZEND_BW_AND", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_BW_XOR, "ZEND_BW_XOR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_BW_NOT, "ZEND_BW_NOT", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_BOOL_NOT, "ZEND_BOOL_NOT", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_BOOL_XOR, "ZEND_BOOL_XOR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_IS_IDENTICAL, "ZEND_IS_IDENTICAL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_IS_NOT_IDENTICAL, "ZEND_IS_NOT_IDENTICAL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_IS_EQUAL, "ZEND_IS_EQUAL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_IS_NOT_EQUAL, "ZEND_IS_NOT_EQUAL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_IS_SMALLER, "ZEND_IS_SMALLER", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_IS_SMALLER_OR_EQUAL, "ZEND_IS_SMALLER_OR_EQUAL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_CAST, "ZEND_CAST", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_QM_ASSIGN, "ZEND_QM_ASSIGN", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_ASSIGN_ADD, "ZEND_ASSIGN_ADD", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_SUB, "ZEND_ASSIGN_SUB", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_MUL, "ZEND_ASSIGN_MUL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_DIV, "ZEND_ASSIGN_DIV", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_MOD, "ZEND_ASSIGN_MOD", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_SL, "ZEND_ASSIGN_SL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_SR, "ZEND_ASSIGN_SR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_CONCAT, "ZEND_ASSIGN_CONCAT", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_BW_OR, "ZEND_ASSIGN_BW_OR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_BW_AND, "ZEND_ASSIGN_BW_AND", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ASSIGN_BW_XOR, "ZEND_ASSIGN_BW_XOR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_PRE_INC, "ZEND_PRE_INC", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_PRE_DEC, "ZEND_PRE_DEC", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_POST_INC, "ZEND_POST_INC", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_POST_DEC, "ZEND_POST_DEC", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_ASSIGN, "ZEND_ASSIGN", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_RESULT_EA_TYPE | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_ASSIGN_REF, "ZEND_ASSIGN_REF", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_RESULT_EA_TYPE | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_ECHO, "ZEND_ECHO", PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_PRINT, "ZEND_PRINT", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_JMP, "ZEND_JMP", PHP_PARSEKIT_OP1_OPLINE | PHP_PARSEKIT_OP1_JMP_ADDR },
|
|
{ ZEND_JMPZ, "ZEND_JMPZ", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_OP2_JMP_ADDR },
|
|
{ ZEND_JMPNZ, "ZEND_JMPNZ", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_OP2_JMP_ADDR },
|
|
{ ZEND_JMPZNZ, "ZEND_JMPZNZ", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_OP2_JMP_ADDR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_JMPZ_EX, "ZEND_JMPZ_EX", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_OP2_JMP_ADDR },
|
|
{ ZEND_JMPNZ_EX, "ZEND_JMPNZ_EX", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_OP2_JMP_ADDR },
|
|
{ ZEND_CASE, "ZEND_CASE", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_SWITCH_FREE, "ZEND_SWITCH_FREE", PHP_PARSEKIT_OP1_VAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_BRK, "ZEND_BRK", PHP_PARSEKIT_OP1_VAR | PHP_PARSEKIT_OP1_OPLINE | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_CONT, "ZEND_CONT", PHP_PARSEKIT_OP1_VAR | PHP_PARSEKIT_OP1_OPLINE | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_BOOL, "ZEND_BOOL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_INIT_STRING, "ZEND_INIT_STRING", PHP_PARSEKIT_RESULT_VAR },
|
|
{ ZEND_ADD_CHAR, "ZEND_ADD_CHAR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_CONST },
|
|
{ ZEND_ADD_STRING, "ZEND_ADD_STRING", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_CONST },
|
|
{ ZEND_ADD_VAR, "ZEND_ADD_VAR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_BEGIN_SILENCE, "ZEND_BEGIN_SILENCE", PHP_PARSEKIT_RESULT_VAR },
|
|
{ ZEND_END_SILENCE, "ZEND_END_SILENCE", PHP_PARSEKIT_OP1_VAR },
|
|
{ ZEND_INIT_FCALL_BY_NAME, "ZEND_INIT_FCALL_BY_NAME", PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_DO_FCALL, "ZEND_DO_FCALL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_DO_FCALL_BY_NAME, "ZEND_DO_FCALL_BY_NAME", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_RETURN, "ZEND_RETURN", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_RECV, "ZEND_RECV", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_CONST },
|
|
{ ZEND_RECV_INIT, "ZEND_RECV_INIT", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_CONST | PHP_PARSEKIT_OP2_CONST },
|
|
{ ZEND_SEND_VAL, "ZEND_SEND_VAL", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_SEND_VAR, "ZEND_SEND_VAR", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_SEND_REF, "ZEND_SEND_REF", PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_NEW, "ZEND_NEW", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_VAR },
|
|
{ ZEND_JMP_NO_CTOR, "ZEND_JMP_NO_CTOR", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE },
|
|
{ ZEND_FREE, "ZEND_FREE", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP1_EA_TYPE | PHP_PARSEKIT_OP2_OPLINE },
|
|
{ ZEND_INIT_ARRAY, "ZEND_INIT_ARRAY", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ADD_ARRAY_ELEMENT, "ZEND_ADD_ARRAY_ELEMENT", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_INCLUDE_OR_EVAL, "ZEND_INCLUDE_OR_EVAL", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_CONST },
|
|
{ ZEND_UNSET_VAR, "ZEND_UNSET_VAR", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_EA_TYPE },
|
|
{ ZEND_UNSET_DIM_OBJ, "ZEND_UNSET_DIM_OBJ", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
#ifdef ZEND_ISSET_ISEMPTY
|
|
/* ZE1 Only */
|
|
{ ZEND_ISSET_ISEMPTY, "ZEND_ISSET_ISEMPTY", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_CONST },
|
|
#endif
|
|
{ ZEND_FE_RESET, "ZEND_FE_RESET", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FE_FETCH, "ZEND_FE_FETCH", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_EXIT, "ZEND_EXIT", PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_FETCH_R, "ZEND_FETCH_R", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_VAR | PHP_PARSEKIT_OP2_EA_TYPE },
|
|
{ ZEND_FETCH_DIM_R, "ZEND_FETCH_DIM_R", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_OBJ_R, "ZEND_FETCH_OBJ_R", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_FETCH_W, "ZEND_FETCH_W", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_VAR | PHP_PARSEKIT_OP2_EA_TYPE },
|
|
{ ZEND_FETCH_DIM_W, "ZEND_FETCH_DIM_W", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_OBJ_W, "ZEND_FETCH_OBJ_W", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_RW, "ZEND_FETCH_RW", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_VAR | PHP_PARSEKIT_OP2_EA_TYPE },
|
|
{ ZEND_FETCH_DIM_RW, "ZEND_FETCH_DIM_RW", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_OBJ_RW, "ZEND_FETCH_OBJ_RW", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_FETCH_IS, "ZEND_FETCH_IS", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_EA_TYPE },
|
|
{ ZEND_FETCH_DIM_IS, "ZEND_FETCH_DIM_IS", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_OBJ_IS, "ZEND_FETCH_OBJ_IS", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_FETCH_FUNC_ARG, "ZEND_FETCH_FUNC_ARG", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_OP2_EA_TYPE | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_DIM_FUNC_ARG, "ZEND_FETCH_DIM_FUNC_ARG", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_OBJ_FUNC_ARG, "ZEND_FETCH_OBJ_FUNC_ARG", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_UNSET, "ZEND_FETCH_UNSET", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_VAR | PHP_PARSEKIT_OP2_EA_TYPE },
|
|
{ ZEND_FETCH_DIM_UNSET, "ZEND_FETCH_DIM_UNSET", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_FETCH_OBJ_UNSET, "ZEND_FETCH_OBJ_UNSET", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_FETCH_DIM_TMP_VAR, "ZEND_FETCH_DIM_TMP_VAR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_FETCH_CONSTANT, "ZEND_FETCH_CONSTANT", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_VAR | PHP_PARSEKIT_OP2_CONST },
|
|
{ ZEND_EXT_STMT, "ZEND_EXT_STMT", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_EXT_FCALL_BEGIN, "ZEND_EXT_FCALL_BEGIN", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_EXT_FCALL_END, "ZEND_EXT_FCALL_END", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_EXT_NOP, "ZEND_EXT_NOP", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_TICKS, "ZEND_TICKS", PHP_PARSEKIT_OP1_CONST },
|
|
{ ZEND_SEND_VAR_NO_REF, "ZEND_SEND_VAR_NO_REF", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
#if PHP_MAJOR_VERSION >= 5
|
|
{ ZEND_CATCH, "ZEND_CATCH", PHP_PARSEKIT_OP1_VAR | PHP_PARSEKIT_OP1_EA_TYPE | PHP_PARSEKIT_OP2_OPLINE | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_THROW, "ZEND_THROW", PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_FETCH_CLASS, "ZEND_FETCH_CLASS", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_CLONE, "ZEND_CLONE", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_INIT_CTOR_CALL, "ZEND_INIT_CTOR_CALL", PHP_PARSEKIT_OP1_GETVAR },
|
|
{ ZEND_INIT_METHOD_CALL, "ZEND_INIT_METHOD_CALL", PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_INIT_STATIC_METHOD_CALL, "ZEND_INIT_STATIC_METHOD_CALL", PHP_PARSEKIT_OP1_VAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_ISSET_ISEMPTY_VAR, "ZEND_ISSET_ISEMPTY_VAR", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_VAR | PHP_PARSEKIT_OP2_EA_TYPE },
|
|
{ ZEND_ISSET_ISEMPTY_DIM_OBJ, "ZEND_ISSET_ISEMPTY_DIM_OBJ", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_IMPORT_FUNCTION, "ZEND_IMPORT_FUNCTION", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_IMPORT_CLASS, "ZEND_IMPORT_CLASS", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_IMPORT_CONST, "ZEND_IMPORT_CONST", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_PRE_INC_OBJ, "ZEND_PRE_INC_OBJ", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_PRE_DEC_OBJ, "ZEND_PRE_DEC_OBJ", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_POST_INC_OBJ, "ZEND_POST_INC_OBJ", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_POST_DEC_OBJ, "ZEND_POST_DEC_OBJ", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_ASSIGN_OBJ, "ZEND_ASSIGN_OBJ", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR },
|
|
{ ZEND_OP_DATA, "ZEND_OP_DATA", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_INSTANCEOF, "ZEND_INSTANCEOF", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_VAR },
|
|
{ ZEND_DECLARE_CLASS, "ZEND_DECLARE_CLASS", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_CONST | PHP_PARSEKIT_OP2_CONST },
|
|
{ ZEND_DECLARE_INHERITED_CLASS, "ZEND_DECLARE_INHERITED_CLASS", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_CONST | PHP_PARSEKIT_OP2_CONST },
|
|
{ ZEND_DECLARE_FUNCTION, "ZEND_DECLARE_FUNCTION", PHP_PARSEKIT_OP1_CONST | PHP_PARSEKIT_OP2_CONST },
|
|
{ ZEND_RAISE_ABSTRACT_ERROR, "ZEND_RAISE_ABSTRACT_ERROR", PHP_PARSEKIT_USAGE_UNKNOWN },
|
|
{ ZEND_ADD_INTERFACE, "ZEND_ADD_INTERFACE", PHP_PARSEKIT_OP1_VAR | PHP_PARSEKIT_OP2_VAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_VERIFY_ABSTRACT_CLASS, "ZEND_VERIFY_ABSTRACT_CLASS", PHP_PARSEKIT_OP1_VAR },
|
|
{ ZEND_ASSIGN_DIM, "ZEND_ASSIGN_DIM", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_ISSET_ISEMPTY_PROP_OBJ, "ZEND_ISSET_ISEMPTY_PROP_OBJ", PHP_PARSEKIT_RESULT_VAR | PHP_PARSEKIT_OP1_GETVAR | PHP_PARSEKIT_OP2_GETVAR | PHP_PARSEKIT_EXTENDED_VALUE },
|
|
{ ZEND_HANDLE_EXCEPTION, "ZEND_HANDLE_EXCEPTION", 0 },
|
|
#endif
|
|
{ 0, NULL }
|
|
};
|
|
|
|
#else
|
|
|
|
#define phpext_parsekit_ptr &parsekit_module_entry
|
|
|
|
#endif /* PHP_PARSEKIT_H */
|
|
|
|
|
|
/*
|
|
* Local variables:
|
|
* tab-width: 4
|
|
* c-basic-offset: 4
|
|
* End:
|
|
* vim600: noet sw=4 ts=4 fdm=marker
|
|
* vim<600: noet sw=4 ts=4
|
|
*/
|
|
|