Declare ext/tokenizer constants in stubs (#9148)

This commit is contained in:
Máté Kocsis 2022-08-01 10:50:56 +02:00 committed by GitHub
parent dd9f47758e
commit 59d257d1ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 938 additions and 187 deletions

View file

@ -9,7 +9,7 @@ runs:
scripts/dev/credits
scripts/dev/genfiles
Zend/zend_vm_gen.php
ext/tokenizer/tokenizer_data_gen.php
build/gen_stub.php -f
build/gen_stub.php --generate-optimizer-info
ext/tokenizer/tokenizer_data_gen.php
git add . -N && git diff --exit-code

View file

@ -23,11 +23,12 @@ extern zend_module_entry tokenizer_module_entry;
#include "php_version.h"
#define PHP_TOKENIZER_VERSION PHP_VERSION
#define TOKEN_PARSE (1 << 0)
#ifdef ZTS
#include "TSRM.h"
#endif
void tokenizer_register_constants(INIT_FUNC_ARGS);
char *get_token_type_name(int token_type);

View file

@ -22,7 +22,6 @@
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_tokenizer.h"
#include "tokenizer_arginfo.h"
#include "zend.h"
#include "zend_exceptions.h"
@ -31,19 +30,16 @@
#include <zend_language_parser.h>
#include "zend_interfaces.h"
#include "tokenizer_data_arginfo.h"
#include "tokenizer_arginfo.h"
#define zendtext LANG_SCNG(yy_text)
#define zendleng LANG_SCNG(yy_leng)
#define zendcursor LANG_SCNG(yy_cursor)
#define zendlimit LANG_SCNG(yy_limit)
#define TOKEN_PARSE (1 << 0)
zend_class_entry *php_token_ce;
void tokenizer_token_get_all_register_constants(INIT_FUNC_ARGS) {
REGISTER_LONG_CONSTANT("TOKEN_PARSE", TOKEN_PARSE, CONST_CS|CONST_PERSISTENT);
}
/* {{{ tokenizer_module_entry */
zend_module_entry tokenizer_module_entry = {
STANDARD_MODULE_HEADER,
@ -251,8 +247,8 @@ PHP_METHOD(PhpToken, __toString)
/* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(tokenizer)
{
tokenizer_register_constants(INIT_FUNC_ARGS_PASSTHRU);
tokenizer_token_get_all_register_constants(INIT_FUNC_ARGS_PASSTHRU);
register_tokenizer_data_symbols(module_number);
register_tokenizer_symbols(module_number);
php_token_ce = register_class_PhpToken(zend_ce_stringable);
return SUCCESS;

View file

@ -2,6 +2,12 @@
/** @generate-class-entries */
/**
* @var int
* @cvalue TOKEN_PARSE
*/
const TOKEN_PARSE = UNKNOWN;
function token_get_all(string $code, int $flags = 0): array {}
function token_name(int $id): string {}

View file

@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 60b4c809624eb4c1ef610e5c5820acfc87f6b07f */
* Stub hash: a89f03303f8a7d254509ae2bc46a36bb79a3c900 */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_token_get_all, 0, 1, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO(0, code, IS_STRING, 0)
@ -60,6 +60,11 @@ static const zend_function_entry class_PhpToken_methods[] = {
ZEND_FE_END
};
static void register_tokenizer_symbols(int module_number)
{
REGISTER_LONG_CONSTANT("TOKEN_PARSE", TOKEN_PARSE, CONST_CS | CONST_PERSISTENT);
}
static zend_class_entry *register_class_PhpToken(zend_class_entry *class_entry_Stringable)
{
zend_class_entry ce, *class_entry;

View file

@ -23,157 +23,6 @@
#include "zend.h"
#include <zend_language_parser.h>
void tokenizer_register_constants(INIT_FUNC_ARGS) {
REGISTER_LONG_CONSTANT("T_LNUMBER", T_LNUMBER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DNUMBER", T_DNUMBER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_STRING", T_STRING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NAME_FULLY_QUALIFIED", T_NAME_FULLY_QUALIFIED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NAME_RELATIVE", T_NAME_RELATIVE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NAME_QUALIFIED", T_NAME_QUALIFIED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_VARIABLE", T_VARIABLE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INLINE_HTML", T_INLINE_HTML, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENCAPSED_AND_WHITESPACE", T_ENCAPSED_AND_WHITESPACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CONSTANT_ENCAPSED_STRING", T_CONSTANT_ENCAPSED_STRING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_STRING_VARNAME", T_STRING_VARNAME, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NUM_STRING", T_NUM_STRING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INCLUDE", T_INCLUDE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INCLUDE_ONCE", T_INCLUDE_ONCE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EVAL", T_EVAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_REQUIRE", T_REQUIRE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_REQUIRE_ONCE", T_REQUIRE_ONCE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LOGICAL_OR", T_LOGICAL_OR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LOGICAL_XOR", T_LOGICAL_XOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LOGICAL_AND", T_LOGICAL_AND, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PRINT", T_PRINT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_YIELD", T_YIELD, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_YIELD_FROM", T_YIELD_FROM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INSTANCEOF", T_INSTANCEOF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NEW", T_NEW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLONE", T_CLONE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EXIT", T_EXIT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IF", T_IF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ELSEIF", T_ELSEIF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ELSE", T_ELSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDIF", T_ENDIF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ECHO", T_ECHO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DO", T_DO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_WHILE", T_WHILE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDWHILE", T_ENDWHILE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FOR", T_FOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDFOR", T_ENDFOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FOREACH", T_FOREACH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDFOREACH", T_ENDFOREACH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DECLARE", T_DECLARE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDDECLARE", T_ENDDECLARE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_AS", T_AS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SWITCH", T_SWITCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDSWITCH", T_ENDSWITCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CASE", T_CASE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DEFAULT", T_DEFAULT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_MATCH", T_MATCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BREAK", T_BREAK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CONTINUE", T_CONTINUE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_GOTO", T_GOTO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FUNCTION", T_FUNCTION, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FN", T_FN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CONST", T_CONST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_RETURN", T_RETURN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_TRY", T_TRY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CATCH", T_CATCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FINALLY", T_FINALLY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_THROW", T_THROW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_USE", T_USE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INSTEADOF", T_INSTEADOF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_GLOBAL", T_GLOBAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_STATIC", T_STATIC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ABSTRACT", T_ABSTRACT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FINAL", T_FINAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PRIVATE", T_PRIVATE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PROTECTED", T_PROTECTED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PUBLIC", T_PUBLIC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_READONLY", T_READONLY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_VAR", T_VAR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_UNSET", T_UNSET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ISSET", T_ISSET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EMPTY", T_EMPTY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_HALT_COMPILER", T_HALT_COMPILER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLASS", T_CLASS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_TRAIT", T_TRAIT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INTERFACE", T_INTERFACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENUM", T_ENUM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EXTENDS", T_EXTENDS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IMPLEMENTS", T_IMPLEMENTS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NAMESPACE", T_NAMESPACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LIST", T_LIST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ARRAY", T_ARRAY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CALLABLE", T_CALLABLE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LINE", T_LINE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FILE", T_FILE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DIR", T_DIR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLASS_C", T_CLASS_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_TRAIT_C", T_TRAIT_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_METHOD_C", T_METHOD_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FUNC_C", T_FUNC_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NS_C", T_NS_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ATTRIBUTE", T_ATTRIBUTE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PLUS_EQUAL", T_PLUS_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_MINUS_EQUAL", T_MINUS_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_MUL_EQUAL", T_MUL_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DIV_EQUAL", T_DIV_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CONCAT_EQUAL", T_CONCAT_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_MOD_EQUAL", T_MOD_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_AND_EQUAL", T_AND_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OR_EQUAL", T_OR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_XOR_EQUAL", T_XOR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SL_EQUAL", T_SL_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SR_EQUAL", T_SR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_COALESCE_EQUAL", T_COALESCE_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BOOLEAN_OR", T_BOOLEAN_OR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BOOLEAN_AND", T_BOOLEAN_AND, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_EQUAL", T_IS_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_NOT_EQUAL", T_IS_NOT_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_IDENTICAL", T_IS_IDENTICAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_NOT_IDENTICAL", T_IS_NOT_IDENTICAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_SMALLER_OR_EQUAL", T_IS_SMALLER_OR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_GREATER_OR_EQUAL", T_IS_GREATER_OR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SPACESHIP", T_SPACESHIP, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SL", T_SL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SR", T_SR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INC", T_INC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DEC", T_DEC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INT_CAST", T_INT_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOUBLE_CAST", T_DOUBLE_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_STRING_CAST", T_STRING_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ARRAY_CAST", T_ARRAY_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OBJECT_CAST", T_OBJECT_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BOOL_CAST", T_BOOL_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_UNSET_CAST", T_UNSET_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OBJECT_OPERATOR", T_OBJECT_OPERATOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NULLSAFE_OBJECT_OPERATOR", T_NULLSAFE_OBJECT_OPERATOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOUBLE_ARROW", T_DOUBLE_ARROW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_COMMENT", T_COMMENT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOC_COMMENT", T_DOC_COMMENT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OPEN_TAG", T_OPEN_TAG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OPEN_TAG_WITH_ECHO", T_OPEN_TAG_WITH_ECHO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLOSE_TAG", T_CLOSE_TAG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_WHITESPACE", T_WHITESPACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_START_HEREDOC", T_START_HEREDOC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_END_HEREDOC", T_END_HEREDOC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOLLAR_OPEN_CURLY_BRACES", T_DOLLAR_OPEN_CURLY_BRACES, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CURLY_OPEN", T_CURLY_OPEN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PAAMAYIM_NEKUDOTAYIM", T_PAAMAYIM_NEKUDOTAYIM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NS_SEPARATOR", T_NS_SEPARATOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ELLIPSIS", T_ELLIPSIS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_COALESCE", T_COALESCE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_POW", T_POW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_POW_EQUAL", T_POW_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG", T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG", T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BAD_CHARACTER", T_BAD_CHARACTER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOUBLE_COLON", T_PAAMAYIM_NEKUDOTAYIM, CONST_CS | CONST_PERSISTENT);
}
char *get_token_type_name(int token_type)
{
switch (token_type) {

View file

@ -0,0 +1,739 @@
<?php
/** @generate-class-entries */
/**
* @var int
* @cvalue T_LNUMBER
*/
const T_LNUMBER = UNKNOWN;
/**
* @var int
* @cvalue T_DNUMBER
*/
const T_DNUMBER = UNKNOWN;
/**
* @var int
* @cvalue T_STRING
*/
const T_STRING = UNKNOWN;
/**
* @var int
* @cvalue T_NAME_FULLY_QUALIFIED
*/
const T_NAME_FULLY_QUALIFIED = UNKNOWN;
/**
* @var int
* @cvalue T_NAME_RELATIVE
*/
const T_NAME_RELATIVE = UNKNOWN;
/**
* @var int
* @cvalue T_NAME_QUALIFIED
*/
const T_NAME_QUALIFIED = UNKNOWN;
/**
* @var int
* @cvalue T_VARIABLE
*/
const T_VARIABLE = UNKNOWN;
/**
* @var int
* @cvalue T_INLINE_HTML
*/
const T_INLINE_HTML = UNKNOWN;
/**
* @var int
* @cvalue T_ENCAPSED_AND_WHITESPACE
*/
const T_ENCAPSED_AND_WHITESPACE = UNKNOWN;
/**
* @var int
* @cvalue T_CONSTANT_ENCAPSED_STRING
*/
const T_CONSTANT_ENCAPSED_STRING = UNKNOWN;
/**
* @var int
* @cvalue T_STRING_VARNAME
*/
const T_STRING_VARNAME = UNKNOWN;
/**
* @var int
* @cvalue T_NUM_STRING
*/
const T_NUM_STRING = UNKNOWN;
/**
* @var int
* @cvalue T_INCLUDE
*/
const T_INCLUDE = UNKNOWN;
/**
* @var int
* @cvalue T_INCLUDE_ONCE
*/
const T_INCLUDE_ONCE = UNKNOWN;
/**
* @var int
* @cvalue T_EVAL
*/
const T_EVAL = UNKNOWN;
/**
* @var int
* @cvalue T_REQUIRE
*/
const T_REQUIRE = UNKNOWN;
/**
* @var int
* @cvalue T_REQUIRE_ONCE
*/
const T_REQUIRE_ONCE = UNKNOWN;
/**
* @var int
* @cvalue T_LOGICAL_OR
*/
const T_LOGICAL_OR = UNKNOWN;
/**
* @var int
* @cvalue T_LOGICAL_XOR
*/
const T_LOGICAL_XOR = UNKNOWN;
/**
* @var int
* @cvalue T_LOGICAL_AND
*/
const T_LOGICAL_AND = UNKNOWN;
/**
* @var int
* @cvalue T_PRINT
*/
const T_PRINT = UNKNOWN;
/**
* @var int
* @cvalue T_YIELD
*/
const T_YIELD = UNKNOWN;
/**
* @var int
* @cvalue T_YIELD_FROM
*/
const T_YIELD_FROM = UNKNOWN;
/**
* @var int
* @cvalue T_INSTANCEOF
*/
const T_INSTANCEOF = UNKNOWN;
/**
* @var int
* @cvalue T_NEW
*/
const T_NEW = UNKNOWN;
/**
* @var int
* @cvalue T_CLONE
*/
const T_CLONE = UNKNOWN;
/**
* @var int
* @cvalue T_EXIT
*/
const T_EXIT = UNKNOWN;
/**
* @var int
* @cvalue T_IF
*/
const T_IF = UNKNOWN;
/**
* @var int
* @cvalue T_ELSEIF
*/
const T_ELSEIF = UNKNOWN;
/**
* @var int
* @cvalue T_ELSE
*/
const T_ELSE = UNKNOWN;
/**
* @var int
* @cvalue T_ENDIF
*/
const T_ENDIF = UNKNOWN;
/**
* @var int
* @cvalue T_ECHO
*/
const T_ECHO = UNKNOWN;
/**
* @var int
* @cvalue T_DO
*/
const T_DO = UNKNOWN;
/**
* @var int
* @cvalue T_WHILE
*/
const T_WHILE = UNKNOWN;
/**
* @var int
* @cvalue T_ENDWHILE
*/
const T_ENDWHILE = UNKNOWN;
/**
* @var int
* @cvalue T_FOR
*/
const T_FOR = UNKNOWN;
/**
* @var int
* @cvalue T_ENDFOR
*/
const T_ENDFOR = UNKNOWN;
/**
* @var int
* @cvalue T_FOREACH
*/
const T_FOREACH = UNKNOWN;
/**
* @var int
* @cvalue T_ENDFOREACH
*/
const T_ENDFOREACH = UNKNOWN;
/**
* @var int
* @cvalue T_DECLARE
*/
const T_DECLARE = UNKNOWN;
/**
* @var int
* @cvalue T_ENDDECLARE
*/
const T_ENDDECLARE = UNKNOWN;
/**
* @var int
* @cvalue T_AS
*/
const T_AS = UNKNOWN;
/**
* @var int
* @cvalue T_SWITCH
*/
const T_SWITCH = UNKNOWN;
/**
* @var int
* @cvalue T_ENDSWITCH
*/
const T_ENDSWITCH = UNKNOWN;
/**
* @var int
* @cvalue T_CASE
*/
const T_CASE = UNKNOWN;
/**
* @var int
* @cvalue T_DEFAULT
*/
const T_DEFAULT = UNKNOWN;
/**
* @var int
* @cvalue T_MATCH
*/
const T_MATCH = UNKNOWN;
/**
* @var int
* @cvalue T_BREAK
*/
const T_BREAK = UNKNOWN;
/**
* @var int
* @cvalue T_CONTINUE
*/
const T_CONTINUE = UNKNOWN;
/**
* @var int
* @cvalue T_GOTO
*/
const T_GOTO = UNKNOWN;
/**
* @var int
* @cvalue T_FUNCTION
*/
const T_FUNCTION = UNKNOWN;
/**
* @var int
* @cvalue T_FN
*/
const T_FN = UNKNOWN;
/**
* @var int
* @cvalue T_CONST
*/
const T_CONST = UNKNOWN;
/**
* @var int
* @cvalue T_RETURN
*/
const T_RETURN = UNKNOWN;
/**
* @var int
* @cvalue T_TRY
*/
const T_TRY = UNKNOWN;
/**
* @var int
* @cvalue T_CATCH
*/
const T_CATCH = UNKNOWN;
/**
* @var int
* @cvalue T_FINALLY
*/
const T_FINALLY = UNKNOWN;
/**
* @var int
* @cvalue T_THROW
*/
const T_THROW = UNKNOWN;
/**
* @var int
* @cvalue T_USE
*/
const T_USE = UNKNOWN;
/**
* @var int
* @cvalue T_INSTEADOF
*/
const T_INSTEADOF = UNKNOWN;
/**
* @var int
* @cvalue T_GLOBAL
*/
const T_GLOBAL = UNKNOWN;
/**
* @var int
* @cvalue T_STATIC
*/
const T_STATIC = UNKNOWN;
/**
* @var int
* @cvalue T_ABSTRACT
*/
const T_ABSTRACT = UNKNOWN;
/**
* @var int
* @cvalue T_FINAL
*/
const T_FINAL = UNKNOWN;
/**
* @var int
* @cvalue T_PRIVATE
*/
const T_PRIVATE = UNKNOWN;
/**
* @var int
* @cvalue T_PROTECTED
*/
const T_PROTECTED = UNKNOWN;
/**
* @var int
* @cvalue T_PUBLIC
*/
const T_PUBLIC = UNKNOWN;
/**
* @var int
* @cvalue T_READONLY
*/
const T_READONLY = UNKNOWN;
/**
* @var int
* @cvalue T_VAR
*/
const T_VAR = UNKNOWN;
/**
* @var int
* @cvalue T_UNSET
*/
const T_UNSET = UNKNOWN;
/**
* @var int
* @cvalue T_ISSET
*/
const T_ISSET = UNKNOWN;
/**
* @var int
* @cvalue T_EMPTY
*/
const T_EMPTY = UNKNOWN;
/**
* @var int
* @cvalue T_HALT_COMPILER
*/
const T_HALT_COMPILER = UNKNOWN;
/**
* @var int
* @cvalue T_CLASS
*/
const T_CLASS = UNKNOWN;
/**
* @var int
* @cvalue T_TRAIT
*/
const T_TRAIT = UNKNOWN;
/**
* @var int
* @cvalue T_INTERFACE
*/
const T_INTERFACE = UNKNOWN;
/**
* @var int
* @cvalue T_ENUM
*/
const T_ENUM = UNKNOWN;
/**
* @var int
* @cvalue T_EXTENDS
*/
const T_EXTENDS = UNKNOWN;
/**
* @var int
* @cvalue T_IMPLEMENTS
*/
const T_IMPLEMENTS = UNKNOWN;
/**
* @var int
* @cvalue T_NAMESPACE
*/
const T_NAMESPACE = UNKNOWN;
/**
* @var int
* @cvalue T_LIST
*/
const T_LIST = UNKNOWN;
/**
* @var int
* @cvalue T_ARRAY
*/
const T_ARRAY = UNKNOWN;
/**
* @var int
* @cvalue T_CALLABLE
*/
const T_CALLABLE = UNKNOWN;
/**
* @var int
* @cvalue T_LINE
*/
const T_LINE = UNKNOWN;
/**
* @var int
* @cvalue T_FILE
*/
const T_FILE = UNKNOWN;
/**
* @var int
* @cvalue T_DIR
*/
const T_DIR = UNKNOWN;
/**
* @var int
* @cvalue T_CLASS_C
*/
const T_CLASS_C = UNKNOWN;
/**
* @var int
* @cvalue T_TRAIT_C
*/
const T_TRAIT_C = UNKNOWN;
/**
* @var int
* @cvalue T_METHOD_C
*/
const T_METHOD_C = UNKNOWN;
/**
* @var int
* @cvalue T_FUNC_C
*/
const T_FUNC_C = UNKNOWN;
/**
* @var int
* @cvalue T_NS_C
*/
const T_NS_C = UNKNOWN;
/**
* @var int
* @cvalue T_ATTRIBUTE
*/
const T_ATTRIBUTE = UNKNOWN;
/**
* @var int
* @cvalue T_PLUS_EQUAL
*/
const T_PLUS_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_MINUS_EQUAL
*/
const T_MINUS_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_MUL_EQUAL
*/
const T_MUL_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_DIV_EQUAL
*/
const T_DIV_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_CONCAT_EQUAL
*/
const T_CONCAT_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_MOD_EQUAL
*/
const T_MOD_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_AND_EQUAL
*/
const T_AND_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_OR_EQUAL
*/
const T_OR_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_XOR_EQUAL
*/
const T_XOR_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_SL_EQUAL
*/
const T_SL_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_SR_EQUAL
*/
const T_SR_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_COALESCE_EQUAL
*/
const T_COALESCE_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_BOOLEAN_OR
*/
const T_BOOLEAN_OR = UNKNOWN;
/**
* @var int
* @cvalue T_BOOLEAN_AND
*/
const T_BOOLEAN_AND = UNKNOWN;
/**
* @var int
* @cvalue T_IS_EQUAL
*/
const T_IS_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_IS_NOT_EQUAL
*/
const T_IS_NOT_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_IS_IDENTICAL
*/
const T_IS_IDENTICAL = UNKNOWN;
/**
* @var int
* @cvalue T_IS_NOT_IDENTICAL
*/
const T_IS_NOT_IDENTICAL = UNKNOWN;
/**
* @var int
* @cvalue T_IS_SMALLER_OR_EQUAL
*/
const T_IS_SMALLER_OR_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_IS_GREATER_OR_EQUAL
*/
const T_IS_GREATER_OR_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_SPACESHIP
*/
const T_SPACESHIP = UNKNOWN;
/**
* @var int
* @cvalue T_SL
*/
const T_SL = UNKNOWN;
/**
* @var int
* @cvalue T_SR
*/
const T_SR = UNKNOWN;
/**
* @var int
* @cvalue T_INC
*/
const T_INC = UNKNOWN;
/**
* @var int
* @cvalue T_DEC
*/
const T_DEC = UNKNOWN;
/**
* @var int
* @cvalue T_INT_CAST
*/
const T_INT_CAST = UNKNOWN;
/**
* @var int
* @cvalue T_DOUBLE_CAST
*/
const T_DOUBLE_CAST = UNKNOWN;
/**
* @var int
* @cvalue T_STRING_CAST
*/
const T_STRING_CAST = UNKNOWN;
/**
* @var int
* @cvalue T_ARRAY_CAST
*/
const T_ARRAY_CAST = UNKNOWN;
/**
* @var int
* @cvalue T_OBJECT_CAST
*/
const T_OBJECT_CAST = UNKNOWN;
/**
* @var int
* @cvalue T_BOOL_CAST
*/
const T_BOOL_CAST = UNKNOWN;
/**
* @var int
* @cvalue T_UNSET_CAST
*/
const T_UNSET_CAST = UNKNOWN;
/**
* @var int
* @cvalue T_OBJECT_OPERATOR
*/
const T_OBJECT_OPERATOR = UNKNOWN;
/**
* @var int
* @cvalue T_NULLSAFE_OBJECT_OPERATOR
*/
const T_NULLSAFE_OBJECT_OPERATOR = UNKNOWN;
/**
* @var int
* @cvalue T_DOUBLE_ARROW
*/
const T_DOUBLE_ARROW = UNKNOWN;
/**
* @var int
* @cvalue T_COMMENT
*/
const T_COMMENT = UNKNOWN;
/**
* @var int
* @cvalue T_DOC_COMMENT
*/
const T_DOC_COMMENT = UNKNOWN;
/**
* @var int
* @cvalue T_OPEN_TAG
*/
const T_OPEN_TAG = UNKNOWN;
/**
* @var int
* @cvalue T_OPEN_TAG_WITH_ECHO
*/
const T_OPEN_TAG_WITH_ECHO = UNKNOWN;
/**
* @var int
* @cvalue T_CLOSE_TAG
*/
const T_CLOSE_TAG = UNKNOWN;
/**
* @var int
* @cvalue T_WHITESPACE
*/
const T_WHITESPACE = UNKNOWN;
/**
* @var int
* @cvalue T_START_HEREDOC
*/
const T_START_HEREDOC = UNKNOWN;
/**
* @var int
* @cvalue T_END_HEREDOC
*/
const T_END_HEREDOC = UNKNOWN;
/**
* @var int
* @cvalue T_DOLLAR_OPEN_CURLY_BRACES
*/
const T_DOLLAR_OPEN_CURLY_BRACES = UNKNOWN;
/**
* @var int
* @cvalue T_CURLY_OPEN
*/
const T_CURLY_OPEN = UNKNOWN;
/**
* @var int
* @cvalue T_PAAMAYIM_NEKUDOTAYIM
*/
const T_PAAMAYIM_NEKUDOTAYIM = UNKNOWN;
/**
* @var int
* @cvalue T_NS_SEPARATOR
*/
const T_NS_SEPARATOR = UNKNOWN;
/**
* @var int
* @cvalue T_ELLIPSIS
*/
const T_ELLIPSIS = UNKNOWN;
/**
* @var int
* @cvalue T_COALESCE
*/
const T_COALESCE = UNKNOWN;
/**
* @var int
* @cvalue T_POW
*/
const T_POW = UNKNOWN;
/**
* @var int
* @cvalue T_POW_EQUAL
*/
const T_POW_EQUAL = UNKNOWN;
/**
* @var int
* @cvalue T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG
*/
const T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG = UNKNOWN;
/**
* @var int
* @cvalue T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG
*/
const T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG = UNKNOWN;
/**
* @var int
* @cvalue T_BAD_CHARACTER
*/
const T_BAD_CHARACTER = UNKNOWN;
/**
* @var int
* @cvalue T_PAAMAYIM_NEKUDOTAYIM
*/
const T_DOUBLE_COLON = UNKNOWN;

155
ext/tokenizer/tokenizer_data_arginfo.h generated Normal file
View file

@ -0,0 +1,155 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 1dd42ee5b5b818c5bd131b5c4bbb13c153d99499 */
static void register_tokenizer_data_symbols(int module_number)
{
REGISTER_LONG_CONSTANT("T_LNUMBER", T_LNUMBER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DNUMBER", T_DNUMBER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_STRING", T_STRING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NAME_FULLY_QUALIFIED", T_NAME_FULLY_QUALIFIED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NAME_RELATIVE", T_NAME_RELATIVE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NAME_QUALIFIED", T_NAME_QUALIFIED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_VARIABLE", T_VARIABLE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INLINE_HTML", T_INLINE_HTML, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENCAPSED_AND_WHITESPACE", T_ENCAPSED_AND_WHITESPACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CONSTANT_ENCAPSED_STRING", T_CONSTANT_ENCAPSED_STRING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_STRING_VARNAME", T_STRING_VARNAME, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NUM_STRING", T_NUM_STRING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INCLUDE", T_INCLUDE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INCLUDE_ONCE", T_INCLUDE_ONCE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EVAL", T_EVAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_REQUIRE", T_REQUIRE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_REQUIRE_ONCE", T_REQUIRE_ONCE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LOGICAL_OR", T_LOGICAL_OR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LOGICAL_XOR", T_LOGICAL_XOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LOGICAL_AND", T_LOGICAL_AND, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PRINT", T_PRINT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_YIELD", T_YIELD, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_YIELD_FROM", T_YIELD_FROM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INSTANCEOF", T_INSTANCEOF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NEW", T_NEW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLONE", T_CLONE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EXIT", T_EXIT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IF", T_IF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ELSEIF", T_ELSEIF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ELSE", T_ELSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDIF", T_ENDIF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ECHO", T_ECHO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DO", T_DO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_WHILE", T_WHILE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDWHILE", T_ENDWHILE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FOR", T_FOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDFOR", T_ENDFOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FOREACH", T_FOREACH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDFOREACH", T_ENDFOREACH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DECLARE", T_DECLARE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDDECLARE", T_ENDDECLARE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_AS", T_AS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SWITCH", T_SWITCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENDSWITCH", T_ENDSWITCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CASE", T_CASE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DEFAULT", T_DEFAULT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_MATCH", T_MATCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BREAK", T_BREAK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CONTINUE", T_CONTINUE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_GOTO", T_GOTO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FUNCTION", T_FUNCTION, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FN", T_FN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CONST", T_CONST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_RETURN", T_RETURN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_TRY", T_TRY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CATCH", T_CATCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FINALLY", T_FINALLY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_THROW", T_THROW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_USE", T_USE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INSTEADOF", T_INSTEADOF, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_GLOBAL", T_GLOBAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_STATIC", T_STATIC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ABSTRACT", T_ABSTRACT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FINAL", T_FINAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PRIVATE", T_PRIVATE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PROTECTED", T_PROTECTED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PUBLIC", T_PUBLIC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_READONLY", T_READONLY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_VAR", T_VAR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_UNSET", T_UNSET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ISSET", T_ISSET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EMPTY", T_EMPTY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_HALT_COMPILER", T_HALT_COMPILER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLASS", T_CLASS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_TRAIT", T_TRAIT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INTERFACE", T_INTERFACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ENUM", T_ENUM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EXTENDS", T_EXTENDS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IMPLEMENTS", T_IMPLEMENTS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NAMESPACE", T_NAMESPACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LIST", T_LIST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ARRAY", T_ARRAY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CALLABLE", T_CALLABLE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_LINE", T_LINE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FILE", T_FILE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DIR", T_DIR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLASS_C", T_CLASS_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_TRAIT_C", T_TRAIT_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_METHOD_C", T_METHOD_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_FUNC_C", T_FUNC_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NS_C", T_NS_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ATTRIBUTE", T_ATTRIBUTE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PLUS_EQUAL", T_PLUS_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_MINUS_EQUAL", T_MINUS_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_MUL_EQUAL", T_MUL_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DIV_EQUAL", T_DIV_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CONCAT_EQUAL", T_CONCAT_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_MOD_EQUAL", T_MOD_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_AND_EQUAL", T_AND_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OR_EQUAL", T_OR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_XOR_EQUAL", T_XOR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SL_EQUAL", T_SL_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SR_EQUAL", T_SR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_COALESCE_EQUAL", T_COALESCE_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BOOLEAN_OR", T_BOOLEAN_OR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BOOLEAN_AND", T_BOOLEAN_AND, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_EQUAL", T_IS_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_NOT_EQUAL", T_IS_NOT_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_IDENTICAL", T_IS_IDENTICAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_NOT_IDENTICAL", T_IS_NOT_IDENTICAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_SMALLER_OR_EQUAL", T_IS_SMALLER_OR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_IS_GREATER_OR_EQUAL", T_IS_GREATER_OR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SPACESHIP", T_SPACESHIP, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SL", T_SL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SR", T_SR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INC", T_INC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DEC", T_DEC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INT_CAST", T_INT_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOUBLE_CAST", T_DOUBLE_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_STRING_CAST", T_STRING_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ARRAY_CAST", T_ARRAY_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OBJECT_CAST", T_OBJECT_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BOOL_CAST", T_BOOL_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_UNSET_CAST", T_UNSET_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OBJECT_OPERATOR", T_OBJECT_OPERATOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NULLSAFE_OBJECT_OPERATOR", T_NULLSAFE_OBJECT_OPERATOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOUBLE_ARROW", T_DOUBLE_ARROW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_COMMENT", T_COMMENT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOC_COMMENT", T_DOC_COMMENT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OPEN_TAG", T_OPEN_TAG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_OPEN_TAG_WITH_ECHO", T_OPEN_TAG_WITH_ECHO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLOSE_TAG", T_CLOSE_TAG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_WHITESPACE", T_WHITESPACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_START_HEREDOC", T_START_HEREDOC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_END_HEREDOC", T_END_HEREDOC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOLLAR_OPEN_CURLY_BRACES", T_DOLLAR_OPEN_CURLY_BRACES, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CURLY_OPEN", T_CURLY_OPEN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PAAMAYIM_NEKUDOTAYIM", T_PAAMAYIM_NEKUDOTAYIM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NS_SEPARATOR", T_NS_SEPARATOR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_ELLIPSIS", T_ELLIPSIS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_COALESCE", T_COALESCE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_POW", T_POW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_POW_EQUAL", T_POW_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG", T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG", T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_BAD_CHARACTER", T_BAD_CHARACTER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DOUBLE_COLON", T_PAAMAYIM_NEKUDOTAYIM, CONST_CS | CONST_PERSISTENT);
}

View file

@ -2,7 +2,8 @@
<?php
$infile = __DIR__ . '/../../Zend/zend_language_parser.y';
$outfile = __DIR__ . '/tokenizer_data.c';
$outfile_stub = __DIR__ . '/tokenizer_data.stub.php';
$outfile_c = __DIR__ . '/tokenizer_data.c';
if (!file_exists($infile)) {
fwrite(STDERR, <<<ERROR
@ -15,9 +16,27 @@ ERROR
exit(1);
}
$result = '';
$result = "<?php\n\n/** @generate-class-entries */\n\n";
$result .= <<<CODE
$incontent = file_get_contents($infile);
preg_match_all('(^%token.*\b(?<token_name>T_.*?)\b)m', $incontent, $matches);
foreach ($matches['token_name'] as $tokenName) {
if ($tokenName === 'T_NOELSE' || $tokenName === 'T_ERROR') {
continue;
}
$result .= "/**\n * @var int\n * @cvalue $tokenName\n */\n";
$result .= "const $tokenName = UNKNOWN;\n";
}
$result .= "/**\n * @var int\n * @cvalue T_PAAMAYIM_NEKUDOTAYIM\n */\n";
$result .= "const T_DOUBLE_COLON = UNKNOWN;\n";
file_put_contents($outfile_stub, $result);
echo "Wrote $outfile_stub\n";
$result = <<<CODE
/*
+----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
@ -43,25 +62,6 @@ $result .= <<<CODE
#include "zend.h"
#include <zend_language_parser.h>
void tokenizer_register_constants(INIT_FUNC_ARGS) {
CODE;
$incontent = file_get_contents($infile);
preg_match_all('(^%token.*\b(?<token_name>T_.*?)\b)m', $incontent, $matches);
foreach ($matches['token_name'] as $tokenName) {
if ($tokenName === 'T_NOELSE' || $tokenName === 'T_ERROR') {
continue;
}
$result .= "\tREGISTER_LONG_CONSTANT(\"$tokenName\", $tokenName, CONST_CS | CONST_PERSISTENT);\n";
}
$result .= "\tREGISTER_LONG_CONSTANT(\"T_DOUBLE_COLON\", T_PAAMAYIM_NEKUDOTAYIM, CONST_CS | CONST_PERSISTENT);\n";
$result .= <<<CODE
}
char *get_token_type_name(int token_type)
{
\tswitch (token_type) {
@ -89,6 +89,6 @@ $result .= <<<CODE
CODE;
file_put_contents($outfile, $result);
file_put_contents($outfile_c, $result);
echo "Wrote $outfile\n";
echo "Wrote $outfile_c\n";