Changeset 1033
- Timestamp:
- 02/10/10 17:14:33 (6 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/rphp/compiler/analysis/grammar_src/rphp_grammar.y
r1032 r1033 252 252 statement(A) ::= statementBlock(B). { A = B; } 253 253 statement(A) ::= inlineHTML(B). { A = B; } 254 statement(A) ::= staticDecl(B). { A = B; }255 254 statement(A) ::= functionDecl(B). { A = B; } 256 255 statement(A) ::= classDecl(B). { A = B; } … … 262 261 statement(A) ::= switchStmt(B). { A = B; } 263 262 statement(A) ::= tryCatch(B). { A = B; } 263 statement(A) ::= staticDecl(B) T_SEMI. { A = B; } 264 264 statement(A) ::= echo(B) T_SEMI. { A = B; } 265 265 statement(A) ::= throw(B) T_SEMI. { A = B; } … … 310 310 A->setLine(CURRENT_LINE); 311 311 } 312 return(A) ::= T_RETURN expr(B).312 return(A) ::= T_RETURN baseExpr(B). 313 313 { 314 314 A = new (CTXT) AST::returnStmt(B); … … 447 447 %type forEach {AST::forEach*} 448 448 // foreach($expr as $val) 449 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN expr(RVAL) T_AS T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY).449 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN baseExpr(RVAL) T_AS T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 450 450 { 451 451 A = new (CTXT) AST::forEach(RVAL, BODY, CTXT, *VAL, false /*by ref*/ ); … … 453 453 } 454 454 // foreach($expr as $key => $val) 455 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN expr(RVAL) T_AS T_VARIABLE(KEY) T_ARROWKEY T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY).455 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN baseExpr(RVAL) T_AS T_VARIABLE(KEY) T_ARROWKEY T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 456 456 { 457 457 A = new (CTXT) AST::forEach(RVAL, BODY, CTXT, *VAL, false /*by ref*/, KEY); … … 459 459 } 460 460 // foreach($expr as &$val) 461 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN expr(RVAL) T_AS T_AND T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY).461 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN baseExpr(RVAL) T_AS T_AND T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 462 462 { 463 463 A = new (CTXT) AST::forEach(RVAL, BODY, CTXT, *VAL, true /*by ref*/); … … 465 465 } 466 466 // foreach($expr as $key => &$val) 467 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN expr(RVAL) T_AS T_VARIABLE(KEY) T_ARROWKEY T_AND T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY).467 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN baseExpr(RVAL) T_AS T_VARIABLE(KEY) T_ARROWKEY T_AND T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 468 468 { 469 469 A = new (CTXT) AST::forEach(RVAL, BODY, CTXT, *VAL, true /*by ref*/, KEY); … … 1926 1926 } 1927 1927 1928 1928 1929 /** CONSTRUCTOR INVOKE **/ 1929 1930 %type constructorInvoke {AST::functionInvoke*}
