added some rules for alternative case like <?Php <?pHp ...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParser.jj
index 2de24e2..9327af8 100644 (file)
@@ -1422,7 +1422,14 @@ String VariableSuffix() :
   String expr = null;
 }
 {
-  <CLASSACCESS> expr = VariableName()
+  <CLASSACCESS>
+  try {
+    expr = VariableName()
+  } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
+    errorLevel   = ERROR;
+    throw e;
+  }
   {return "->" + expr;}
 | 
   <LBRACKET> [ expr = Expression() ]
@@ -1489,7 +1496,7 @@ String expr = null;
   try {
     <RPAREN>
   } catch (ParseException e) {
-    errorMessage = "')' expected to close the argument list";
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
     errorLevel   = ERROR;
     throw e;
   }
@@ -1524,10 +1531,9 @@ final StringBuffer buff = new StringBuffer();
    {return buff.toString();}
 }
 
-/*
- * Statement syntax follows.
+/**
+ * A Statement without break
  */
-
 void StatementNoBreak() :
 {}
 {
@@ -1582,6 +1588,9 @@ void StatementNoBreak() :
   GlobalStatement()
 }
 
+/**
+ * A Normal statement
+ */
 void Statement() :
 {}
 {
@@ -1676,19 +1685,37 @@ String ListExpression() :
   String expr;
 }
 {
-  <LIST> <LPAREN>
+  <LIST>
+  try {
+    <LPAREN>
+  } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
+    errorLevel   = ERROR;
+    throw e;
+  }
   [
     expr = VariableDeclaratorId()
     {buff.append(expr);}
   ]
-  <COMMA>
-  {buff.append(",");}
   [
+    try {
+      <COMMA>
+    } catch (ParseException e) {
+      errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
+      errorLevel   = ERROR;
+      throw e;
+    }
     expr = VariableDeclaratorId()
-    {buff.append(expr);}
+    {buff.append(",").append(expr);}
   ]
   {buff.append(")");}
-  <RPAREN>
+  try {
+    <RPAREN>
+  } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
+    errorLevel   = ERROR;
+    throw e;
+  }
   [ <ASSIGN> expr = Expression() {buff.append("(").append(expr);}]
   {return buff.toString();}
 }
@@ -1752,7 +1779,7 @@ void Block() :
   try {
     <RBRACE>
   } catch (ParseException e) {
-    errorMessage = "unexpected token : "+ e.currentToken.image +", '}' expected";
+    errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
     errorLevel   = ERROR;
     throw e;
   }
@@ -1768,6 +1795,9 @@ void BlockStatement() :
   MethodDeclaration()
 }
 
+/**
+ * A Block statement that will not contain any 'break'
+ */
 void BlockStatementNoBreak() :
 {}
 {