little bugfixes
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParser.jj
index 0637cf1..16847d8 100644 (file)
@@ -2029,18 +2029,23 @@ StringLiteral evaluableString() :
 FunctionCall Arguments(final Expression func) :
 {
 Expression[] args = null;
-final Token token;
+final Token token,lparen;
 }
 {
-  <LPAREN> [ args = ArgumentList() ]
+  lparen = <LPAREN> [ args = ArgumentList() ]
   try {
     token = <RPAREN>
     {return new FunctionCall(func,args,token.sourceEnd);}
   } catch (ParseException e) {
     errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
     errorLevel   = ERROR;
-    errorStart = args[args.length-1].sourceEnd+1;
-    errorEnd   = args[args.length-1].sourceEnd+1;
+    if (args == null) {
+        errorStart = lparen.sourceEnd+1;
+        errorEnd   = lparen.sourceEnd+2;
+    } else {
+        errorStart = args[args.length-1].sourceEnd+1;
+        errorEnd   = args[args.length-1].sourceEnd+2;
+    }
     processParseExceptionDebug(e);
   }
   {return new FunctionCall(func,args,args[args.length-1].sourceEnd);}
@@ -2851,7 +2856,6 @@ Expression SwitchLabel() :
   token = <_DEFAULT>
   try {
     <COLON>
-    {return null;}
   } catch (ParseException e) {
     errorMessage = "':' expected after 'default' keyword";
     errorLevel   = ERROR;
@@ -2859,6 +2863,7 @@ Expression SwitchLabel() :
     errorEnd   = token.sourceEnd+1;
     processParseExceptionDebug(e);
   }
+  {return null;}
 }
 
 Break BreakStatement() :