Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Applied [HEAD] Parser - Enums & Using Clauses

CORE
        Added CompleteParse - UsingDirective & UsingDeclarations 
w/namespace/class/field variable references.
        Added CompleteParse support for enumeration specifiers and 
references in variables & fields. 
        Stubbed out other Scopes/Declarations for COMPLETE_PARSE mode to 
allow indexer team to switch over ASAP. 

TESTS
        Updated CompleteParseASTTests.

JohnC

Index: parser/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/ChangeLog,v
retrieving revision 1.84
diff -u -r1.84 ChangeLog
--- parser/ChangeLog	22 Jul 2003 22:02:21 -0000	1.84
+++ parser/ChangeLog	24 Jul 2003 13:46:39 -0000
@@ -1,3 +1,8 @@
+2003-07-24 John Camelon
+	Added CompleteParse - UsingDirective & UsingDeclarations w/namespace/class/field variable references.
+	Added CompleteParse support for enumeration specifiers and references in variables & fields.  
+	Stubbed out other Scopes/Declarations for COMPLETE_PARSE mode to allow indexer team to switch over ASAP. 
+
 2003-07-22 John Camelon
 	Added in preliminary support for Field/Variable w/cross references on their types.  
 
Index: parser/org/eclipse/cdt/core/parser/ast/IASTEnumerationSpecifier.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerationSpecifier.java,v
retrieving revision 1.4
diff -u -r1.4 IASTEnumerationSpecifier.java
--- parser/org/eclipse/cdt/core/parser/ast/IASTEnumerationSpecifier.java	18 Jul 2003 16:39:22 -0000	1.4
+++ parser/org/eclipse/cdt/core/parser/ast/IASTEnumerationSpecifier.java	24 Jul 2003 13:46:39 -0000
@@ -20,6 +20,5 @@
  */
 public interface IASTEnumerationSpecifier extends ISourceElementCallbackDelegate, IASTScopedTypeSpecifier, IASTOffsetableNamedElement {
 
-	public void addEnumerator( IASTEnumerator enumerator );
 	public Iterator getEnumerators(); 
 }
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.16
diff -u -r1.16 IASTFactory.java
--- parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java	22 Jul 2003 22:02:20 -0000	1.16
+++ parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java	24 Jul 2003 13:46:39 -0000
@@ -40,7 +40,7 @@
     public IASTUsingDeclaration createUsingDeclaration(
         IASTScope scope,
         boolean isTypeName,
-        ITokenDuple name, int startingOffset, int endingOffset);
+        ITokenDuple name, int startingOffset, int endingOffset) throws ASTSemanticException;
     public IASTASMDefinition createASMDefinition(
         IASTScope scope,
         String assembly,
@@ -82,12 +82,12 @@
     public IASTEnumerationSpecifier createEnumerationSpecifier(
         IASTScope scope,
         String name,
-        int startingOffset, int nameOffset);
+        int startingOffset, int nameOffset) throws ASTSemanticException;
     public void addEnumerator(
         IASTEnumerationSpecifier enumeration,
         String string,
         int startingOffset,
-        int endingOffset, IASTExpression initialValue);
+        int endingOffset, IASTExpression initialValue)throws ASTSemanticException;
     public IASTExpression createExpression(
         IASTExpression.Kind kind,
         IASTExpression lhs,
@@ -162,9 +162,9 @@
         ASTAccessVisibility visibility);
         
 	public IASTVariable createVariable(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, 
-		   IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset );
+		   IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset ) throws ASTSemanticException;
 		   
-	public IASTField createField( IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, ASTAccessVisibility visibility);
+	public IASTField createField( IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, ASTAccessVisibility visibility) throws ASTSemanticException;
 	
 	public IASTParameterDeclaration createParameterDeclaration( boolean isConst, IASTTypeSpecifier getTypeSpecifier, List pointerOperators, List arrayModifiers, String parameterName, IASTInitializerClause initializerClause );
 	
Index: parser/org/eclipse/cdt/core/parser/ast/IASTUsingDeclaration.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTUsingDeclaration.java,v
retrieving revision 1.3
diff -u -r1.3 IASTUsingDeclaration.java
--- parser/org/eclipse/cdt/core/parser/ast/IASTUsingDeclaration.java	17 Jul 2003 20:15:13 -0000	1.3
+++ parser/org/eclipse/cdt/core/parser/ast/IASTUsingDeclaration.java	24 Jul 2003 13:46:39 -0000
@@ -18,5 +18,6 @@
 
 	public boolean isTypename(); 
 	public String  usingTypeName(); 
+	public IASTDeclaration getUsingType() throws ASTNotImplementedException; 
 			 
 }
Index: parser/org/eclipse/cdt/internal/core/parser/DeclarationWrapper.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/DeclarationWrapper.java,v
retrieving revision 1.10
diff -u -r1.10 DeclarationWrapper.java
--- parser/org/eclipse/cdt/internal/core/parser/DeclarationWrapper.java	23 Jul 2003 20:20:50 -0000	1.10
+++ parser/org/eclipse/cdt/internal/core/parser/DeclarationWrapper.java	24 Jul 2003 13:46:39 -0000
@@ -18,6 +18,7 @@
 import org.eclipse.cdt.core.parser.ITokenDuple;
 import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
 import org.eclipse.cdt.core.parser.ast.ASTPointerOperator;
+import org.eclipse.cdt.core.parser.ast.ASTSemanticException;
 import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
 import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
 import org.eclipse.cdt.core.parser.ast.IASTFactory;
@@ -298,7 +299,7 @@
     /**
      * @param requestor
      */
