-
Notifications
You must be signed in to change notification settings - Fork 8k
Zend language scanner: minor refactorings #20480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,7 +20,14 @@ | |
| #ifndef ZEND_SCANNER_H | ||
| #define ZEND_SCANNER_H | ||
|
|
||
| #include "zend_globals.h" | ||
| #include "zend_arena.h" | ||
| #include "zend_ast.h" | ||
| #include "zend_stack.h" | ||
| #include "zend_ptr_stack.h" | ||
| #include "zend_stream.h" /* For zend_file_handle */ | ||
| #include "zend_string.h" | ||
| #include "zend_multibyte.h" /* For zend_encoding_filter and zend_encoding */ | ||
| #include "zend_globals.h" /* For zend_php_scanner_event */ | ||
|
|
||
| typedef struct _zend_lex_state { | ||
| unsigned int yy_leng; | ||
|
|
@@ -61,19 +68,6 @@ typedef struct _zend_lex_state { | |
| zend_arena *ast_arena; | ||
| } zend_lex_state; | ||
|
|
||
| typedef struct _zend_heredoc_label { | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think it makes sense to make these private, as they can be accessed via the public struct via heredoc_label_stack. Similar issue for zend_nest_location.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good point, will revert. |
||
| char *label; | ||
| int length; | ||
| int indentation; | ||
| bool indentation_uses_spaces; | ||
| } zend_heredoc_label; | ||
|
|
||
| /* Track locations of unclosed {, [, (, etc. for better syntax error reporting */ | ||
| typedef struct _zend_nest_location { | ||
| char text; | ||
| int lineno; | ||
| } zend_nest_location; | ||
|
|
||
| BEGIN_EXTERN_C() | ||
| ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state); | ||
| ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state); | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You still include zend_globals, so what exactly do we gain by adding all these headers explicitly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wanted to remove it, but annoyingly
zend_php_scanner_eventis defined there. And I don't know if it's sensible to "flip" the header inclusion so that zend_globals includeszend_language_scanner.hor not...There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm I don't think that makes sense, I don't like to pull the scanner into everything
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's what I thought too, I'm happy to remove the extra header includes and just have a comment explaining why we include globals.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's better