a little bugfix in the variable parsing
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParser.jj
index 9ad3eff..92e62c8 100644 (file)
@@ -920,19 +920,19 @@ FieldDeclaration FieldDeclaration() :
  */
 VariableDeclaration VariableDeclaratorNoSuffix() :
 {
-  final Token dollar, token, lbrace,rbrace;
+  final Token token, lbrace,rbrace;
   Expression expr, initializer = null;
   Token assignToken;
   Variable variable;
 }
 {
-  dollar = <DOLLAR>
+  <DOLLAR>
   (
      token = <IDENTIFIER>
-     {variable = new Variable(token.image,dollar.sourceStart,token.sourceEnd);}
+     {variable = new Variable(token.image,token.sourceStart,token.sourceEnd);}
    |
      lbrace = <LBRACE> expr = Expression() rbrace = <RBRACE>
-     {variable = new Variable(expr,dollar.sourceStart,rbrace.sourceEnd);}
+     {variable = new Variable(expr,lbrace.sourceStart,rbrace.sourceEnd);}
   )
   [
     assignToken = <ASSIGN>
@@ -1036,13 +1036,13 @@ Variable Variable() :
   final Token token;
 }
 {
-  token = <DOLLAR> variable = Var(token)
+  token = <DOLLAR> variable = Var()
   {
-    return new Variable(variable,token.sourceStart,variable.sourceEnd);
+    return variable;
   }
 }
 
-Variable Var(final Token dollar) :
+Variable Var() :
 {
   Variable variable = null;
   final Token token,token2;
@@ -1050,18 +1050,18 @@ Variable Var(final Token dollar) :
   Expression expression;
 }
 {
-  token = <DOLLAR> variable = Var(token)
-  {return new Variable(variable,dollar.sourceStart,variable.sourceEnd);}
+  token = <DOLLAR> variable = Var()
+  {return new Variable(variable,variable.sourceStart,variable.sourceEnd);}
 |
   token = <LBRACE> expression = Expression() token2 = <RBRACE>
   {
    return new Variable(expression,
-                       dollar.sourceStart,
+                       token.sourceStart,
                        token2.sourceEnd);
   }
 |
   token = <IDENTIFIER>
-  {return new Variable(token.image,dollar.sourceStart,token.sourceEnd);}
+  {return new Variable(token.image,token.sourceStart,token.sourceEnd);}
 }
 
 Expression VariableInitializer() :
@@ -1865,7 +1865,7 @@ AbstractVariable VariableSuffix(final AbstractVariable prefix) :
                 }
       |
         token = <IDENTIFIER>
-        {expression = new Variable(token.image,token.sourceStart,token.sourceEnd);}
+        {expression = new ConstantIdentifier(token.image,token.sourceStart,token.sourceEnd);}
       |
         expression = Variable()
     )