php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_language_scanner.h
Go to the documentation of this file.
1/*
2 +----------------------------------------------------------------------+
3 | Zend Engine |
4 +----------------------------------------------------------------------+
5 | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 2.00 of the Zend license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.zend.com/license/2_00.txt. |
11 | If you did not receive a copy of the Zend license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@zend.com so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
15 | Authors: Andi Gutmans <andi@php.net> |
16 | Zeev Suraski <zeev@php.net> |
17 +----------------------------------------------------------------------+
18*/
19
20#ifndef ZEND_SCANNER_H
21#define ZEND_SCANNER_H
22
23#include "zend_globals.h"
24
25typedef struct _zend_lex_state {
26 unsigned int yy_leng;
27 unsigned char *yy_start;
28 unsigned char *yy_text;
29 unsigned char *yy_cursor;
30 unsigned char *yy_marker;
31 unsigned char *yy_limit;
35 zend_stack nest_location_stack; /* for syntax error reporting */
36
38 uint32_t lineno;
40
41 /* original (unfiltered) script */
42 unsigned char *script_org;
44
45 /* filtered script */
46 unsigned char *script_filtered;
48
49 /* input/output filters */
53
54 /* hooks */
56 zend_php_scanner_event event, int token, int line,
57 const char *text, size_t length, void *context);
59
63
70
71/* Track locations of unclosed {, [, (, etc. for better syntax error reporting */
76
81ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding);
84
86
87#endif
zval * zv
Definition ffi.c:3975
int line
Definition php_ffi.h:54
unsigned const char * text
Definition php_ffi.h:53
zend_encoding_filter output_filter
unsigned char * script_org
const zend_encoding * script_encoding
zend_encoding_filter input_filter
unsigned char * yy_text
unsigned char * yy_start
unsigned char * yy_marker
zend_file_handle * in
unsigned char * script_filtered
void(* on_event)(zend_php_scanner_event event, int token, int line, const char *text, size_t length, void *context)
unsigned char * yy_cursor
unsigned char * yy_limit
zend_ptr_stack heredoc_label_stack
Definition dce.c:49
struct _zend_arena zend_arena
Definition zend_arena.h:26
struct _zval_struct zval
#define ZEND_API
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
zend_php_scanner_event
struct _zend_file_handle zend_file_handle
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
struct _zend_lex_state zend_lex_state
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding)
struct _zend_heredoc_label zend_heredoc_label
struct _zend_nest_location zend_nest_location
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
ZEND_API zend_result zend_multibyte_set_filter(const zend_encoding *onetime_encoding)
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
struct _zend_string zend_string
size_t(* zend_encoding_filter)(unsigned char **str, size_t *str_length, const unsigned char *buf, size_t length)
struct _zend_encoding zend_encoding
#define END_EXTERN_C()
#define BEGIN_EXTERN_C()
struct _zend_ptr_stack zend_ptr_stack
struct _zend_stack zend_stack
ZEND_RESULT_CODE zend_result
Definition zend_types.h:64
struct _zend_ast zend_ast
Definition zend_types.h:102