+----------------------------------------------------------------------+
| Author: Andrei Zmievski <andrei@php.net> |
+----------------------------------------------------------------------+
- */
+*/
#ifdef HAVE_CONFIG_H
#include "config.h"
{
FILE *yy_input_file;
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
+ 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.
*/
/* Remove comments and fill if you need to have entries in php.ini
PHP_INI_BEGIN()
- STD_PHP_INI_ENTRY("tokenizer.global_value", "42", PHP_INI_ALL, OnUpdateInt, global_value, zend_tokenizer_globals, tokenizer_globals)
- STD_PHP_INI_ENTRY("tokenizer.global_string", "foobar", PHP_INI_ALL, OnUpdateString, global_string, zend_tokenizer_globals, tokenizer_globals)
+ STD_PHP_INI_ENTRY("tokenizer.global_value", "42", PHP_INI_ALL, OnUpdateInt, global_value, zend_tokenizer_globals, tokenizer_globals)
+ STD_PHP_INI_ENTRY("tokenizer.global_string", "foobar", PHP_INI_ALL, OnUpdateString, global_string, zend_tokenizer_globals, tokenizer_globals)
PHP_INI_END()
*/
/* }}} */
static char *
get_token_type_name(int token_type)
{
- switch (token_type) {
- case T_INCLUDE: return "T_INCLUDE";
- case T_INCLUDE_ONCE: return "T_INCLUDE_ONCE";
- case T_EVAL: return "T_EVAL";
- case T_REQUIRE: return "T_REQUIRE";
- case T_REQUIRE_ONCE: return "T_REQUIRE_ONCE";
- case T_LOGICAL_OR: return "T_LOGICAL_OR";
- case T_LOGICAL_XOR: return "T_LOGICAL_XOR";
- case T_LOGICAL_AND: return "T_LOGICAL_AND";
- case T_PRINT: return "T_PRINT";
- case T_PLUS_EQUAL: return "T_PLUS_EQUAL";
- case T_MINUS_EQUAL: return "T_MINUS_EQUAL";
- case T_MUL_EQUAL: return "T_MUL_EQUAL";
- case T_DIV_EQUAL: return "T_DIV_EQUAL";
- case T_CONCAT_EQUAL: return "T_CONCAT_EQUAL";
- case T_MOD_EQUAL: return "T_MOD_EQUAL";
- case T_AND_EQUAL: return "T_AND_EQUAL";
- case T_OR_EQUAL: return "T_OR_EQUAL";
- case T_XOR_EQUAL: return "T_XOR_EQUAL";
- case T_SL_EQUAL: return "T_SL_EQUAL";
- case T_SR_EQUAL: return "T_SR_EQUAL";
- case T_BOOLEAN_OR: return "T_BOOLEAN_OR";
- case T_BOOLEAN_AND: return "T_BOOLEAN_AND";
- case T_IS_EQUAL: return "T_IS_EQUAL";
- case T_IS_NOT_EQUAL: return "T_IS_NOT_EQUAL";
- case T_IS_IDENTICAL: return "T_IS_IDENTICAL";
- case T_IS_NOT_IDENTICAL: return "T_IS_NOT_IDENTICAL";
- case T_IS_SMALLER_OR_EQUAL: return "T_IS_SMALLER_OR_EQUAL";
- case T_IS_GREATER_OR_EQUAL: return "T_IS_GREATER_OR_EQUAL";
- case T_SL: return "T_SL";
- case T_SR: return "T_SR";
- case T_INC: return "T_INC";
- case T_DEC: return "T_DEC";
- case T_INT_CAST: return "T_INT_CAST";
- case T_DOUBLE_CAST: return "T_DOUBLE_CAST";
- case T_STRING_CAST: return "T_STRING_CAST";
- case T_ARRAY_CAST: return "T_ARRAY_CAST";
- case T_OBJECT_CAST: return "T_OBJECT_CAST";
- case T_BOOL_CAST: return "T_BOOL_CAST";
- case T_UNSET_CAST: return "T_UNSET_CAST";
- case T_NEW: return "T_NEW";
- case T_EXIT: return "T_EXIT";
- case T_IF: return "T_IF";
- case T_ELSEIF: return "T_ELSEIF";
- case T_ELSE: return "T_ELSE";
- case T_ENDIF: return "T_ENDIF";
- case T_LNUMBER: return "T_LNUMBER";
- case T_DNUMBER: return "T_DNUMBER";
- case T_STRING: return "T_STRING";
- case T_STRING_VARNAME: return "T_STRING_VARNAME";
- case T_VARIABLE: return "T_VARIABLE";
- case T_NUM_STRING: return "T_NUM_STRING";
- case T_INLINE_HTML: return "T_INLINE_HTML";
- case T_CHARACTER: return "T_CHARACTER";
- case T_BAD_CHARACTER: return "T_BAD_CHARACTER";
- case T_ENCAPSED_AND_WHITESPACE: return "T_ENCAPSED_AND_WHITESPACE";
- case T_CONSTANT_ENCAPSED_STRING: return "T_CONSTANT_ENCAPSED_STRING";
- case T_ECHO: return "T_ECHO";
- case T_DO: return "T_DO";
- case T_WHILE: return "T_WHILE";
- case T_ENDWHILE: return "T_ENDWHILE";
- case T_FOR: return "T_FOR";
- case T_ENDFOR: return "T_ENDFOR";
- case T_FOREACH: return "T_FOREACH";
- case T_ENDFOREACH: return "T_ENDFOREACH";
- case T_DECLARE: return "T_DECLARE";
- case T_ENDDECLARE: return "T_ENDDECLARE";
- case T_AS: return "T_AS";
- case T_SWITCH: return "T_SWITCH";
- case T_ENDSWITCH: return "T_ENDSWITCH";
- case T_CASE: return "T_CASE";
- case T_DEFAULT: return "T_DEFAULT";
- case T_BREAK: return "T_BREAK";
- case T_CONTINUE: return "T_CONTINUE";
- case T_OLD_FUNCTION: return "T_OLD_FUNCTION";
- case T_FUNCTION: return "T_FUNCTION";
- case T_CONST: return "T_CONST";
- case T_RETURN: return "T_RETURN";
- case T_USE: return "T_USE";
- case T_GLOBAL: return "T_GLOBAL";
- case T_STATIC: return "T_STATIC";
- case T_VAR: return "T_VAR";
- case T_UNSET: return "T_UNSET";
- case T_ISSET: return "T_ISSET";
- case T_EMPTY: return "T_EMPTY";
- case T_CLASS: return "T_CLASS";
- case T_EXTENDS: return "T_EXTENDS";
- case T_OBJECT_OPERATOR: return "T_OBJECT_OPERATOR";
- case T_DOUBLE_ARROW: return "T_DOUBLE_ARROW";
- case T_LIST: return "T_LIST";
- case T_ARRAY: return "T_ARRAY";
- case T_CLASS_C: return "T_CLASS_C";
- case T_FUNC_C: return "T_FUNC_C";
- case T_LINE: return "T_LINE";
- case T_FILE: return "T_FILE";
- case T_COMMENT: return "T_COMMENT";
- case T_ML_COMMENT: return "T_ML_COMMENT";
- case T_OPEN_TAG: return "T_OPEN_TAG";
- case T_OPEN_TAG_WITH_ECHO: return "T_OPEN_TAG_WITH_ECHO";
- case T_CLOSE_TAG: return "T_CLOSE_TAG";
- case T_WHITESPACE: return "T_WHITESPACE";
- case T_START_HEREDOC: return "T_START_HEREDOC";
- case T_END_HEREDOC: return "T_END_HEREDOC";
- case T_DOLLAR_OPEN_CURLY_BRACES: return "T_DOLLAR_OPEN_CURLY_BRACES";
- case T_CURLY_OPEN: return "T_CURLY_OPEN";
- case T_PAAMAYIM_NEKUDOTAYIM: return "T_DOUBLE_COLON";
- }
- return "UNKNOWN";
+ switch (token_type) {
+ case T_INCLUDE: return "T_INCLUDE";
+ case T_INCLUDE_ONCE: return "T_INCLUDE_ONCE";
+ case T_EVAL: return "T_EVAL";
+ case T_REQUIRE: return "T_REQUIRE";
+ case T_REQUIRE_ONCE: return "T_REQUIRE_ONCE";
+ case T_LOGICAL_OR: return "T_LOGICAL_OR";
+ case T_LOGICAL_XOR: return "T_LOGICAL_XOR";
+ case T_LOGICAL_AND: return "T_LOGICAL_AND";
+ case T_PRINT: return "T_PRINT";
+ case T_PLUS_EQUAL: return "T_PLUS_EQUAL";
+ case T_MINUS_EQUAL: return "T_MINUS_EQUAL";
+ case T_MUL_EQUAL: return "T_MUL_EQUAL";
+ case T_DIV_EQUAL: return "T_DIV_EQUAL";
+ case T_CONCAT_EQUAL: return "T_CONCAT_EQUAL";
+ case T_MOD_EQUAL: return "T_MOD_EQUAL";
+ case T_AND_EQUAL: return "T_AND_EQUAL";
+ case T_OR_EQUAL: return "T_OR_EQUAL";
+ case T_XOR_EQUAL: return "T_XOR_EQUAL";
+ case T_SL_EQUAL: return "T_SL_EQUAL";
+ case T_SR_EQUAL: return "T_SR_EQUAL";
+ case T_BOOLEAN_OR: return "T_BOOLEAN_OR";
+ case T_BOOLEAN_AND: return "T_BOOLEAN_AND";
+ case T_IS_EQUAL: return "T_IS_EQUAL";
+ case T_IS_NOT_EQUAL: return "T_IS_NOT_EQUAL";
+ case T_IS_IDENTICAL: return "T_IS_IDENTICAL";
+ case T_IS_NOT_IDENTICAL: return "T_IS_NOT_IDENTICAL";
+ case T_IS_SMALLER_OR_EQUAL: return "T_IS_SMALLER_OR_EQUAL";
+ case T_IS_GREATER_OR_EQUAL: return "T_IS_GREATER_OR_EQUAL";
+ case T_SL: return "T_SL";
+ case T_SR: return "T_SR";
+ case T_INC: return "T_INC";
+ case T_DEC: return "T_DEC";
+ case T_INT_CAST: return "T_INT_CAST";
+ case T_DOUBLE_CAST: return "T_DOUBLE_CAST";
+ case T_STRING_CAST: return "T_STRING_CAST";
+ case T_ARRAY_CAST: return "T_ARRAY_CAST";
+ case T_OBJECT_CAST: return "T_OBJECT_CAST";
+ case T_BOOL_CAST: return "T_BOOL_CAST";
+ case T_UNSET_CAST: return "T_UNSET_CAST";
+ case T_NEW: return "T_NEW";
+ case T_EXIT: return "T_EXIT";
+ case T_IF: return "T_IF";
+ case T_ELSEIF: return "T_ELSEIF";
+ case T_ELSE: return "T_ELSE";
+ case T_ENDIF: return "T_ENDIF";
+ case T_LNUMBER: return "T_LNUMBER";
+ case T_DNUMBER: return "T_DNUMBER";
+ case T_STRING: return "T_STRING";
+ case T_STRING_VARNAME: return "T_STRING_VARNAME";
+ case T_VARIABLE: return "T_VARIABLE";
+ case T_NUM_STRING: return "T_NUM_STRING";
+ case T_INLINE_HTML: return "T_INLINE_HTML";
+ case T_CHARACTER: return "T_CHARACTER";
+ case T_BAD_CHARACTER: return "T_BAD_CHARACTER";
+ case T_ENCAPSED_AND_WHITESPACE: return "T_ENCAPSED_AND_WHITESPACE";
+ case T_CONSTANT_ENCAPSED_STRING: return "T_CONSTANT_ENCAPSED_STRING";
+ case T_ECHO: return "T_ECHO";
+ case T_DO: return "T_DO";
+ case T_WHILE: return "T_WHILE";
+ case T_ENDWHILE: return "T_ENDWHILE";
+ case T_FOR: return "T_FOR";
+ case T_ENDFOR: return "T_ENDFOR";
+ case T_FOREACH: return "T_FOREACH";
+ case T_ENDFOREACH: return "T_ENDFOREACH";
+ case T_DECLARE: return "T_DECLARE";
+ case T_ENDDECLARE: return "T_ENDDECLARE";
+ case T_AS: return "T_AS";
+ case T_SWITCH: return "T_SWITCH";
+ case T_ENDSWITCH: return "T_ENDSWITCH";
+ case T_CASE: return "T_CASE";
+ case T_DEFAULT: return "T_DEFAULT";
+ case T_BREAK: return "T_BREAK";
+ case T_CONTINUE: return "T_CONTINUE";
+ case T_OLD_FUNCTION: return "T_OLD_FUNCTION";
+ case T_FUNCTION: return "T_FUNCTION";
+ case T_CONST: return "T_CONST";
+ case T_RETURN: return "T_RETURN";
+ case T_USE: return "T_USE";
+ case T_GLOBAL: return "T_GLOBAL";
+ case T_STATIC: return "T_STATIC";
+ case T_VAR: return "T_VAR";
+ case T_UNSET: return "T_UNSET";
+ case T_ISSET: return "T_ISSET";
+ case T_EMPTY: return "T_EMPTY";
+ case T_CLASS: return "T_CLASS";
+ case T_EXTENDS: return "T_EXTENDS";
+ case T_OBJECT_OPERATOR: return "T_OBJECT_OPERATOR";
+ case T_DOUBLE_ARROW: return "T_DOUBLE_ARROW";
+ case T_LIST: return "T_LIST";
+ case T_ARRAY: return "T_ARRAY";
+ case T_CLASS_C: return "T_CLASS_C";
+ case T_FUNC_C: return "T_FUNC_C";
+ case T_LINE: return "T_LINE";
+ case T_FILE: return "T_FILE";
+ case T_COMMENT: return "T_COMMENT";
+ case T_ML_COMMENT: return "T_ML_COMMENT";
+ case T_OPEN_TAG: return "T_OPEN_TAG";
+ case T_OPEN_TAG_WITH_ECHO: return "T_OPEN_TAG_WITH_ECHO";
+ case T_CLOSE_TAG: return "T_CLOSE_TAG";
+ case T_WHITESPACE: return "T_WHITESPACE";
+ case T_START_HEREDOC: return "T_START_HEREDOC";
+ case T_END_HEREDOC: return "T_END_HEREDOC";
+ case T_DOLLAR_OPEN_CURLY_BRACES: return "T_DOLLAR_OPEN_CURLY_BRACES";
+ case T_CURLY_OPEN: return "T_CURLY_OPEN";
+ case T_PAAMAYIM_NEKUDOTAYIM: return "T_DOUBLE_COLON";
+ }
+ return "UNKNOWN";
}
-
-
/* {{{ proto array token_get_all(string source)
- */
+ */
PHP_FUNCTION(token_get_all)
{
char *source = NULL;
/* {{{ proto string token_name(int type)
*/
-
PHP_FUNCTION(token_name)
{
- int argc = ZEND_NUM_ARGS();
- long type;
+ int argc = ZEND_NUM_ARGS();
+ long type;
- if (zend_parse_parameters(argc TSRMLS_CC, "l", &type) == FAILURE) {
- return;
- }
- RETVAL_STRING(get_token_type_name(type), 1);
+ if (zend_parse_parameters(argc TSRMLS_CC, "l", &type) == FAILURE) {
+ return;
+ }
+ RETVAL_STRING(get_token_type_name(type), 1);
}
-
/* }}} */
-
/*
* Local variables:
* tab-width: 4