*** empty log message ***
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParser.jj
index 306f21d..9bf7ec4 100644 (file)
@@ -605,7 +605,7 @@ void Variable():
   <DOLLAR> VariableName()
 }
 
-void VariableName():
+String VariableName():
 {}
 {
   <LBRACE> Expression() <RBRACE>
@@ -701,20 +701,7 @@ void Type() :
   <INTEGER>
 }
 
-/*
- * Expression syntax follows.
- */
-
 void Expression() :
-/*
- * This expansion has been written this way instead of:
- *   Assignment() | ConditionalExpression()
- * for performance reasons.
- * However, it is a weakening of the grammar for it allows the LHS of
- * assignments to be any conditional expression whereas it can only be
- * a primary expression.  Consider adding a semantic predicate to work
- * around this.
- */
 {}
 {
   PrintExpression()
@@ -872,7 +859,7 @@ void PrimaryPrefix() :
 {
   <IDENTIFIER>
 |
-  <NEW> ClassIdentifier()
+  [<BIT_AND>] <NEW> ClassIdentifier()
 |  
   VariableDeclaratorId()
 }
@@ -908,7 +895,13 @@ void Literal() :
 |
   <FLOATING_POINT_LITERAL>
 |
-  <STRING_LITERAL>
+  try {
+    <STRING_LITERAL>
+  } catch (TokenMgrError e) {
+    errorMessage = "unterminated string";
+    errorLevel   = ERROR;
+    throw generateParseException();
+  }
 |
   BooleanLiteral()
 |
@@ -1131,7 +1124,7 @@ void IfStatement() :
  */
 {}
 {
-  <IF> Condition("if") Statement() [ LOOKAHEAD(1) ElseIfStatement() ] [ LOOKAHEAD(1) <ELSE> Statement() ]
+  <IF> Condition("if") Statement() ( LOOKAHEAD(1) ElseIfStatement() )* [ LOOKAHEAD(1) <ELSE> Statement() ]
 }
 
 void Condition(String keyword) :