*** empty log message ***
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParser.jj
index 17511d5..11e4e8a 100644 (file)
@@ -270,7 +270,7 @@ public final class PHPParser extends PHPParserSuperclass {
    */
   public static final void createNewHTMLCode() {
     final int currentPosition = SimpleCharStream.getPosition();
-    if (currentPosition == htmlStart) {
+    if (currentPosition == htmlStart || currentPosition > SimpleCharStream.currentBuffer.length()) {
       return;
     }
     final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition+1).toCharArray();
@@ -1131,6 +1131,17 @@ ConstantIdentifier Type() :
 Expression Expression() :
 {
   final Expression expr;
+  Token bangToken = null;
+  final int pos = SimpleCharStream.getPosition();
+}
+{
+  <BANG> expr = Expression() {return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
+| expr = ExpressionNoBang() {return expr;}
+}
+
+Expression ExpressionNoBang() :
+{
+  final Expression expr;
 }
 {
   expr = PrintExpression()       {return expr;}
@@ -1471,8 +1482,8 @@ Expression UnaryExpressionNotPlusMinus() :
   final int pos = SimpleCharStream.getPosition();
 }
 {
-  <BANG> expr = UnaryExpression() {return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
-| LOOKAHEAD( <LPAREN> (Type() | <ARRAY>) <RPAREN> )
+//  <BANG> expr = UnaryExpression() {return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
+  LOOKAHEAD( <LPAREN> (Type() | <ARRAY>) <RPAREN> )
   expr = CastExpression()         {return expr;}
 | expr = PostfixExpression()      {return expr;}
 | expr = Literal()                {return expr;}