-    public List createASTNodes(IASTFactory astFactory)
+    public List createASTNodes(IASTFactory astFactory) throws ASTSemanticException
     {
         this.astFactory = astFactory;
         Iterator i = declarators.iterator();
@@ -310,7 +311,7 @@
     /**
      * @param declarator
      */
-    private IASTDeclaration createASTNode(Declarator declarator)
+    private IASTDeclaration createASTNode(Declarator declarator) throws ASTSemanticException
     {
         boolean isWithinClass = (getScope() instanceof IASTClassSpecifier); //TODO fix this for COMPLETE_PARSE
         boolean isFunction = declarator.isFunction();
@@ -418,7 +419,7 @@
      * @param declarator
      * @return
      */
-    private IASTField createFieldASTNode(Declarator declarator)
+    private IASTField createFieldASTNode(Declarator declarator) throws ASTSemanticException
     {
         return astFactory.createField(
             scope,
@@ -468,7 +469,7 @@
      * @param declarator
      * @return
      */
-    private IASTVariable createVariableASTNode(Declarator declarator)
+    private IASTVariable createVariableASTNode(Declarator declarator) throws ASTSemanticException
     {
         return astFactory.createVariable(
             scope,
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.77
diff -u -r1.77 Parser.java
--- parser/org/eclipse/cdt/internal/core/parser/Parser.java	23 Jul 2003 19:51:30 -0000	1.77
+++ parser/org/eclipse/cdt/internal/core/parser/Parser.java	24 Jul 2003 13:46:41 -0000
@@ -294,8 +294,21 @@
             if (LT(1) == IToken.tSEMI)
             {
                 IToken last = consume(IToken.tSEMI);
-                IASTUsingDeclaration declaration =
-                    astFactory.createUsingDeclaration(scope, typeName, name, firstToken.getOffset(), last.getEndOffset());
+                IASTUsingDeclaration declaration = null;
+                try
+                {
+                    declaration =
+                        astFactory.createUsingDeclaration(
+                            scope,
+                            typeName,
+                            name,
+                            firstToken.getOffset(),
+                            last.getEndOffset());
+                }
+                catch (ASTSemanticException e)
+                {
+                 
+                }
                 declaration.acceptElement( requestor );
             }
             else
@@ -768,7 +781,7 @@
         declSpecifierSeq(false, tryConstructor, sdw);
         try
         {       
-	        if (sdw.getTypeSpecifier() == null )
+	        if (sdw.getTypeSpecifier() == null && sdw.getSimpleType() != IASTSimpleTypeSpecifier.Type.UNSPECIFIED )
 	            sdw.setTypeSpecifier(
 	                astFactory.createSimpleTypeSpecifier(
 	                    scope,
@@ -830,7 +843,15 @@
         
         if( forKR ) return;
         
-        List l = sdw.createASTNodes(astFactory);
+        List l = null; 
+        try
+        {
+            l = sdw.createASTNodes(astFactory);
+        }
+        catch (ASTSemanticException e)
+        {
+        	throw backtrack;
+        }
         Iterator i = l.iterator();
         if (hasFunctionBody && l.size() != 1)
         {
@@ -2128,14 +2149,21 @@
         }
         if (LT(1) == IToken.tLBRACE)
         {
-            IASTEnumerationSpecifier enumeration =
-                astFactory.createEnumerationSpecifier(
-                    sdw.getScope(),
-                    ((identifier == null) ? "" : identifier.getImage()),
-                    mark.getOffset(), 
-                    ((identifier == null)
-                        ? mark.getOffset()
-                        : identifier.getOffset()));
+            IASTEnumerationSpecifier enumeration = null;
+            try
+            {
+                enumeration = astFactory.createEnumerationSpecifier(
+                        sdw.getScope(),
+                        ((identifier == null) ? "" : identifier.getImage()),
+                        mark.getOffset(), 
+                        ((identifier == null)
+                            ? mark.getOffset()
+                            : identifier.getOffset()));
+            }
+            catch (ASTSemanticException e)
+            {
+                
+            }
             consume(IToken.tLBRACE);
             while (LT(1) != IToken.tRBRACE)
             {
@@ -2157,24 +2185,38 @@
   
                 if (LT(1) == IToken.tRBRACE)
                 {
+                    try
+                    {
+                        astFactory.addEnumerator(
+                            enumeration,
+                            enumeratorIdentifier.getImage(),
+                            enumeratorIdentifier.getOffset(),
+                            enumeratorIdentifier.getEndOffset(),
+                            initialValue);
+                    }
+                    catch (ASTSemanticException e1)
+                    {
+                    
+                    }
+                    break;
+                }
+                if (LT(1) != IToken.tCOMMA)
+                {
+                    throw backtrack;
+                }
+                try
+                {
                     astFactory.addEnumerator(
                         enumeration,
                         enumeratorIdentifier.getImage(),
                         enumeratorIdentifier.getOffset(),
                         enumeratorIdentifier.getEndOffset(),
                         initialValue);
-                    break;
                 }
-                if (LT(1) != IToken.tCOMMA)
+                catch (ASTSemanticException e1)
                 {
-                    throw backtrack;
+                
                 }
-                astFactory.addEnumerator(
-                    enumeration,
-                    enumeratorIdentifier.getImage(),
-                    enumeratorIdentifier.getOffset(),
-                    enumeratorIdentifier.getEndOffset(),
-                    initialValue);
                 consume(IToken.tCOMMA);
             }
             IToken t = consume(IToken.tRBRACE);
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTASMDefinition.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTASMDefinition.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTASMDefinition.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTASMDefinition.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,98 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTASMDefinition implements IASTASMDefinition
+{
+    /**
+     * 
+     */
+    public ASTASMDefinition()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTASMDefinition#getBody()
+     */
+    public String getBody()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,76 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ast.ASTClassKind;
+import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTElaboratedTypeSpecifier implements IASTElaboratedTypeSpecifier
+{
+    /**
+     * 
+     */
+    public ASTElaboratedTypeSpecifier()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier#getName()
+     */
+    public String getName()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier#getClassKind()
+     */
+    public ASTClassKind getClassKind()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,64 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate;
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerationReference;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTEnumerationReference
+    extends ASTReference
+    implements IASTEnumerationReference
+{
+	private final IASTEnumerationSpecifier referencedElement;
+    /**
+     * @param offset
+     * @param string
+     * @param specifier
+     */
+    public ASTEnumerationReference(int offset, String string, IASTEnumerationSpecifier specifier)
+    {
+        super( offset, string );
+        referencedElement = specifier;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement()
+     */
+    public ISourceElementCallbackDelegate getReferencedElement()
+    {
+        return referencedElement;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        requestor.acceptEnumerationReference( this );
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationSpecifier.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationSpecifier.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationSpecifier.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationSpecifier.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,135 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerator;
+import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement;
+import org.eclipse.cdt.internal.core.parser.ast.NamedOffsets;
+import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTEnumerationSpecifier
+    extends ASTSymbol
+    implements IASTEnumerationSpecifier
+{
+	private NamedOffsets offsets = new NamedOffsets();
+	private final ASTQualifiedNamedElement qualifiedName;
+    /**
+     * @param symbol
+     */
+    public ASTEnumerationSpecifier(ISymbol symbol, int startingOffset, int nameOffset )
+    {
+        super(symbol);
+        setStartingOffset(startingOffset);
+        setNameOffset( startingOffset );
+        qualifiedName = new ASTQualifiedNamedElement( getOwnerScope(), symbol.getName() );
+    }
+
+
+	private List enumerators = new ArrayList();
+	public void addEnumerator(IASTEnumerator enumerator)
+	{
+		enumerators.add(enumerator);        
+	}
+
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier#getEnumerators()
+     */
+    public Iterator getEnumerators()
+    {
+        return enumerators.iterator();
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        requestor.acceptEnumerationSpecifier(this);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getName()
+     */
+    public String getName()
+    {
+        return getSymbol().getName();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameOffset()
+     */
+    public int getNameOffset()
+    {
+        return offsets.getNameOffset();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameOffset(int)
+     */
+    public void setNameOffset(int o)
+    {
+		offsets.setNameOffset(o);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement#getFullyQualifiedName()
+     */
+    public String[] getFullyQualifiedName()
+    {
+        return qualifiedName.getFullyQualifiedName();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        offsets.setStartingOffset( o );
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        offsets.setEndingOffset( o );
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        return offsets.getStartingOffset();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        return offsets.getEndingOffset();
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerator.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerator.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerator.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerator.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,122 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerator;
+import org.eclipse.cdt.core.parser.ast.IASTExpression;
+import org.eclipse.cdt.internal.core.parser.ast.Offsets;
+import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTEnumerator extends ASTSymbol implements IASTEnumerator
+{
+	private Offsets offsets = new Offsets(); 
+	private final IASTExpression initialValue; 
+    /**
+     * @param enumeratorSymbol
+     * @param startingOffset
+     * @param endingOffset
+     * @param initialValue
+     */
+    public ASTEnumerator(ISymbol enumeratorSymbol, int startingOffset, int endingOffset, IASTExpression initialValue)
+    {
+        super( enumeratorSymbol );
+        setStartingOffset(startingOffset);
+        setEndingOffset( endingOffset );
+        this.initialValue = initialValue;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTEnumerator#getOwnerEnumerationSpecifier()
+     */
+    public IASTEnumerationSpecifier getOwnerEnumerationSpecifier()
+    {
+        return (IASTEnumerationSpecifier)getSymbol().getContainingSymbol().getASTExtension();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTEnumerator#getInitialValue()
+     */
+    public IASTExpression getInitialValue()
+    {
+        return initialValue;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getName()
+     */
+    public String getName()
+    {
+        return symbol.getName();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameOffset()
+     */
+    public int getNameOffset()
+    {
+        return getStartingOffset();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameOffset(int)
+     */
+    public void setNameOffset(int o)
+    {
+        setStartingOffset(o);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        offsets.setStartingOffset(o);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        offsets.setEndingOffset(o);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        return offsets.getStartingOffset();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        return offsets.getEndingOffset();
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,64 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate;
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTField;
+import org.eclipse.cdt.core.parser.ast.IASTFieldReference;
+import org.eclipse.cdt.core.parser.ast.IASTReference;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTFieldReference
+    extends ASTReference
+    implements IASTReference, IASTFieldReference
+{
+    private final IASTField referencedElement;
+    /**
+     * @param offset
+     * @param string
+     * @param field
+     */
+    public ASTFieldReference(int offset, String string, IASTField field)
+    {
+		super(offset, string);
+        referencedElement = field;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement()
+     */
+    public ISourceElementCallbackDelegate getReferencedElement()
+    {
+        return referencedElement;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        requestor.acceptFieldReference(this);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {    
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunction.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunction.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunction.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunction.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,206 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException;
+import org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification;
+import org.eclipse.cdt.core.parser.ast.IASTFunction;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+import org.eclipse.cdt.core.parser.ast.IASTTemplate;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTFunction implements IASTFunction
+{
+    /**
+     * 
+     */
+    public ASTFunction()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#isInline()
+     */
+    public boolean isInline()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#isFriend()
+     */
+    public boolean isFriend()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#isStatic()
+     */
+    public boolean isStatic()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getName()
+     */
+    public String getName()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#getReturnType()
+     */
+    public IASTAbstractDeclaration getReturnType()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#getParameters()
+     */
+    public Iterator getParameters()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#getExceptionSpec()
+     */
+    public IASTExceptionSpecification getExceptionSpec()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#setHasFunctionBody(boolean)
+     */
+    public void setHasFunctionBody(boolean b)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#hasFunctionBody()
+     */
+    public boolean hasFunctionBody()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScope#getDeclarations()
+     */
+    public Iterator getDeclarations() throws ASTNotImplementedException
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameOffset()
+     */
+    public int getNameOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameOffset(int)
+     */
+    public void setNameOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplatedDeclaration#getOwnerTemplateDeclaration()
+     */
+    public IASTTemplate getOwnerTemplateDeclaration()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement#getFullyQualifiedName()
+     */
+    public String[] getFullyQualifiedName()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTLinkageSpecification.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTLinkageSpecification.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTLinkageSpecification.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTLinkageSpecification.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,109 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException;
+import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTLinkageSpecification implements IASTLinkageSpecification
+{
+    /**
+     * 
+     */
+    public ASTLinkageSpecification()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification#getLinkageString()
+     */
+    public String getLinkageString()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScope#getDeclarations()
+     */
+    public Iterator getDeclarations() throws ASTNotImplementedException
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethod.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethod.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethod.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethod.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,271 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
+import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException;
+import org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification;
+import org.eclipse.cdt.core.parser.ast.IASTMethod;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+import org.eclipse.cdt.core.parser.ast.IASTTemplate;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTMethod implements IASTMethod
+{
+    /**
+     * 
+     */
+    public ASTMethod()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTMethod#isVirtual()
+     */
+    public boolean isVirtual()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTMethod#isExplicit()
+     */
+    public boolean isExplicit()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTMethod#isConstructor()
+     */
+    public boolean isConstructor()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTMethod#isDestructor()
+     */
+    public boolean isDestructor()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTMethod#isConst()
+     */
+    public boolean isConst()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTMethod#isVolatile()
+     */
+    public boolean isVolatile()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTMethod#isPureVirtual()
+     */
+    public boolean isPureVirtual()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#isInline()
+     */
+    public boolean isInline()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#isFriend()
+     */
+    public boolean isFriend()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#isStatic()
+     */
+    public boolean isStatic()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getName()
+     */
+    public String getName()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#getReturnType()
+     */
+    public IASTAbstractDeclaration getReturnType()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#getParameters()
+     */
+    public Iterator getParameters()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#getExceptionSpec()
+     */
+    public IASTExceptionSpecification getExceptionSpec()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#setHasFunctionBody(boolean)
+     */
+    public void setHasFunctionBody(boolean b)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTFunction#hasFunctionBody()
+     */
+    public boolean hasFunctionBody()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTMember#getVisiblity()
+     */
+    public ASTAccessVisibility getVisiblity()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScope#getDeclarations()
+     */
+    public Iterator getDeclarations() throws ASTNotImplementedException
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameOffset()
+     */
+    public int getNameOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameOffset(int)
+     */
+    public void setNameOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplatedDeclaration#getOwnerTemplateDeclaration()
+     */
+    public IASTTemplate getOwnerTemplateDeclaration()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement#getFullyQualifiedName()
+     */
+    public String[] getFullyQualifiedName()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterDeclaration.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterDeclaration.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterDeclaration.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterDeclaration.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,81 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.parser.ast.IASTInitializerClause;
+import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTParameterDeclaration implements IASTParameterDeclaration
+{
+    /**
+     * 
+     */
+    public ASTParameterDeclaration()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration#getName()
+     */
+    public String getName()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration#getDefaultValue()
+     */
+    public IASTInitializerClause getDefaultValue()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration#isConst()
+     */
+    public boolean isConst()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration#getPointerOperators()
+     */
+    public Iterator getPointerOperators()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration#getArrayModifiers()
+     */
+    public Iterator getArrayModifiers()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTypeSpecifierOwner#getTypeSpecifier()
+     */
+    public IASTTypeSpecifier getTypeSpecifier()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateDeclaration.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateDeclaration.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateDeclaration.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateDeclaration.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,124 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTTemplateDeclaration implements IASTTemplateDeclaration
+{
+    /**
+     * 
+     */
+    public ASTTemplateDeclaration()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration#isExported()
+     */
+    public boolean isExported()
+    {
+        // TODO Auto-generated method stub
+        return false;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplate#getOwnedDeclaration()
+     */
+    public IASTDeclaration getOwnedDeclaration()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplate#setOwnedDeclaration(org.eclipse.cdt.core.parser.ast.IASTDeclaration)
+     */
+    public void setOwnedDeclaration(IASTDeclaration declaration)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplateParameterList#getTemplateParameters()
+     */
+    public Iterator getTemplateParameters()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateInstantiation.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateInstantiation.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateInstantiation.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateInstantiation.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,106 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTTemplateInstantiation implements IASTTemplateInstantiation
+{
+    /**
+     * 
+     */
+    public ASTTemplateInstantiation()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplate#getOwnedDeclaration()
+     */
+    public IASTDeclaration getOwnedDeclaration()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplate#setOwnedDeclaration(org.eclipse.cdt.core.parser.ast.IASTDeclaration)
+     */
+    public void setOwnedDeclaration(IASTDeclaration declaration)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateSpecialization.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateSpecialization.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateSpecialization.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateSpecialization.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,106 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateSpecialization;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTTemplateSpecialization implements IASTTemplateSpecialization
+{
+    /**
+     * 
+     */
+    public ASTTemplateSpecialization()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplate#getOwnedDeclaration()
+     */
+    public IASTDeclaration getOwnedDeclaration()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTemplate#setOwnedDeclaration(org.eclipse.cdt.core.parser.ast.IASTDeclaration)
+     */
+    public void setOwnedDeclaration(IASTDeclaration declaration)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedef.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedef.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedef.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedef.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,130 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTTypedef implements IASTTypedefDeclaration
+{
+    /**
+     * 
+     */
+    public ASTTypedef()
+    {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getName()
+     */
+    public String getName()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration#getAbstractDeclarator()
+     */
+    public IASTAbstractDeclaration getAbstractDeclarator()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameOffset()
+     */
+    public int getNameOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameOffset(int)
+     */
+    public void setNameOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement#getFullyQualifiedName()
+     */
+    public String[] getFullyQualifiedName()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        // TODO Auto-generated method stub
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDeclaration.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDeclaration.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDeclaration.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDeclaration.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,123 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import java.util.List;
+
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException;
+import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement;
+import org.eclipse.cdt.core.parser.ast.IASTScope;
+import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration;
+import org.eclipse.cdt.internal.core.parser.ast.Offsets;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTUsingDeclaration implements IASTUsingDeclaration
+{
+	private final IASTScope ownerScope;
+    private final boolean isTypeName;
+	private final IASTDeclaration declaration; 
+	private Offsets offsets = new Offsets();
+	private final ASTReferenceStore delegate; 
+	
+    /**
+     * 
+     */
+    public ASTUsingDeclaration( IASTScope ownerScope, IASTDeclaration declaration, boolean isTypeName, int startingOffset, int endingOffset, List references )
+    {
+    	this.ownerScope = ownerScope;
+    	this.isTypeName = isTypeName;
+    	this.declaration = declaration;
+    	setStartingOffset(startingOffset);
+    	setEndingOffset(endingOffset);
+    	delegate = new ASTReferenceStore( references );
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration#isTypename()
+     */
+    public boolean isTypename()
+    {
+        return isTypeName;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration#usingTypeName()
+     */
+    public String usingTypeName()
+    {
+        return ((IASTOffsetableNamedElement)declaration).getName();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int)
+     */
+    public void setStartingOffset(int o)
+    {
+        offsets.setStartingOffset(o);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setEndingOffset(int)
+     */
+    public void setEndingOffset(int o)
+    {
+        offsets.setEndingOffset(o);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getStartingOffset()
+     */
+    public int getStartingOffset()
+    {
+        return offsets.getStartingOffset();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset()
+     */
+    public int getEndingOffset()
+    {
+        return offsets.getEndingOffset();
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTScopedElement#getOwnerScope()
+     */
+    public IASTScope getOwnerScope()
+    {
+        return ownerScope;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        requestor.acceptUsingDeclaration( this );
+        delegate.processReferences(requestor);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration#getUsingType()
+     */
+    public IASTDeclaration getUsingType() throws ASTNotImplementedException
+    {
+        return declaration;
+    }
+}
Index: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java
===================================================================
RCS file: parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java
diff -N parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java	24 Jul 2003 13:46:41 -0000
@@ -0,0 +1,65 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ * 
+ * Contributors: 
+ * IBM Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.parser.ast.complete;
+
+import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate;
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTReference;
+import org.eclipse.cdt.core.parser.ast.IASTVariable;
+import org.eclipse.cdt.core.parser.ast.IASTVariableReference;
+
+/**
+ * @author jcamelon
+ *
+ */
+public class ASTVariableReference
+    extends ASTReference
+    implements IASTReference, IASTVariableReference
+{
+
+    private final IASTVariable referencedElement;
+    /**
+     * @param offset
+     * @param string
+     * @param variable
+     */
+    public ASTVariableReference(int offset, String string, IASTVariable variable)
+    {
+        super( offset, string );
+        referencedElement = variable;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement()
+     */
+    public ISourceElementCallbackDelegate getReferencedElement()
+    {
+        return referencedElement;
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void acceptElement(ISourceElementRequestor requestor)
+    {
+        requestor.acceptVariableReference( this );
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void enterScope(ISourceElementRequestor requestor)
+    {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
+     */
+    public void exitScope(ISourceElementRequestor requestor)
+    {
+    }
+}
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.4
diff -u -r1.4 CompleteParseASTFactory.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java	22 Jul 2003 22:02:20 -0000	1.4
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java	24 Jul 2003 13:46:42 -0000
@@ -66,6 +66,7 @@
 import org.eclipse.cdt.internal.core.parser.pst.IDerivableContainerSymbol;
 import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
 import org.eclipse.cdt.internal.core.parser.pst.ISymbolASTExtension;
+import org.eclipse.cdt.internal.core.parser.pst.ISymbolOwner;
 import org.eclipse.cdt.internal.core.parser.pst.NamespaceSymbolExtension;
 import org.eclipse.cdt.internal.core.parser.pst.ParserSymbolTable;
 import org.eclipse.cdt.internal.core.parser.pst.ParserSymbolTableException;
@@ -101,11 +102,10 @@
 		if( ! iter.hasNext() )
 			throw new ASTSemanticException(); 
 			
-		IToken t1 = (IToken)iter.next();
 		IContainerSymbol symbol = null; 
 		List references = new ArrayList(); 
 		
-        symbol = getScopeToSearchUpon(scope, t1, references );
+        symbol = getScopeToSearchUpon(scope, (IToken)duple.getFirstToken(), iter );
 		
 		while( iter.hasNext() )
 		{
@@ -134,24 +134,19 @@
 
     protected IContainerSymbol getScopeToSearchUpon(
         IASTScope currentScope,
-        IToken firstToken, List references ) throws ASTSemanticException
+        IToken firstToken, Iterator iterator ) throws ASTSemanticException
     {
-		IContainerSymbol symbol = null;
-        if( firstToken.getType() == IToken.tCOLONCOLON )
-        	symbol = pst.getCompilationUnit();
-        else
-        {
-        	try
-        	{
-        		symbol = (IContainerSymbol)scopeToSymbol(currentScope).Lookup( firstToken.getImage() );
-                references.add( createReference( symbol, firstToken.getImage(), firstToken.getOffset() ));
-        	}
-        	catch( ParserSymbolTableException pste )
-        	{
-        		
-        	}
-        }
-        return symbol;
+		if( firstToken.getType() == IToken.tCOLONCOLON )  
+		{ 
+			iterator.next();
+			return pst.getCompilationUnit();
+		}
+		else
+		{
+			return (IContainerSymbol)scopeToSymbol(currentScope);
+		}
+        	
+        
     }
     protected IContainerSymbol scopeToSymbol(IASTScope currentScope)
     {
@@ -165,10 +160,44 @@
         boolean isTypeName,
         ITokenDuple name,
         int startingOffset,
-        int endingOffset)
+        int endingOffset) throws ASTSemanticException
     {
-        // TODO Auto-generated method stub
-        return null;
+        List references = new ArrayList(); 
+        Iterator iter = name.iterator();
+        
+        if( ! iter.hasNext() )
+        	throw new ASTSemanticException();
+        	
+        ISymbol symbol = getScopeToSearchUpon( scope, name.getFirstToken(), iter );
+        
+        while( iter.hasNext() )
+        {
+        	IToken t = (IToken)iter.next(); 
+        	if( t.getType() == IToken.tCOLONCOLON ) continue;
+        	try
+            {
+            	if( t != name.getLastToken() )
+                	symbol = ((IContainerSymbol)symbol).LookupNestedNameSpecifier( t.getImage() );
+                else
+                	symbol = ((IContainerSymbol)symbol).Lookup( t.getImage() );
+            }
+            catch (ParserSymbolTableException e)
+            {
+                throw new ASTSemanticException();
+            }
+        	references.add( createReference( symbol, t.getImage(), t.getOffset() ) );
+        }
+        
+        try
+        {
+            scopeToSymbol(scope).addUsingDeclaration( name.getLastToken().getImage(), symbol.getContainingSymbol() );
+        }
+        catch (ParserSymbolTableException e)
+        {
+        	throw new ASTSemanticException();
+        }
+        return new ASTUsingDeclaration( scope, 
+        	symbol.getASTExtension().getPrimaryDeclaration(), isTypeName, startingOffset, endingOffset, references );
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createASMDefinition(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, int, int)
@@ -179,8 +208,8 @@
         int first,
         int last)
     {
-        // TODO Auto-generated method stub
-        return null;
+        // TODO Fix This
+        return new ASTASMDefinition();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createNamespaceDefinition(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, int, int)
@@ -290,8 +319,8 @@
         String spec,
         int startingOffset)
     {
-        // TODO Auto-generated method stub
-        return null;
+        // TODO FIX THIS
+        return new ASTLinkageSpecification();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ast.ASTClassKind, org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType, org.eclipse.cdt.core.parser.ast.ASTAccessVisibility, org.eclipse.cdt.core.parser.ast.IASTTemplate, int, int)
@@ -356,10 +385,9 @@
         if( ! iterator.hasNext() )
         	throw new ASTSemanticException();
         	
-		IToken t1 = (IToken)iterator.next();
 		IContainerSymbol symbol = null; 
 		
-		symbol = getScopeToSearchUpon(astClassSpec.getOwnerScope(), t1, references );
+		symbol = getScopeToSearchUpon(astClassSpec, (IToken)parentClassName.getFirstToken(), iterator );
 		
 		while( iterator.hasNext() )
 		{
@@ -384,7 +412,7 @@
      * @param string
      * @return
      */
-    private IASTReference createReference(ISymbol symbol, String string, int offset ) throws ASTSemanticException 
+    protected IASTReference createReference(ISymbol symbol, String string, int offset ) throws ASTSemanticException 
     {
         if( symbol.getType() == TypeInfo.t_namespace )
         {
@@ -396,8 +424,29 @@
 		{  
 			return new ASTClassReference( offset, string, (IASTClassSpecifier)symbol.getASTExtension().getPrimaryDeclaration() );
 		}
-//		else if( symbol.getType() == ParserSymbolTable.TypeInfo.t_enumeration )
-//			return new 
+		else if( symbol.getType() == TypeInfo.t_enumeration )
+			return new ASTEnumerationReference( offset, string,  (IASTEnumerationSpecifier)symbol.getASTExtension().getPrimaryDeclaration() );
+		else if( ( symbol.getType() == TypeInfo.t_type ) || 
+				( symbol.getType() == TypeInfo.t_bool )||
+				( symbol.getType() == TypeInfo.t_char  ) ||     
+				( symbol.getType() == TypeInfo.t_wchar_t )||
+				( symbol.getType() == TypeInfo.t_int )   ||
+				( symbol.getType() == TypeInfo.t_float )||
+				( symbol.getType() == TypeInfo.t_double ) ||    
+				( symbol.getType() == TypeInfo.t_void )  )
+			
+		{
+			if( symbol.getContainingSymbol().getType() == TypeInfo.t_class || 
+				symbol.getContainingSymbol().getType() == TypeInfo.t_struct || 
+				symbol.getContainingSymbol().getType() == TypeInfo.t_union )
+			{
+				return new ASTFieldReference( offset, string, (IASTField)symbol.getASTExtension().getPrimaryDeclaration());
+			}
+			else
+			{
+				return new ASTVariableReference( offset, string, (IASTVariable)symbol.getASTExtension().getPrimaryDeclaration());
+			}
+		}
         throw new ASTSemanticException(); 
     }
 
@@ -410,8 +459,8 @@
         int startingOffset,
         int endOffset)
     {
-        // TODO Auto-generated method stub
-        return null;
+    	//TODO FIX THIS
+        return new ASTElaboratedTypeSpecifier();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createEnumerationSpecifier(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, int, int)
@@ -420,10 +469,32 @@
         IASTScope scope,
         String name,
         int startingOffset,
-        int nameOffset)
+        int nameOffset) throws ASTSemanticException
     {
-        // TODO Auto-generated method stub
-        return null;
+		IContainerSymbol containerSymbol = scopeToSymbol(scope);
+		TypeInfo.eType pstType = TypeInfo.t_enumeration;
+			
+		IDerivableContainerSymbol classSymbol = pst.newDerivableContainerSymbol( name, pstType );
+		try
+		{
+			containerSymbol.addSymbol( classSymbol );
+		}
+		catch (ParserSymbolTableException e)
+		{
+			throw new ASTSemanticException();
+		}
+        
+        ASTEnumerationSpecifier enumSpecifier = new ASTEnumerationSpecifier( classSymbol, startingOffset, nameOffset );
+		
+		try
+		{
+			attachSymbolExtension(classSymbol, enumSpecifier );
+		}
+		catch (ExtensionException e1)
+		{
+			throw new ASTSemanticException();
+		}
+		return enumSpecifier;
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#addEnumerator(org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier, java.lang.String, int, int, org.eclipse.cdt.core.parser.ast.IASTExpression)
@@ -433,9 +504,30 @@
         String string,
         int startingOffset,
         int endingOffset,
-        IASTExpression initialValue)
+        IASTExpression initialValue) throws ASTSemanticException
     {
-        // TODO Auto-generated method stub
+        IContainerSymbol enumerationSymbol = (IContainerSymbol)((ISymbolOwner)enumeration).getSymbol();
+        
+        ISymbol enumeratorSymbol = pst.newSymbol( string, TypeInfo.t_enumerator );
+        try
+        {
+            enumerationSymbol.addSymbol( enumeratorSymbol );
+        }
+        catch (ParserSymbolTableException e1)
+        {
+			throw new ASTSemanticException();
+        }
+        ASTEnumerator enumerator = new ASTEnumerator( enumeratorSymbol, startingOffset, endingOffset, initialValue ); 
+        ((ASTEnumerationSpecifier)enumeration).addEnumerator( enumerator );
+        try
+        {
+            attachSymbolExtension( enumeratorSymbol, enumerator );
+        }
+        catch (ExtensionException e)
+        {
+            throw new ASTSemanticException();
+        }
+        
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createExpression(org.eclipse.cdt.core.parser.ast.IASTExpression.Kind, org.eclipse.cdt.core.parser.ast.IASTExpression, org.eclipse.cdt.core.parser.ast.IASTExpression, org.eclipse.cdt.core.parser.ast.IASTExpression, java.lang.String, java.lang.String, java.lang.String, org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor)
@@ -450,7 +542,7 @@
         String literal,
         IASTNewExpressionDescriptor newDescriptor)
     {
-        // TODO Auto-generated method stub
+        // TODO FIX THIS
         return null;
     }
     /* (non-Javadoc)
@@ -458,7 +550,7 @@
      */
     public IASTNewExpressionDescriptor createNewDescriptor()
     {
-        // TODO Auto-generated method stub
+        // TODO FIX THIS
         return null;
     }
     /* (non-Javadoc)
@@ -553,7 +645,7 @@
 			Iterator i = typeName.iterator();
 			IToken first = typeName.getFirstToken();
 			
-			IContainerSymbol typeSymbol = null;
+			ISymbol typeSymbol = null;
 			if( first.getType() == IToken.tCOLONCOLON  )
 			{
 				typeSymbol = pst.getCompilationUnit();
@@ -571,7 +663,11 @@
 				
 				try
                 {
-                    typeSymbol = typeSymbol.LookupNestedNameSpecifier( current.getImage());
+                	if( current != typeName.getLastToken() )
+                    	typeSymbol = ((IContainerSymbol)typeSymbol).LookupNestedNameSpecifier( current.getImage());
+                    else
+						typeSymbol = ((IContainerSymbol)typeSymbol).Lookup( current.getImage());
+						
                     references.add( createReference( typeSymbol, current.getImage(), current.getOffset() ));
                 }
                 catch (ParserSymbolTableException e)
@@ -607,7 +703,7 @@
         IASTTemplate ownerTemplate)
     {
         // TODO Auto-generated method stub
-        return null;
+        return new ASTFunction();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createAbstractDeclaration(boolean, org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier, java.util.List, java.util.List)
@@ -645,7 +741,7 @@
         ASTAccessVisibility visibility)
     {
         // TODO Auto-generated method stub
-        return null;
+        return new ASTMethod();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createVariable(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, boolean, org.eclipse.cdt.core.parser.ast.IASTInitializerClause, org.eclipse.cdt.core.parser.ast.IASTExpression, org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration, boolean, boolean, boolean, boolean, int, int)
@@ -662,7 +758,7 @@
         boolean isRegister,
         boolean isStatic,
         int startingOffset,
-        int nameOffset)
+        int nameOffset) throws ASTSemanticException
     {
 		List references = new ArrayList(); 
         ISymbol newSymbol = cloneSimpleTypeSymbol(scope, name, abstractDeclaration, references);
@@ -675,7 +771,16 @@
             isStatic,
             newSymbol);
         
-        return new ASTVariable( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, references );        
+        ASTVariable variable = new ASTVariable( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, references );
+        try
+        {
+            attachSymbolExtension(newSymbol, variable );
+        }
+        catch (ExtensionException e)
+        {
+            throw new ASTSemanticException();
+        }
+        return variable;        
     }
     private void setSymbolBits(
         boolean isAuto,
@@ -693,7 +798,7 @@
         newSymbol.getTypeInfo().setBit( isStatic, TypeInfo.isStatic );
         newSymbol.getTypeInfo().setBit( abstractDeclaration.isConst(), TypeInfo.isConst );
     }
-    private ISymbol cloneSimpleTypeSymbol(
+    protected ISymbol cloneSimpleTypeSymbol(
         IASTScope scope,
         String name,
         IASTAbstractDeclaration abstractDeclaration,
@@ -734,7 +839,7 @@
         boolean isStatic,
         int startingOffset,
         int nameOffset,
-        ASTAccessVisibility visibility)
+        ASTAccessVisibility visibility) throws ASTSemanticException
     {
 		List references = new ArrayList(); 
 		ISymbol newSymbol = cloneSimpleTypeSymbol(scope, name, abstractDeclaration, references);
@@ -746,8 +851,16 @@
 			isRegister,
 			isStatic,
 			newSymbol);
-        
-		return new ASTField( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, references, visibility );        
+		ASTField field = new ASTField( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, references, visibility );
+		try
+		{
+			attachSymbolExtension(newSymbol, field );
+		}
+		catch (ExtensionException e)
+		{
+			throw new ASTSemanticException();
+		}
+		return field;        
 
 
     }
@@ -763,7 +876,7 @@
         IASTInitializerClause initializerClause)
     {
         // TODO Auto-generated method stub
-        return null;
+        return new ASTParameterDeclaration();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTScope, java.util.List, boolean, int)
@@ -775,7 +888,7 @@
         int startingOffset)
     {
         // TODO Auto-generated method stub
-        return null;
+        return new ASTTemplateDeclaration();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createTemplateParameter(org.eclipse.cdt.core.parser.ast.IASTTemplateParameter.ParamKind, java.lang.String, java.lang.String, org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration, java.util.List)
@@ -798,7 +911,7 @@
         int startingOffset)
     {
         // TODO Auto-generated method stub
-        return null;
+        return new ASTTemplateInstantiation();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createTemplateSpecialization(org.eclipse.cdt.core.parser.ast.IASTScope, int)
@@ -808,7 +921,7 @@
         int startingOffset)
     {
         // TODO Auto-generated method stub
-        return null;
+        return new ASTTemplateSpecialization();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createTypedef(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration, int, int)
@@ -821,7 +934,7 @@
         int nameOffset)
     {
         // TODO Auto-generated method stub
-        return null;
+        return new ASTTypedef();
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createTypeSpecDeclaration(org.eclipse.cdt.core.parser.ast.IASTScope, org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier, org.eclipse.cdt.core.parser.ast.IASTTemplate, int, int)
Index: parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerationSpecifier.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerationSpecifier.java,v
retrieving revision 1.5
diff -u -r1.5 ASTEnumerationSpecifier.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerationSpecifier.java	21 Jul 2003 17:29:54 -0000	1.5
+++ parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerationSpecifier.java	24 Jul 2003 13:46:42 -0000
@@ -101,9 +101,7 @@
     {
         return Collections.unmodifiableList( enumerators ).iterator();
     }
-    /* (non-Javadoc)
-     * @see org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier#addEnumerator(org.eclipse.cdt.core.parser.ast.IASTEnumerator)
-     */
+
     public void addEnumerator(IASTEnumerator enumerator)
     {
 		enumerators.add(enumerator);        
Index: parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerator.java,v
retrieving revision 1.6
diff -u -r1.6 ASTEnumerator.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerator.java	22 Jul 2003 22:02:20 -0000	1.6
+++ parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerator.java	24 Jul 2003 13:46:42 -0000
@@ -42,7 +42,6 @@
         offsets.setStartingOffset( startingOffset );
 		offsets.setNameOffset( startingOffset );
 		offsets.setEndingOffset( endingOffset );
-		enumeration.addEnumerator(this);
 		this.initialValue = initialValue;
     }
     /* (non-Javadoc)
Index: parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDeclaration.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDeclaration.java,v
retrieving revision 1.5
diff -u -r1.5 ASTUsingDeclaration.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDeclaration.java	21 Jul 2003 17:29:54 -0000	1.5
+++ parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDeclaration.java	24 Jul 2003 13:46:42 -0000
@@ -11,6 +11,8 @@
 package org.eclipse.cdt.internal.core.parser.ast.quick;
 
 import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException;
+import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
 import org.eclipse.cdt.core.parser.ast.IASTScope;
 import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration;
 import org.eclipse.cdt.internal.core.parser.ast.Offsets;
@@ -95,5 +97,12 @@
      */
     public void exitScope(ISourceElementRequestor requestor)
     {
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration#getUsingType()
+     */
+    public IASTDeclaration getUsingType() throws ASTNotImplementedException
+    {
+    	throw new ASTNotImplementedException();
     }
 }
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.16
diff -u -r1.16 QuickParseASTFactory.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java	22 Jul 2003 22:02:20 -0000	1.16
+++ parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java	24 Jul 2003 13:46:42 -0000
@@ -153,6 +153,7 @@
     public void addEnumerator(IASTEnumerationSpecifier enumeration, String string, int startingOffset, int endingOffset, IASTExpression initialValue)
     {
      	IASTEnumerator enumerator = new ASTEnumerator( enumeration, string, startingOffset, endingOffset, initialValue );
+     	((ASTEnumerationSpecifier)enumeration).addEnumerator( enumerator );
     }
 
 	/* (non-Javadoc)
Index: parser/org/eclipse/cdt/internal/core/parser/pst/ForewardDeclaredSymbolExtension.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/ForewardDeclaredSymbolExtension.java,v
retrieving revision 1.2
diff -u -r1.2 ForewardDeclaredSymbolExtension.java
--- parser/org/eclipse/cdt/internal/core/parser/pst/ForewardDeclaredSymbolExtension.java	22 Jul 2003 22:02:20 -0000	1.2
+++ parser/org/eclipse/cdt/internal/core/parser/pst/ForewardDeclaredSymbolExtension.java	24 Jul 2003 13:46:42 -0000
@@ -14,7 +14,6 @@
 import java.util.NoSuchElementException;
 
 import org.eclipse.cdt.internal.core.parser.ast.complete.ASTSymbol;
-import org.eclipse.cdt.internal.core.parser.pst.ISymbolASTExtension.ExtensionException;
 
 /**
  * @author jcamelon
Index: parser/org/eclipse/cdt/internal/core/parser/pst/NamespaceSymbolExtension.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/NamespaceSymbolExtension.java,v
retrieving revision 1.2
diff -u -r1.2 NamespaceSymbolExtension.java
--- parser/org/eclipse/cdt/internal/core/parser/pst/NamespaceSymbolExtension.java	22 Jul 2003 22:02:20 -0000	1.2
+++ parser/org/eclipse/cdt/internal/core/parser/pst/NamespaceSymbolExtension.java	24 Jul 2003 13:46:42 -0000
@@ -16,7 +16,6 @@
 import java.util.NoSuchElementException;
 
 import org.eclipse.cdt.internal.core.parser.ast.complete.ASTSymbol;
-import org.eclipse.cdt.internal.core.parser.pst.ISymbolASTExtension.ExtensionException;
 
 /**
  * @author jcamelon
Index: parser/org/eclipse/cdt/internal/core/parser/pst/StandardSymbolExtension.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/StandardSymbolExtension.java,v
retrieving revision 1.2
diff -u -r1.2 StandardSymbolExtension.java
--- parser/org/eclipse/cdt/internal/core/parser/pst/StandardSymbolExtension.java	22 Jul 2003 22:02:20 -0000	1.2
+++ parser/org/eclipse/cdt/internal/core/parser/pst/StandardSymbolExtension.java	24 Jul 2003 13:46:42 -0000
@@ -14,7 +14,6 @@
 import java.util.NoSuchElementException;
 
 import org.eclipse.cdt.internal.core.parser.ast.complete.ASTSymbol;
-import org.eclipse.cdt.internal.core.parser.pst.ISymbolASTExtension.ExtensionException;
 
 
 /**
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/ChangeLog,v
retrieving revision 1.29
diff -u -r1.29 ChangeLog
--- ChangeLog	22 Jul 2003 22:02:24 -0000	1.29
+++ ChangeLog	24 Jul 2003 13:46:25 -0000
@@ -1,3 +1,6 @@
+2003-07-24 John Camelon
+	Updated CompleteParseASTTests.
+
 2003-07-22 John Camelon
 	Updated CompleteParseASTTests.
 
Index: parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java,v
retrieving revision 1.3
diff -u -r1.3 CompleteParseASTTest.java
--- parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java	22 Jul 2003 22:02:24 -0000	1.3
+++ parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java	24 Jul 2003 13:46:25 -0000
@@ -34,6 +34,7 @@
 import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
 import org.eclipse.cdt.core.parser.ast.IASTEnumerationReference;
 import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerator;
 import org.eclipse.cdt.core.parser.ast.IASTField;
 import org.eclipse.cdt.core.parser.ast.IASTFieldReference;
 import org.eclipse.cdt.core.parser.ast.IASTFunction;
@@ -661,4 +662,57 @@
 		assertEquals( f.getName(), "x" );
 		assertEquals( ((IASTSimpleTypeSpecifier)f.getAbstractDeclaration().getTypeSpecifier()).getType(), IASTSimpleTypeSpecifier.Type.DOUBLE ); 
 	}
+	
+	public void testUsingClauses() throws Exception
+	{
+		Iterator declarations = parse( "namespace A { namespace B { int x;  class C { static int y = 5; }; } } \n using namespace A::B;\n using A::B::x;using A::B::C;using A::B::C::y;").getDeclarations();
+		IASTNamespaceDefinition namespaceA = (IASTNamespaceDefinition)declarations.next();
+		IASTNamespaceDefinition  namespaceB = (IASTNamespaceDefinition)getDeclarations( namespaceA ).next();
+		Iterator i = getDeclarations( namespaceB );
+		IASTVariable variableX = (IASTVariable)i.next();
+		IASTClassSpecifier classC = ((IASTClassSpecifier)((IASTAbstractTypeSpecifierDeclaration)i.next()).getTypeSpecifier());
+		IASTField fieldY = (IASTField)getDeclarations( classC ).next(); 
+		assertQualifiedName( fieldY.getFullyQualifiedName(), new String [] { "A", "B", "C", "y" } );		
+		IASTUsingDirective directive = (IASTUsingDirective)declarations.next();
+		assertEquals( directive.getNamespaceDefinition(), namespaceB );
+		IASTUsingDeclaration declaration = (IASTUsingDeclaration)declarations.next();
+		assertEquals( declaration.getUsingType(), variableX );
+		declaration = (IASTUsingDeclaration)declarations.next();
+		assertEquals( declaration.getUsingType(), classC );
+		declaration = (IASTUsingDeclaration)declarations.next();
+		assertEquals( declaration.getUsingType(), fieldY );
+		assertEquals( callback.getReferences().size(), 12 );
+		
+	}
+	
+	public void testEnumerations() throws Exception
+	{
+		Iterator declarations = parse( "namespace A { enum E { e1, e2, e3 }; E varE;}").getDeclarations();
+		IASTNamespaceDefinition namespaceA = (IASTNamespaceDefinition)declarations.next(); 
+		Iterator namespaceMembers = getDeclarations( namespaceA ); 
+		IASTEnumerationSpecifier enumE = (IASTEnumerationSpecifier)((IASTAbstractTypeSpecifierDeclaration)namespaceMembers.next()).getTypeSpecifier();
+		assertEquals( enumE.getName(), "E");
+		assertQualifiedName( enumE.getFullyQualifiedName(), new String [] { "A", "E" } );		
+		Iterator enumerators = enumE.getEnumerators();
+		IASTEnumerator enumerator_e1 = (IASTEnumerator)enumerators.next();
+		IASTEnumerator enumerator_e2 = (IASTEnumerator)enumerators.next();
+		IASTEnumerator enumerator_e3 = (IASTEnumerator)enumerators.next();
+		assertFalse( enumerators.hasNext() );
+		assertEquals( enumerator_e1.getName(), "e1");
+		assertEquals( enumerator_e2.getName(), "e2");
+		assertEquals( enumerator_e3.getName(), "e3");
+		IASTVariable varE = (IASTVariable)namespaceMembers.next();
+		assertEquals( ((IASTSimpleTypeSpecifier)varE.getAbstractDeclaration().getTypeSpecifier()).getTypeSpecifier(), enumE );
+	}
+	
+	protected void assertQualifiedName(String [] fromAST, String [] theTruth)
+	 {
+		 assertNotNull( fromAST );
+		 assertNotNull( theTruth );
+		 assertEquals( fromAST.length, theTruth.length );
+		 for( int i = 0; i < fromAST.length; ++i )
+		 {
+			 assertEquals( fromAST[i], theTruth[i]);
+		 }
+	 }
 }

Back to the top