Changeset 1033

Show
Ignore:
Timestamp:
02/10/10 17:14:33 (6 months ago)
Author:
weyrick
Message:

grammar tweaks

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/rphp/compiler/analysis/grammar_src/rphp_grammar.y

    r1032 r1033  
    252252statement(A) ::= statementBlock(B). { A = B; } 
    253253statement(A) ::= inlineHTML(B). { A = B; } 
    254 statement(A) ::= staticDecl(B). { A = B; } 
    255254statement(A) ::= functionDecl(B). { A = B; } 
    256255statement(A) ::= classDecl(B). { A = B; } 
     
    262261statement(A) ::= switchStmt(B). { A = B; } 
    263262statement(A) ::= tryCatch(B). { A = B; } 
     263statement(A) ::= staticDecl(B) T_SEMI. { A = B; } 
    264264statement(A) ::= echo(B) T_SEMI. { A = B; } 
    265265statement(A) ::= throw(B) T_SEMI. { A = B; } 
     
    310310    A->setLine(CURRENT_LINE); 
    311311} 
    312 return(A) ::= T_RETURN expr(B). 
     312return(A) ::= T_RETURN baseExpr(B). 
    313313{ 
    314314    A = new (CTXT) AST::returnStmt(B); 
     
    447447%type forEach {AST::forEach*} 
    448448// foreach($expr as $val) 
    449 forEach(A) ::= T_FOREACH(F) T_LEFTPAREN expr(RVAL) T_AS T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 
     449forEach(A) ::= T_FOREACH(F) T_LEFTPAREN baseExpr(RVAL) T_AS T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 
    450450{ 
    451451    A = new (CTXT) AST::forEach(RVAL, BODY, CTXT, *VAL, false /*by ref*/ ); 
     
    453453} 
    454454// 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). 
     455forEach(A) ::= T_FOREACH(F) T_LEFTPAREN baseExpr(RVAL) T_AS T_VARIABLE(KEY) T_ARROWKEY T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 
    456456{ 
    457457    A = new (CTXT) AST::forEach(RVAL, BODY, CTXT, *VAL, false /*by ref*/, KEY); 
     
    459459} 
    460460// 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). 
     461forEach(A) ::= T_FOREACH(F) T_LEFTPAREN baseExpr(RVAL) T_AS T_AND T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 
    462462{ 
    463463    A = new (CTXT) AST::forEach(RVAL, BODY, CTXT, *VAL, true /*by ref*/); 
     
    465465} 
    466466// 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). 
     467forEach(A) ::= T_FOREACH(F) T_LEFTPAREN baseExpr(RVAL) T_AS T_VARIABLE(KEY) T_ARROWKEY T_AND T_VARIABLE(VAL) T_RIGHTPAREN statement(BODY). 
    468468{ 
    469469    A = new (CTXT) AST::forEach(RVAL, BODY, CTXT, *VAL, true /*by ref*/, KEY); 
     
    19261926} 
    19271927 
     1928 
    19281929/** CONSTRUCTOR INVOKE **/ 
    19291930%type constructorInvoke {AST::functionInvoke*}