[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] A small modification to IASTFacroty.createNewDescriptor()
|
Core:
Modified
the IASTFactory to take three _expression_ lists for the createNewDescriptor()
instead of just one.
They
are : newPlacementExpressions, typeIdExpressions, and newInitializerExpressions.
Hoda Amer
Staff Software Engineer
Rational Software - IBM Software Group
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.130
diff -u -r1.130 ChangeLog
--- ChangeLog 25 Aug 2003 11:54:00 -0000 1.130
+++ ChangeLog 25 Aug 2003 14:51:27 -0000
@@ -1,3 +1,9 @@
+2003-08-25 Hoda Amer
+ Modified the IASTFactory to take three expression lists
+ for the createNewDescriptor() instead of just one.
+ They are : newPlacementExpressions, typeIdExpressions, and
+ newInitializerExpressions.
+
2003-08-25 John Camelon
Updated Structure.java to keep JDK 1.3 compliance.
Index: parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java,v
retrieving revision 1.5
diff -u -r1.5 IASTExpression.java
--- parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java 20 Aug 2003 18:05:30 -0000 1.5
+++ parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java 25 Aug 2003 14:51:28 -0000
@@ -10,7 +10,7 @@
***********************************************************************/
package org.eclipse.cdt.core.parser.ast;
-import java.util.List;
+import java.util.Iterator;
import org.eclipse.cdt.core.parser.Enum;
import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate;
@@ -124,7 +124,9 @@
public interface IASTNewExpressionDescriptor
{
- public List getExpressions();
+ public Iterator getNewPlacementExpressions();
+ public Iterator getNewTypeIdExpressions();
+ public Iterator getNewInitializerExpressions();
}
Index: parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java,v
retrieving revision 1.24
diff -u -r1.24 IASTFactory.java
--- parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java 20 Aug 2003 18:05:30 -0000 1.24
+++ parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java 25 Aug 2003 14:51:28 -0000
@@ -97,7 +97,7 @@
IToken id,
ITokenDuple typeId,
String literal, IASTNewExpressionDescriptor newDescriptor) throws ASTSemanticException;
- public IASTExpression.IASTNewExpressionDescriptor createNewDescriptor(List expressions);
+ public IASTExpression.IASTNewExpressionDescriptor createNewDescriptor(List newPlacementExpressions,List newTypeIdExpressions,List newInitializerExpressions);
public IASTInitializerClause createInitializerClause(
IASTInitializerClause.Kind kind,
IASTExpression assignmentExpression,
Index: parser/org/eclipse/cdt/internal/core/parser/Parser.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java,v
retrieving revision 1.95
diff -u -r1.95 Parser.java
--- parser/org/eclipse/cdt/internal/core/parser/Parser.java 25 Aug 2003 12:23:13 -0000 1.95
+++ parser/org/eclipse/cdt/internal/core/parser/Parser.java 25 Aug 2003 14:51:30 -0000
@@ -3537,7 +3537,9 @@
IToken beforeSecondParen = null;
IToken backtrackMarker = null;
ITokenDuple typeId = null;
- ArrayList expressions = new ArrayList();
+ ArrayList newPlacementExpressions = new ArrayList();
+ ArrayList newTypeIdExpressions = new ArrayList();
+ ArrayList newInitializerExpressions = new ArrayList();
if (LT(1) == IToken.tLPAREN)
{
@@ -3547,7 +3549,7 @@
// Try to consume placement list
// Note: since expressionList and expression are the same...
backtrackMarker = mark();
- expressions.add(expression(scope));
+ newPlacementExpressions.add(expression(scope));
consume(IToken.tRPAREN);
placementParseFailure = false;
if (LT(1) == IToken.tLPAREN)
@@ -3631,7 +3633,7 @@
return astFactory.createExpression(
scope, IASTExpression.Kind.NEW_TYPEID,
null, null, null, null, typeId, "",
- astFactory.createNewDescriptor(expressions));
+ astFactory.createNewDescriptor(newPlacementExpressions, newTypeIdExpressions, newInitializerExpressions));
}
catch (ASTSemanticException e)
{
@@ -3660,7 +3662,7 @@
{
// array new
consume();
- expressions.add(assignmentExpression(scope));
+ newTypeIdExpressions.add(assignmentExpression(scope));
consume(IToken.tRBRACKET);
}
// newinitializer
@@ -3668,7 +3670,7 @@
{
consume(IToken.tLPAREN);
if (LT(1) != IToken.tRPAREN)
- expressions.add(expression(scope));
+ newInitializerExpressions.add(expression(scope));
consume(IToken.tRPAREN);
}
try
@@ -3676,7 +3678,7 @@
return astFactory.createExpression(
scope, IASTExpression.Kind.NEW_TYPEID,
null, null, null, null, typeId, "",
- astFactory.createNewDescriptor(expressions));
+ astFactory.createNewDescriptor(newPlacementExpressions, newTypeIdExpressions, newInitializerExpressions));
}
catch (ASTSemanticException e)
{
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewDescriptor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewDescriptor.java,v
retrieving revision 1.1
diff -u -r1.1 ASTNewDescriptor.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewDescriptor.java 20 Aug 2003 18:05:30 -0000 1.1
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewDescriptor.java 25 Aug 2003 14:51:30 -0000
@@ -10,6 +10,7 @@
******************************************************************************/
package org.eclipse.cdt.internal.core.parser.ast.complete;
+import java.util.Iterator;
import java.util.List;
import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
@@ -22,19 +23,28 @@
*/
public class ASTNewDescriptor implements IASTNewExpressionDescriptor {
- List expressions;
-
- public ASTNewDescriptor(List expressions) {
+ List newPlacementExpressions;
+ List newTypeIdExpressions;
+ List newInitializerExpressions;
+ public ASTNewDescriptor(List newPlacementExpressions, List newTypeIdExpressions, List newInitializerExpressions) {
super();
- this.expressions = expressions;
+ this.newPlacementExpressions = newPlacementExpressions;
+ this.newTypeIdExpressions = newTypeIdExpressions;
+ this.newInitializerExpressions = newInitializerExpressions;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#getExpressions()
*/
- public List getExpressions() {
- return expressions;
+ public Iterator getNewPlacementExpressions() {
+ return newPlacementExpressions.iterator();
+ }
+ public Iterator getNewTypeIdExpressions() {
+ return newTypeIdExpressions.iterator();
+ }
+ public Iterator getNewInitializerExpressions() {
+ return newInitializerExpressions.iterator();
}
}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java,v
retrieving revision 1.19
diff -u -r1.19 CompleteParseASTFactory.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java 25 Aug 2003 13:55:32 -0000 1.19
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java 25 Aug 2003 14:51:31 -0000
@@ -641,12 +641,21 @@
getExpressionReferences(rhs, references);
getExpressionReferences(thirdExpression,references);
+ // add newDescriptor's references & add to references
// if there is a newDescriptor, check related expressions
if(newDescriptor != null){
- Iterator i = newDescriptor.getExpressions().iterator();
+ Iterator i = newDescriptor.getNewPlacementExpressions();
while (i.hasNext()){
getExpressionReferences((IASTExpression)i.next(), references);
}
+ i = newDescriptor.getNewTypeIdExpressions();
+ while (i.hasNext()){
+ getExpressionReferences((IASTExpression)i.next(), references);
+ }
+ i = newDescriptor.getNewInitializerExpressions();
+ while (i.hasNext()){
+ getExpressionReferences((IASTExpression)i.next(), references);
+ }
}
//look up id & add to references
@@ -672,7 +681,6 @@
if( typeId != null )
lookupQualifiedName( startingScope, typeId, references, false );
- //TODO add newDescriptor's references & add to references
return new ASTExpression( kind, lhs, rhs, thirdExpression,
id == null ? "" : id.getImage(),
typeId == null ? "" : typeId.toString(),
@@ -690,11 +698,9 @@
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#createNewDescriptor()
*/
- public IASTNewExpressionDescriptor createNewDescriptor(List expressions)
+ public IASTNewExpressionDescriptor createNewDescriptor(List newPlacementExpressions,List newTypeIdExpressions,List newInitializerExpressions)
{
- // TODO FIX THIS
- // return null;
- return new ASTNewDescriptor(expressions);
+ return new ASTNewDescriptor(newPlacementExpressions, newTypeIdExpressions, newInitializerExpressions);
}
/* (non-Javadoc)
Index: parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNewDescriptor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNewDescriptor.java,v
retrieving revision 1.2
diff -u -r1.2 ASTNewDescriptor.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNewDescriptor.java 20 Aug 2003 18:05:29 -0000 1.2
+++ parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNewDescriptor.java 25 Aug 2003 14:51:31 -0000
@@ -10,7 +10,7 @@
***********************************************************************/
package org.eclipse.cdt.internal.core.parser.ast.quick;
-import java.util.List;
+import java.util.Iterator;
import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
@@ -19,10 +19,27 @@
*/
public class ASTNewDescriptor implements IASTNewExpressionDescriptor {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#getNewInitializerExpressions()
+ */
+ public Iterator getNewInitializerExpressions() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#getNewPlacementExpressions()
+ */
+ public Iterator getNewPlacementExpressions() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
/* (non-Javadoc)
- * @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#getExpressions()
+ * @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#getTypeIdExpressions()
*/
- public List getExpressions() {
+ public Iterator getNewTypeIdExpressions() {
// TODO Auto-generated method stub
return null;
}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java,v
retrieving revision 1.26
diff -u -r1.26 QuickParseASTFactory.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java 20 Aug 2003 18:05:29 -0000 1.26
+++ parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java 25 Aug 2003 14:51:31 -0000
@@ -155,7 +155,7 @@
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#createNewDescriptor()
*/
- public IASTNewExpressionDescriptor createNewDescriptor(List expressions) {
+ public IASTNewExpressionDescriptor createNewDescriptor(List newPlacementEpressions, List newTypeIdExpressions, List newInitializerExpressions) {
return new ASTNewDescriptor();
}