X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.jj b/net.sourceforge.phpeclipse/src/test/PHPParser.jj index d3b3e59..0eb3056 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.jj +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.jj @@ -870,21 +870,17 @@ void ClassBodyDeclaration(ClassDeclaration classDeclaration) : FieldDeclaration FieldDeclaration() : { VariableDeclaration variableDeclaration; - variableDeclarationPtr = 0; - variableDeclarationStack = new VariableDeclaration[AstStackIncrement]; VariableDeclaration[] list; + final ArrayList arrayList = new ArrayList(); final int pos = SimpleCharStream.getPosition(); } { variableDeclaration = VariableDeclarator() - { - pushOnVariableDeclarationStack(variableDeclaration); - outlineInfo.addVariable(new String(variableDeclaration.name)); - currentSegment.add(variableDeclaration); - } - ( - variableDeclaration = VariableDeclarator() - {pushOnVariableDeclarationStack(variableDeclaration); + {arrayList.add(variableDeclaration); + outlineInfo.addVariable(new String(variableDeclaration.name)); + currentSegment.add(variableDeclaration);} + ( variableDeclaration = VariableDeclarator() + {arrayList.add(variableDeclaration); outlineInfo.addVariable(new String(variableDeclaration.name)); currentSegment.add(variableDeclaration);} )* @@ -898,8 +894,8 @@ FieldDeclaration FieldDeclaration() : throw e; } - {list = new VariableDeclaration[variableDeclarationPtr]; - System.arraycopy(variableDeclarationStack,0,list,0,variableDeclarationPtr); + {list = new VariableDeclaration[arrayList.size()]; + arrayList.toArray(list); return new FieldDeclaration(list, pos, SimpleCharStream.getPosition());} @@ -1064,12 +1060,14 @@ Expression VariableInitializer() : ArrayVariableDeclaration ArrayVariable() : { -Expression expr; -Expression expr2 = null; +Expression expr,expr2; } { - expr = Expression() [ expr2 = Expression()] + expr = Expression() + [ expr2 = Expression() {return new ArrayVariableDeclaration(expr,expr2);} + ] + {return new ArrayVariableDeclaration(expr,SimpleCharStream.getPosition());} } ArrayVariableDeclaration[] ArrayInitializer() : @@ -1967,7 +1965,7 @@ HTMLBlock htmlBlock() : throw e; } { - nbNodes = nodePtr-startIndex; + nbNodes = nodePtr-startIndex - 1; blockNodes = new AstNode[nbNodes]; System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes); return new HTMLBlock(nodes);} @@ -2204,10 +2202,8 @@ LabeledStatement LabeledStatement() : Block Block() : { final int pos = SimpleCharStream.getPosition(); - Statement[] statements; + final ArrayList list = new ArrayList(); Statement statement; - final int startingPtr = statementPtr; - final int length; } { try { @@ -2219,8 +2215,8 @@ Block Block() : errorEnd = jj_input_stream.getPosition() + 1; throw e; } - ( statement = BlockStatement() {pushOnStatementStack(statement);} - | statement = htmlBlock() {pushOnStatementStack(statement);})* + ( statement = BlockStatement() {list.add(statement);} + | statement = htmlBlock() {list.add(statement);})* try { } catch (ParseException e) { @@ -2231,10 +2227,8 @@ Block Block() : throw e; } { - length = statementPtr-startingPtr+1; - statements = new Statement[length]; - System.arraycopy(variableDeclarationStack,startingPtr+1,statements,0,length); - statementPtr = startingPtr; + Statement[] statements = new Statement[list.size()]; + list.toArray(statements); return new Block(statements,pos,SimpleCharStream.getPosition());} } @@ -2310,19 +2304,23 @@ EmptyStatement EmptyStatement() : Statement StatementExpression() : { - Expression expr; + Expression expr,expr2; + int operator; } { expr = PreIncDecExpression() {return expr;} | expr = PrimaryExpression() - [ {expr = new PostfixedUnaryExpression(expr, + [ {return new PostfixedUnaryExpression(expr, OperatorIds.PLUS_PLUS, SimpleCharStream.getPosition());} - | {expr = new PostfixedUnaryExpression(expr, + | {return new PostfixedUnaryExpression(expr, OperatorIds.MINUS_MINUS, SimpleCharStream.getPosition());} - | AssignmentOperator() Expression() ] + | operator = AssignmentOperator() expr2 = Expression() + {return new BinaryExpression(expr,expr2,operator);} + ] + {return expr;} } SwitchStatement SwitchStatement() :