*** empty log message ***
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParser.jj
index a28acb9..ac77fff 100644 (file)
@@ -135,7 +135,9 @@ public final class PHPParser extends PHPParserSuperclass {
       parse();
       phpDocument.nodes = new AstNode[nodes.length];
       System.arraycopy(nodes,0,phpDocument.nodes,0,nodes.length);
-      PHPeclipsePlugin.log(1,phpDocument.toString());
+      if (PHPeclipsePlugin.DEBUG) {
+        PHPeclipsePlugin.log(1,phpDocument.toString());
+      }
     } catch (ParseException e) {
       processParseException(e);
     }
@@ -1119,32 +1121,23 @@ ConstantIdentifier Type() :
 {final int pos;}
 {
   <STRING>             {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.STRING,
-                                                      pos,pos-6);}
+                        return new ConstantIdentifier(Types.STRING,pos,pos-6);}
 | <BOOL>               {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.BOOL,
-                                                      pos,pos-4);}
+                        return new ConstantIdentifier(Types.BOOL,pos,pos-4);}
 | <BOOLEAN>            {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.BOOLEAN,
-                                                      pos,pos-7);}
+                        return new ConstantIdentifier(Types.BOOLEAN,pos,pos-7);}
 | <REAL>               {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.REAL,
-                                                      pos,pos-4);}
+                        return new ConstantIdentifier(Types.REAL,pos,pos-4);}
 | <DOUBLE>             {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.DOUBLE,
-                                                      pos,pos-5);}
+                        return new ConstantIdentifier(Types.DOUBLE,pos,pos-5);}
 | <FLOAT>              {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.FLOAT,
-                                                      pos,pos-5);}
+                        return new ConstantIdentifier(Types.FLOAT,pos,pos-5);}
 | <INT>                {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.INT,
-                                                      pos,pos-3);}
+                        return new ConstantIdentifier(Types.INT,pos,pos-3);}
 | <INTEGER>            {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.INTEGER,
-                                                      pos,pos-7);}
+                        return new ConstantIdentifier(Types.INTEGER,pos,pos-7);}
 | <OBJECT>             {pos = SimpleCharStream.getPosition();
-                        return new ConstantIdentifier(Types.OBJECT,
-                                                      pos,pos-6);}
+                        return new ConstantIdentifier(Types.OBJECT,pos,pos-6);}
 }
 
 Expression Expression() :
@@ -1756,7 +1749,7 @@ Statement StatementNoBreak() :
   try {
     <SEMICOLON>
   } catch (ParseException e) {
-    if (e.currentToken.next.kind != 4) {
+    if (e.currentToken.next.kind != PHPParserConstants.PHPEND) {
       errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
       errorLevel   = ERROR;
       errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
@@ -1971,10 +1964,6 @@ EchoStatement EchoStatement() :
   )*
   try {
     <SEMICOLON>
-    {
-    Expression[] exprs = new Expression[expressions.size()];
-    expressions.toArray(exprs);
-    return new EchoStatement(exprs,pos);}
   } catch (ParseException e) {
     if (e.currentToken.next.kind != 4) {
       errorMessage = "';' expected after 'echo' statement";
@@ -1984,6 +1973,9 @@ EchoStatement EchoStatement() :
       throw e;
     }
   }
+  {Expression[] exprs = new Expression[expressions.size()];
+   expressions.toArray(exprs);
+   return new EchoStatement(exprs,pos);}
 }
 
 GlobalStatement GlobalStatement() :
@@ -2103,8 +2095,16 @@ Statement BlockStatement() :
   final Statement statement;
 }
 {
+  try {
   statement = Statement()         {if (phpDocument == currentSegment) pushOnAstNodes(statement);
                                    return statement;}
+  } catch (ParseException e) {
+    errorMessage = "statement expected";
+    errorLevel   = ERROR;
+    errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd   = SimpleCharStream.getPosition() + 1;
+    throw e;
+  }
 | statement = ClassDeclaration()  {return statement;}
 | statement = MethodDeclaration() {if (phpDocument == currentSegment) pushOnAstNodes(statement);
                                    return statement;}