From e6255b06b15658437b10af261ec7b189f116dc04 Mon Sep 17 00:00:00 2001 From: Andrei Zmievski Date: Wed, 2 Apr 2003 16:13:12 +0000 Subject: [PATCH] Revert portions of the doc comment patch. There should be no parser errors now. --- Zend/zend_compile.c | 13 ++++++++++--- Zend/zend_compile.h | 6 +++--- Zend/zend_highlight.c | 3 +++ Zend/zend_language_parser.y | 27 +++++++-------------------- Zend/zend_language_scanner.l | 3 --- 5 files changed, 23 insertions(+), 29 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 8e0e229607..4f19fab0e0 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1071,16 +1071,18 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n } -void zend_do_end_function_declaration(znode *function_token, znode *doc_comment TSRMLS_DC) +void zend_do_end_function_declaration(znode *function_token TSRMLS_DC) { zend_do_extended_info(TSRMLS_C); zend_do_return(NULL, 0 TSRMLS_CC); pass_two(CG(active_op_array) TSRMLS_CC); CG(active_op_array)->line_end = zend_get_compiled_lineno(TSRMLS_C); +#if 0 if (doc_comment && doc_comment->op_type != IS_UNUSED) { CG(active_op_array)->doc_comment = doc_comment->u.constant.value.str.val; CG(active_op_array)->doc_comment_len = doc_comment->u.constant.value.str.len; } +#endif CG(active_op_array) = function_token->u.op_array; /* Pop the switch and foreach seperators */ @@ -2251,16 +2253,18 @@ static void do_verify_abstract_class(TSRMLS_D) } -void zend_do_end_class_declaration(znode *class_token, znode *parent_token, znode *doc_comment TSRMLS_DC) +void zend_do_end_class_declaration(znode *class_token, znode *parent_token TSRMLS_DC) { do_inherit_parent_constructor(CG(active_class_entry)); CG(active_class_entry)->line_end = zend_get_compiled_lineno(TSRMLS_C); +#if 0 if (doc_comment && doc_comment->op_type != IS_UNUSED) { CG(active_class_entry)->doc_comment = doc_comment->u.constant.value.str.val; CG(active_class_entry)->doc_comment_len = doc_comment->u.constant.value.str.len; } +#endif if (CG(active_class_entry)->num_interfaces > 0) { CG(active_class_entry)->interfaces = (zend_class_entry **) emalloc(sizeof(zend_class_entry *)*CG(active_class_entry)->num_interfaces); @@ -3292,6 +3296,7 @@ int zendlex(znode *zendlval TSRMLS_DC) retval = lex_scan(&zendlval->u.constant TSRMLS_CC); switch (retval) { case T_COMMENT: + case T_DOC_COMMENT: case T_OPEN_TAG: case T_WHITESPACE: retval = zendlex(zendlval TSRMLS_CC); @@ -3403,7 +3408,7 @@ void zend_do_begin_namespace(znode *ns_token, znode *ns_name TSRMLS_DC) CG(function_table) = &ns->function_table; } -void zend_do_end_namespace(znode *ns_token, znode *doc_comment TSRMLS_DC) +void zend_do_end_namespace(znode *ns_token TSRMLS_DC) { zend_namespace *ns = ns_token->u.previously_active_namespace; zend_op *opline; @@ -3418,6 +3423,7 @@ void zend_do_end_namespace(znode *ns_token, znode *doc_comment TSRMLS_DC) CG(active_namespace)->line_end = zend_get_compiled_lineno(TSRMLS_C); } +#if 0 if (doc_comment && doc_comment->op_type != IS_UNUSED) { /* * Do not overwrite previously declared doc comment in case the namespace is @@ -3430,6 +3436,7 @@ void zend_do_end_namespace(znode *ns_token, znode *doc_comment TSRMLS_DC) zval_dtor(&doc_comment->u.constant); } } +#endif opline = get_next_op(CG(active_op_array) TSRMLS_CC); diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index c11d112709..6879eda188 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -320,7 +320,7 @@ void zend_do_add_variable(znode *result, znode *op1, znode *op2 TSRMLS_DC); int zend_do_verify_access_types(znode *current_access_type, znode *new_modifier); void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference, znode *fn_flags_znode TSRMLS_DC); -void zend_do_end_function_declaration(znode *function_token, znode *doc_comment TSRMLS_DC); +void zend_do_end_function_declaration(znode *function_token TSRMLS_DC); void zend_do_receive_arg(zend_uchar op, znode *var, znode *offset, znode *initialization, znode *class_type, zend_uchar pass_type TSRMLS_DC); int zend_do_begin_function_call(znode *function_name TSRMLS_DC); void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC); @@ -362,7 +362,7 @@ void zend_do_case_after_statement(znode *result, znode *case_token TSRMLS_DC); void zend_do_default_before_statement(znode *case_list, znode *default_token TSRMLS_DC); void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znode *parent_class_name TSRMLS_DC); -void zend_do_end_class_declaration(znode *class_token, znode *parent_token, znode *doc_comment TSRMLS_DC); +void zend_do_end_class_declaration(znode *class_token, znode *parent_token TSRMLS_DC); void zend_do_declare_property(znode *var_name, znode *value, zend_uint access_type TSRMLS_DC); void zend_do_declare_class_constant(znode *var_name, znode *value TSRMLS_DC); @@ -451,7 +451,7 @@ ZEND_API void destroy_zend_class(zend_class_entry **pce); void zend_class_add_ref(zend_class_entry **ce); void zend_do_begin_namespace(znode *ns_token, znode *ns_name TSRMLS_DC); -void zend_do_end_namespace(znode *ns_token, znode *doc_comment TSRMLS_DC); +void zend_do_end_namespace(znode *ns_token TSRMLS_DC); void zend_init_namespace(zend_namespace *ns TSRMLS_DC); void zend_do_declare_namespace_var(znode *name, znode *value TSRMLS_DC); void zend_do_declare_namespace_constant(znode *name, znode *value TSRMLS_DC); diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c index 5e3d657685..586c1ab64d 100644 --- a/Zend/zend_highlight.c +++ b/Zend/zend_highlight.c @@ -157,6 +157,7 @@ ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini case T_CLOSE_TAG: case T_WHITESPACE: case T_COMMENT: + case T_DOC_COMMENT: break; default: efree(token.value.str.val); @@ -198,6 +199,7 @@ ZEND_API void zend_strip(TSRMLS_D) } /* lack of break; is intentional */ case T_COMMENT: + case T_DOC_COMMENT: token.type = 0; continue; @@ -226,6 +228,7 @@ ZEND_API void zend_strip(TSRMLS_D) case T_CLOSE_TAG: case T_WHITESPACE: case T_COMMENT: + case T_DOC_COMMENT: break; default: diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 361b7ba246..147d5fb74e 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -180,7 +180,6 @@ inner_statement: statement: unticked_statement { zend_do_ticks(TSRMLS_C); } - | doc_comment { zend_do_free(&$1 TSRMLS_CC); } unticked_statement { zend_do_ticks(TSRMLS_C); } ; unticked_statement: @@ -286,27 +285,17 @@ is_reference: unticked_function_declaration_statement: - optional_doc_comment T_FUNCTION { $2.u.opline_num = CG(zend_lineno); } is_reference T_STRING { zend_do_begin_function_declaration(&$2, &$5, 0, $4.op_type, NULL TSRMLS_CC); } - '(' parameter_list ')' '{' inner_statement_list '}' { zend_do_end_function_declaration(&$2, &$1 TSRMLS_CC); } + T_FUNCTION { $1.u.opline_num = CG(zend_lineno); } is_reference T_STRING { zend_do_begin_function_declaration(&$1, &$4, 0, $3.op_type, NULL TSRMLS_CC); } + '(' parameter_list ')' '{' inner_statement_list '}' { zend_do_end_function_declaration(&$1 TSRMLS_CC); } ; unticked_class_declaration_statement: - optional_doc_comment class_entry_type T_STRING extends_from - { zend_do_begin_class_declaration(&$2, &$3, &$4 TSRMLS_CC); } + class_entry_type T_STRING extends_from + { zend_do_begin_class_declaration(&$1, &$2, &$3 TSRMLS_CC); } implements_list '{' class_statement_list - '}' { zend_do_end_class_declaration(&$2, &$4, &$1 TSRMLS_CC); } -; - -optional_doc_comment: - /* empty */ { $$.op_type = IS_UNUSED; } - | doc_comment { $$ = $1; } -; - - -doc_comment: - T_DOC_COMMENT { $$ = $1; } + '}' { zend_do_end_class_declaration(&$1, &$2 TSRMLS_CC); } ; @@ -317,7 +306,7 @@ class_entry_type: ; namespace_declaration_statement: - optional_doc_comment T_NAMESPACE namespace_name '{' { zend_do_begin_namespace(&$2, &$3 TSRMLS_CC); } namespace_statement_list '}' { zend_do_end_namespace(&$2, &$1 TSRMLS_CC); } + T_NAMESPACE namespace_name '{' { zend_do_begin_namespace(&$1, &$2 TSRMLS_CC); } namespace_statement_list '}' { zend_do_end_namespace(&$1 TSRMLS_CC); } ; namespace_statement_list: @@ -515,9 +504,7 @@ class_statement: variable_modifiers { CG(access_type) = $1.u.constant.value.lval; } class_variable_declaration ';' | class_constant_declaration ';' | method_modifiers T_FUNCTION { $2.u.opline_num = CG(zend_lineno); } is_reference T_STRING { zend_do_begin_function_declaration(&$2, &$5, 1, $4.op_type, &$1 TSRMLS_CC); } '(' - parameter_list ')' method_body { zend_do_abstract_method(&$5, &$1, &$10 TSRMLS_CC); zend_do_end_function_declaration(&$2, NULL TSRMLS_CC); } - | doc_comment method_modifiers T_FUNCTION { $3.u.opline_num = CG(zend_lineno); } is_reference T_STRING { zend_do_begin_function_declaration(&$3, &$6, 1, $5.op_type, &$2 TSRMLS_CC); } '(' - parameter_list ')' method_body { zend_do_abstract_method(&$6, &$2, &$11 TSRMLS_CC); zend_do_end_function_declaration(&$3, &$1 TSRMLS_CC); } + parameter_list ')' method_body { zend_do_abstract_method(&$5, &$1, &$10 TSRMLS_CC); zend_do_end_function_declaration(&$2 TSRMLS_CC); } ; diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 30a6c752f8..e27bda46d0 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1201,9 +1201,6 @@ NAMESPACE_NAME ({LABEL}":")+{LABEL} } "*/" { - zendlval->value.str.val = (char *)estrndup(yytext, yyleng); - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; HANDLE_NEWLINES(yytext, yyleng); BEGIN(ST_IN_SCRIPTING); return T_DOC_COMMENT; -- 2.40.0