diff options
author | Felipe Pena <felipe@php.net> | 2010-07-20 17:22:51 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2010-07-20 17:22:51 +0000 |
commit | 4445503ae0d9348de3fc16a64ae57bbc0c29fd56 (patch) | |
tree | b8d59e77bb81faad8c58deb31c34828612a243b6 /Zend/zend_language_parser.y | |
parent | 53293a6538917cc0b403e0b4224d7f58e825ca47 (diff) | |
download | php-git-experimental/lemon.tar.gz |
- Reverted mem alloc function changeexperimental/lemon
- Fixed lineno on method declarations
Diffstat (limited to 'Zend/zend_language_parser.y')
-rw-r--r-- | Zend/zend_language_parser.y | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index fb826c0d19..b39ef74cac 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -136,7 +136,6 @@ %left ELSEIF. %left ELSE. %left ENDIF. - %right STATIC ABSTRACT FINAL PRIVATE PROTECTED PUBLIC. // dummy tokens @@ -575,8 +574,15 @@ class_statement_ii(A) ::= method_modifiers(B) function(C) is_reference(D) STRING class_statement ::= class_statement_i class_variables SEMICOLON. class_statement ::= class_constants SEMICOLON. class_statement ::= trait_use_statement. -class_statement ::= class_statement_ii(B) LPAREN parameters RPAREN method_body(C). { zend_do_abstract_method(&B[2], &B[0], &C TSRMLS_CC); zend_do_end_function_declaration(&B[1] TSRMLS_CC); } +method_body_i(A) ::= LPAREN parameters RPAREN(C) LBRACE inner_statement_list. { A = C; } + +method_body ::= class_statement_ii(B) method_body_i(C). { Z_LVAL(C.u.constant) = 0; zend_do_abstract_method(&B[2], &B[0], &C TSRMLS_CC); zend_do_end_function_declaration(&B[1] TSRMLS_CC); } + +method_body_abstract ::= class_statement_ii(B) LPAREN parameters RPAREN(C). { Z_LVAL(C.u.constant) = ZEND_ACC_ABSTRACT; zend_do_abstract_method(&B[2], &B[0], &C TSRMLS_CC); zend_do_end_function_declaration(&B[1] TSRMLS_CC); } + +class_statement ::= method_body_abstract SEMICOLON. +class_statement ::= method_body RBRACE. trait_use_statement ::= USE trait_list trait_adaptations. @@ -609,9 +615,6 @@ trait_alias(A) ::= trait_method_reference(B) AS member_modifier(C). { trait_modifiers(A) ::= . { Z_LVAL(A.u.constant) = 0x0; } /* No change of methods visibility */ trait_modifiers(A) ::= member_modifier(B). { A = B; } /* REM: Keep in mind, there are not only visibility modifiers */ -method_body(A) ::= SEMICOLON. { Z_LVAL(A.u.constant) = ZEND_ACC_ABSTRACT; } -method_body(A) ::= LBRACE inner_statement_list RBRACE. { Z_LVAL(A.u.constant) = 0; } - variable_modifiers(A) ::= member_modifiers_list(B). { A = B; } variable_modifiers(A) ::= VAR. { Z_LVAL(A.u.constant) = ZEND_ACC_PUBLIC; } |