errors now.
}
-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 */
}
-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);
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);
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;
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
zval_dtor(&doc_comment->u.constant);
}
}
+#endif
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
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);
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);
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);
case T_CLOSE_TAG:
case T_WHITESPACE:
case T_COMMENT:
+ case T_DOC_COMMENT:
break;
default:
efree(token.value.str.val);
}
/* lack of break; is intentional */
case T_COMMENT:
+ case T_DOC_COMMENT:
token.type = 0;
continue;
case T_CLOSE_TAG:
case T_WHITESPACE:
case T_COMMENT:
+ case T_DOC_COMMENT:
break;
default:
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:
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); }
;
;
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:
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); }
;
}
<ST_DOC_COMMENT>"*/" {
- 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;