Skip to main content

[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();
 	}
 

Back to the top