Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Resubmitted: Re: Rejected : Re: [cdt-patch] ParserFactory functions now take a ParserLanguage Parameter

The projects in the tests did not have a CC nature, so they were being 
parsed as C instead of C++.

-Andrew






John Camelon/Ottawa/IBM@IBMCA 
Sent by: cdt-patch-admin@xxxxxxxxxxx
09/08/2003 12:01 PM
Please respond to
cdt-patch@xxxxxxxxxxx


To
cdt-patch@xxxxxxxxxxx
cc

Subject
Rejected : Re: [cdt-patch] ParserFactory functions now take a 
ParserLanguage Parameter






22 failures in the automated suite, relating to Search & Indexer. 
Please fix and resubmit your patch. 

Thanks,
JohnC




Andrew Niefer/Ottawa/IBM@IBMCA 
Sent by: cdt-patch-admin@xxxxxxxxxxx
09/08/2003 11:00 AM
Please respond to
cdt-patch@xxxxxxxxxxx


To
cdt-patch@xxxxxxxxxxx
cc

Subject
[cdt-patch] ParserFactory functions now take a ParserLanguage Parameter






Core : 
- Create ParserLanguage.java
- Modified ParserFactory functions to take ParserLanguage as parameter
- Modifier Parser, Scanner & ParserSymbolTable to use new ParserLanguage 
class
- Update call to ParserFactory in Indexer, Search, CModelBuilder & 
Dependency Tree

Core.tests:
- Updated calls to ParserFactory to specify which language to use

UI:
-CStructorCreator uses the parser, modified call to ParserFactory to 
specify CPP language.
  (this is the same behaviour as before)

-Andrew

[attachment "patch_09.08.03(cdt.core).txt" deleted by John 
Camelon/Ottawa/IBM] [attachment "patch_09.08.03(cdt.core.tests).txt" 
deleted by John Camelon/Ottawa/IBM] [attachment 
"patch_09.08.03(cdt.ui).txt" deleted by John Camelon/Ottawa/IBM] 

_______________________________________________
cdt-patch mailing list
cdt-patch@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-patch

Index: dependency/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dependency/ChangeLog,v
retrieving revision 1.1
diff -u -r1.1 ChangeLog
--- dependency/ChangeLog	24 Jul 2003 14:15:06 -0000	1.1
+++ dependency/ChangeLog	8 Sep 2003 17:46:31 -0000
@@ -1,3 +1,8 @@
+2003-09-08 Andrew Niefer
+	- Modified calls to ParserFactory to specify which language to use
+	- Modified IDependencyTree.add to take ParserLanguage as a parameter so that it can
+	  be passed on when creating the preprocessor
+
 2003-07-23 Bogdan Gheorghe
 
 	Added initial dependency implementation
Index: dependency/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dependency/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java,v
retrieving revision 1.2
diff -u -r1.2 AddFileToDependencyTree.java
--- dependency/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java	12 Aug 2003 20:20:04 -0000	1.2
+++ dependency/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java	8 Sep 2003 17:46:31 -0000
@@ -13,7 +13,9 @@
 
 import java.io.IOException;
 
+import org.eclipse.cdt.core.model.CoreModel;
 import org.eclipse.cdt.core.parser.IScannerInfo;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.internal.core.index.IDocument;
 import org.eclipse.cdt.internal.core.index.impl.IFileDocument;
 import org.eclipse.cdt.internal.core.parser.ScannerInfo;
@@ -75,7 +77,9 @@
 		String docPath = resource.getLocation().toOSString();
 		IScannerInfo newInfo = new ScannerInfo((this.buildInfo != null) ? this.buildInfo.getDefinedSymbols() : null,(this.buildInfo != null) ? this.buildInfo.getIncludePaths() : null);
 		
-		dTree.add(document,docPath,newInfo);
+		ParserLanguage language = CoreModel.getDefault().hasCCNature( resource.getProject() ) ? ParserLanguage.CPP : ParserLanguage.C;
+		
+		dTree.add(document,docPath,newInfo, language);
 		return true;
 	}
 	
Index: dependency/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dependency/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java,v
retrieving revision 1.1
diff -u -r1.1 DependencyTree.java
--- dependency/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java	24 Jul 2003 14:15:06 -0000	1.1
+++ dependency/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java	8 Sep 2003 17:46:31 -0000
@@ -19,6 +19,7 @@
 
 import org.eclipse.cdt.core.parser.IPreprocessor;
 import org.eclipse.cdt.core.parser.IScannerInfo;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.index.IDocument;
@@ -111,7 +112,7 @@
 	 * Add the file that will be preprocessed to the tree, create a new
 	 * preprocessor output and preprocess!
 	 */
-	public void add(IDocument document, String docPath, IScannerInfo newInfo) throws IOException  {
+	public void add(IDocument document, String docPath, IScannerInfo newInfo, ParserLanguage language) throws IOException  {
 		IndexedFile indexedFile= addsTree.getIndexedFile(document.getName());
 		//if (indexedFile != null)
 			//remove(indexedFile, 0);
@@ -120,7 +121,7 @@
 		
 		output.addDocument(document);
 		
-		IPreprocessor preprocessor = ParserFactory.createPreprocessor( new StringReader( document.getStringContent() ),docPath , newInfo, ParserMode.COMPLETE_PARSE,depReq);
+		IPreprocessor preprocessor = ParserFactory.createPreprocessor( new StringReader( document.getStringContent() ),docPath , newInfo, ParserMode.COMPLETE_PARSE, language, depReq);
 		preprocessor.process();
 	}
 	/**
Index: dependency/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dependency/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java,v
retrieving revision 1.1
diff -u -r1.1 IDependencyTree.java
--- dependency/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java	24 Jul 2003 14:15:06 -0000	1.1
+++ dependency/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java	8 Sep 2003 17:46:31 -0000
@@ -15,6 +15,7 @@
 import java.io.IOException;
 
 import org.eclipse.cdt.core.parser.IScannerInfo;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.internal.core.index.IDocument;
 import org.eclipse.cdt.internal.core.index.IQueryResult;
 import org.eclipse.core.runtime.IPath;
@@ -23,7 +24,7 @@
 	/**
 	 * Adds the given document to the index.
 	 */
-	void add(IDocument document, String docPath, IScannerInfo newInfo) throws IOException;
+	void add(IDocument document, String docPath, IScannerInfo newInfo, ParserLanguage language) throws IOException;
 	/**
 	 * Empties the index.
 	 */
Index: index/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/ChangeLog,v
retrieving revision 1.15
diff -u -r1.15 ChangeLog
--- index/ChangeLog	5 Sep 2003 18:31:39 -0000	1.15
+++ index/ChangeLog	8 Sep 2003 17:46:32 -0000
@@ -1,3 +1,6 @@
+2003-09-08 Andrew Niefer
+	- Modified calls to ParserFactory to specify which language to use
+
 2003-09-05 Andrew Niefer
 	- Modified how AbstractIndexer creates the fully qualified name for an enumerator (spec 7.2-10)
 
Index: index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java,v
retrieving revision 1.8
diff -u -r1.8 SourceIndexer.java
--- index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java	26 Aug 2003 19:15:58 -0000	1.8
+++ index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java	8 Sep 2003 17:46:32 -0000
@@ -19,9 +19,11 @@
 import java.io.StringReader;
 
 import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.model.CoreModel;
 import org.eclipse.cdt.core.parser.IParser;
 import org.eclipse.cdt.core.parser.IScannerInfo;
 import org.eclipse.cdt.core.parser.IScannerInfoProvider;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.index.IDocument;
@@ -76,9 +78,12 @@
 		  }
 		}
 		
+		//C or CPP?
+		ParserLanguage language = CoreModel.getDefault().hasCCNature(currentProject) ? ParserLanguage.CPP : ParserLanguage.C;
+		
 		IParser parser = ParserFactory.createParser( 
-							ParserFactory.createScanner( new StringReader( document.getStringContent() ), resourceFile.getLocation().toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, requestor ), 
-							requestor, ParserMode.COMPLETE_PARSE);
+							ParserFactory.createScanner( new StringReader( document.getStringContent() ), resourceFile.getLocation().toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, requestor ), 
+							requestor, ParserMode.COMPLETE_PARSE, language );
 		
 		try{
 			boolean retVal = parser.parse();
Index: model/org/eclipse/cdt/internal/core/model/CModelBuilder.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder.java,v
retrieving revision 1.15
diff -u -r1.15 CModelBuilder.java
--- model/org/eclipse/cdt/internal/core/model/CModelBuilder.java	28 Aug 2003 15:50:31 -0000	1.15
+++ model/org/eclipse/cdt/internal/core/model/CModelBuilder.java	8 Sep 2003 17:46:32 -0000
@@ -23,6 +23,7 @@
 import org.eclipse.cdt.core.model.ITemplate;
 import org.eclipse.cdt.core.parser.IParser;
 import org.eclipse.cdt.core.parser.IQuickParseCallback;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ast.ASTClassKind;
@@ -74,10 +75,12 @@
 	{
 		ParserMode mode = quick ? ParserMode.QUICK_PARSE : ParserMode.COMPLETE_PARSE; 
 		quickParseCallback = ParserFactory.createQuickParseCallback(); 
+		
+		ParserLanguage language = hasCppNature ? ParserLanguage.CPP : ParserLanguage.C;
 		IParser parser = ParserFactory.createParser( 
 			ParserFactory.createScanner( new StringReader( code ), "code", 
-			new ScannerInfo(), mode, quickParseCallback), quickParseCallback, mode );
-		parser.setCppNature(hasCppNature);
+			new ScannerInfo(), mode, language, quickParseCallback), quickParseCallback, mode, language );
+		
 		if( ! parser.parse() && throwExceptionOnError )
 			throw new ParserException("Parse failure");
 		return quickParseCallback.getCompilationUnit(); 
Index: parser/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/ChangeLog,v
retrieving revision 1.114
diff -u -r1.114 ChangeLog
--- parser/ChangeLog	8 Sep 2003 12:31:21 -0000	1.114
+++ parser/ChangeLog	8 Sep 2003 17:46:32 -0000
@@ -1,3 +1,8 @@
+2003-09-08 Andrew Niefer
+	- Created ParserLanguage.java
+	- Updated Factories to take language as parameter when create scanner & parser
+	- Updated Parser, Scanner & ParserSymbolTable to take language in their constructor
+
 2003-09-05 Hoda Amer
 	- Added references to variables with pointers in solution 
 	of bug#42453:Expression result types not computed
Index: parser/org/eclipse/cdt/core/parser/IParser.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IParser.java,v
retrieving revision 1.8
diff -u -r1.8 IParser.java
--- parser/org/eclipse/cdt/core/parser/IParser.java	13 Aug 2003 21:51:48 -0000	1.8
+++ parser/org/eclipse/cdt/core/parser/IParser.java	8 Sep 2003 17:46:32 -0000
@@ -48,14 +48,14 @@
 	 * 
 	 * @return	true for C++, false for C
 	 */
-	public boolean isCppNature();
+	public ParserLanguage getLanguage();
 	
 	/**
 	 * Set the Parser explicitly to be a C or C++ parser.
 	 * 
-	 * @param b		true for C++, false for C 
+	 * @param l		CPP or C 
 	 */
-	public void setCppNature(boolean b);
+	public void setLanguage( ParserLanguage l);
 	
 	/**
 	 * If an error was encountered, give us the offset of the token that caused the error.  
Index: parser/org/eclipse/cdt/core/parser/IScanner.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IScanner.java,v
retrieving revision 1.11
diff -u -r1.11 IScanner.java
--- parser/org/eclipse/cdt/core/parser/IScanner.java	25 Aug 2003 12:19:38 -0000	1.11
+++ parser/org/eclipse/cdt/core/parser/IScanner.java	8 Sep 2003 17:46:32 -0000
@@ -23,7 +23,7 @@
 	public IToken nextToken() throws ScannerException, EndOfFile;
 	public IToken nextToken( boolean next ) throws ScannerException, EndOfFile;
 	 
-	public void setCppNature( boolean value );
+	public void setLanguage( ParserLanguage value );
 		
 	public int  getCount();
 	public int  getDepth();
Index: parser/org/eclipse/cdt/core/parser/ParserFactory.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java,v
retrieving revision 1.9
diff -u -r1.9 ParserFactory.java
--- parser/org/eclipse/cdt/core/parser/ParserFactory.java	18 Jul 2003 16:39:22 -0000	1.9
+++ parser/org/eclipse/cdt/core/parser/ParserFactory.java	8 Sep 2003 17:46:32 -0000
@@ -35,49 +35,49 @@
  */
 public class ParserFactory {
 
-	public static IASTFactory createASTFactory( ParserMode mode )
+	public static IASTFactory createASTFactory( ParserMode mode, ParserLanguage language )
 	{
 		if( mode == ParserMode.QUICK_PARSE )
 			return new QuickParseASTFactory(); 
 		else
-			return new CompleteParseASTFactory(); 
+			return new CompleteParseASTFactory( language ); 
 	}
 	
-    public static IParser createParser( IScanner scanner, ISourceElementRequestor callback, ParserMode mode )
+    public static IParser createParser( IScanner scanner, ISourceElementRequestor callback, ParserMode mode, ParserLanguage language )
     {
-        return createParser(scanner, callback, mode, null, null);
+        return createParser(scanner, callback, mode, language, null, null);
     }
  	
-	public static IParser createParser( IScanner scanner, ISourceElementRequestor callback, ParserMode mode, IProblemReporter problemReporter, ITranslationResult unitResult )
+	public static IParser createParser( IScanner scanner, ISourceElementRequestor callback, ParserMode mode, ParserLanguage language, IProblemReporter problemReporter, ITranslationResult unitResult )
 	{
 		ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode ); 
 		ISourceElementRequestor ourCallback = (( callback == null) ? new NullSourceElementRequestor() : callback );   
-		return new Parser( scanner, ourCallback, ourMode, problemReporter, unitResult );
+		return new Parser( scanner, ourCallback, ourMode, language, problemReporter, unitResult );
 	}
  	
-    public static IScanner createScanner( Reader input, String fileName, IScannerInfo config, ParserMode mode, ISourceElementRequestor requestor )
+    public static IScanner createScanner( Reader input, String fileName, IScannerInfo config, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor )
     {
-        return createScanner(input, fileName, config, mode, requestor, null, null);
+        return createScanner(input, fileName, config, mode, language, requestor, null, null);
     }
     
-	public static IScanner createScanner( Reader input, String fileName, IScannerInfo config, ParserMode mode, ISourceElementRequestor requestor, IProblemReporter problemReporter, ITranslationResult unitResult ) 
+	public static IScanner createScanner( Reader input, String fileName, IScannerInfo config, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor, IProblemReporter problemReporter, ITranslationResult unitResult ) 
 	{
 		ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode );
 		ISourceElementRequestor ourRequestor = (( requestor == null) ? new NullSourceElementRequestor() : requestor ); 
-		IScanner s = new Scanner( input, fileName, config, problemReporter, unitResult, ourRequestor, ourMode );
+		IScanner s = new Scanner( input, fileName, config, problemReporter, unitResult, ourRequestor, ourMode, language );
 		return s; 
 	}
     
-    public static IPreprocessor createPreprocessor( Reader input, String fileName, IScannerInfo info, ParserMode mode, ISourceElementRequestor requestor )
+    public static IPreprocessor createPreprocessor( Reader input, String fileName, IScannerInfo info, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor )
     {
-        return createPreprocessor(input, fileName, info, mode, requestor, null, null);
+        return createPreprocessor(input, fileName, info, mode, language, requestor, null, null);
     }
  	
-	public static IPreprocessor createPreprocessor( Reader input, String fileName, IScannerInfo info, ParserMode mode, ISourceElementRequestor requestor, IProblemReporter problemReporter, ITranslationResult unitResult )
+	public static IPreprocessor createPreprocessor( Reader input, String fileName, IScannerInfo info, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor, IProblemReporter problemReporter, ITranslationResult unitResult )
 	{
 		ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode ); 
 		ISourceElementRequestor ourRequestor = (( requestor == null) ? new NullSourceElementRequestor() : requestor );
-		IPreprocessor s = new Preprocessor( input, fileName, info, ourRequestor, problemReporter, unitResult, ourMode );
+		IPreprocessor s = new Preprocessor( input, fileName, info, ourRequestor, problemReporter, unitResult, ourMode, language );
 		return s;
 	} 
 	
Index: parser/org/eclipse/cdt/core/parser/ParserLanguage.java
===================================================================
RCS file: parser/org/eclipse/cdt/core/parser/ParserLanguage.java
diff -N parser/org/eclipse/cdt/core/parser/ParserLanguage.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parser/org/eclipse/cdt/core/parser/ParserLanguage.java	8 Sep 2003 17:46:32 -0000
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2003 IBM 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 Corp. - Rational Software - initial implementation
+ ******************************************************************************/
+
+package org.eclipse.cdt.core.parser;
+
+/**
+ * @author aniefer
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class ParserLanguage extends Enum {
+	public final static ParserLanguage C   = new ParserLanguage( 1 );
+	public final static ParserLanguage CPP = new ParserLanguage( 2 );
+
+	private ParserLanguage( int value )
+	{
+		super( value ); 
+	}
+}
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.102
diff -u -r1.102 Parser.java
--- parser/org/eclipse/cdt/internal/core/parser/Parser.java	5 Sep 2003 19:24:10 -0000	1.102
+++ parser/org/eclipse/cdt/internal/core/parser/Parser.java	8 Sep 2003 17:46:33 -0000
@@ -23,6 +23,7 @@
 import org.eclipse.cdt.core.parser.IToken;
 import org.eclipse.cdt.core.parser.ITokenDuple;
 import org.eclipse.cdt.core.parser.ITranslationResult;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ScannerException;
@@ -77,7 +78,7 @@
     private ParserMode mode = ParserMode.COMPLETE_PARSE;
     // are we doing the high-level parse, or an in depth parse?
     private boolean parsePassed = true; // did the parse pass?
-    private boolean cppNature = true; // true for C++, false for C
+    private ParserLanguage language = ParserLanguage.CPP; // C or CPP
     private ISourceElementRequestor requestor = null;
     // new callback mechanism
     private IASTFactory astFactory = null; // ast factory
@@ -116,6 +117,7 @@
         IScanner scanner,
         ISourceElementRequestor callback,
         ParserMode mode,
+        ParserLanguage language,
         IProblemReporter problemReporter,
         ITranslationResult unitResult)
     {
@@ -124,7 +126,8 @@
         this.unitResult = unitResult;
         requestor = callback;
         this.mode = mode;
-        astFactory = ParserFactory.createASTFactory(mode);
+        this.language = language;
+        astFactory = ParserFactory.createASTFactory(mode, language);
         scanner.setASTFactory(astFactory);
     }
     // counter that keeps track of the number of times Parser.parse() is called
@@ -4635,20 +4638,20 @@
         lastToken = null; // this is not entirely right ... 
     }
     /* (non-Javadoc)
-     * @see org.eclipse.cdt.internal.core.parser.IParser#isCppNature()
+     * @see org.eclipse.cdt.internal.core.parser.IParser#getLanguage()
      */
-    public boolean isCppNature()
+    public ParserLanguage getLanguage()
     {
-        return cppNature;
+        return language;
     }
     /* (non-Javadoc)
-     * @see org.eclipse.cdt.internal.core.parser.IParser#setCppNature(boolean)
+     * @see org.eclipse.cdt.internal.core.parser.IParser#setLanguage(Language)
      */
-    public void setCppNature(boolean b)
+    public void setLanguage( ParserLanguage l )
     {
-        cppNature = b;
-        if (scanner != null)
-            scanner.setCppNature(b);
+        language = l;
+        if (scanner != null) 
+            scanner.setLanguage( l );
     }
     /* (non-Javadoc)
      * @see org.eclipse.cdt.internal.core.parser.IParser#getLastErrorOffset()
Index: parser/org/eclipse/cdt/internal/core/parser/Preprocessor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Preprocessor.java,v
retrieving revision 1.5
diff -u -r1.5 Preprocessor.java
--- parser/org/eclipse/cdt/internal/core/parser/Preprocessor.java	18 Jul 2003 16:39:22 -0000	1.5
+++ parser/org/eclipse/cdt/internal/core/parser/Preprocessor.java	8 Sep 2003 17:46:34 -0000
@@ -18,6 +18,7 @@
 import org.eclipse.cdt.core.parser.IScannerInfo;
 import org.eclipse.cdt.core.parser.ISourceElementRequestor;
 import org.eclipse.cdt.core.parser.ITranslationResult;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ScannerException;
 
@@ -33,8 +34,8 @@
 	 * @param filename
 	 * @param defns
 	 */
-	public Preprocessor(Reader reader, String filename, IScannerInfo info, ISourceElementRequestor requestor, IProblemReporter problemReporter, ITranslationResult unitResult, ParserMode mode) {
-        super(reader, filename, info, problemReporter, unitResult, requestor, mode );
+	public Preprocessor(Reader reader, String filename, IScannerInfo info, ISourceElementRequestor requestor, IProblemReporter problemReporter, ITranslationResult unitResult, ParserMode mode, ParserLanguage language ) {
+        super(reader, filename, info, problemReporter, unitResult, requestor, mode, language );
     }
 
 	public void process()
Index: parser/org/eclipse/cdt/internal/core/parser/Scanner.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java,v
retrieving revision 1.50
diff -u -r1.50 Scanner.java
--- parser/org/eclipse/cdt/internal/core/parser/Scanner.java	26 Aug 2003 19:15:58 -0000	1.50
+++ parser/org/eclipse/cdt/internal/core/parser/Scanner.java	8 Sep 2003 17:46:34 -0000
@@ -36,6 +36,7 @@
 import org.eclipse.cdt.core.parser.IToken;
 import org.eclipse.cdt.core.parser.ITranslationOptions;
 import org.eclipse.cdt.core.parser.ITranslationResult;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ScannerException;
@@ -56,10 +57,11 @@
    
 	private Reader backupReader;
 
-    public Scanner(Reader reader, String filename, IScannerInfo info, IProblemReporter problemReporter, ITranslationResult unitResult, ISourceElementRequestor requestor, ParserMode parserMode ) {
+    public Scanner(Reader reader, String filename, IScannerInfo info, IProblemReporter problemReporter, ITranslationResult unitResult, ISourceElementRequestor requestor, ParserMode parserMode, ParserLanguage language ) {
 		this.requestor = requestor;
 		this.mode = parserMode;
-		astFactory = ParserFactory.createASTFactory( mode );
+		this.language = language;
+		astFactory = ParserFactory.createASTFactory( mode, language );
 		this.backupReader = reader;
 		
 		try {
@@ -762,7 +764,7 @@
 
 				Object tokenTypeObject;
 				
-				if( cppNature )
+				if( language == ParserLanguage.CPP )
 				 	tokenTypeObject = cppKeywords.get(ident);
 				else
 					tokenTypeObject = cKeywords.get(ident);
@@ -1789,8 +1791,8 @@
 					new StringReader(expression + ";"),
 						EXPRESSION,
 						new ScannerInfo( definitions, originalConfig.getIncludePaths()), 
-						ParserMode.QUICK_PARSE, nullCallback );
-            IParser parser = ParserFactory.createParser(trial, nullCallback, ParserMode.QUICK_PARSE );
+						ParserMode.QUICK_PARSE, language, nullCallback );
+            IParser parser = ParserFactory.createParser(trial, nullCallback, ParserMode.QUICK_PARSE, language );
  
 			try {
 				IASTExpression exp = parser.expression(null);
@@ -1901,7 +1903,8 @@
 										problemReporter, 
 										translationResult,
 										new NullSourceElementRequestor(),
-										mode);
+										mode,
+										language );
 			IToken t = null;
 			
 			try {
@@ -2063,7 +2066,7 @@
 			
 			if( ! replacementString.equals( "" ) )
 			{
-				IScanner helperScanner = ParserFactory.createScanner( new StringReader(replacementString), null, new ScannerInfo( ), mode, new NullSourceElementRequestor(), problemReporter, translationResult );
+				IScanner helperScanner = ParserFactory.createScanner( new StringReader(replacementString), null, new ScannerInfo( ), mode, language, new NullSourceElementRequestor(), problemReporter, translationResult );
 				helperScanner.setTokenizingMacroReplacementList( true );
 				IToken t = helperScanner.nextToken(false);
 	
@@ -2150,7 +2153,7 @@
     
     protected Vector getMacroParameters (String params, boolean forStringizing) throws ScannerException {
         
-        Scanner tokenizer  = new Scanner(new StringReader(params), TEXT, new ScannerInfo( definitions, originalConfig.getIncludePaths() ), problemReporter, translationResult, new NullSourceElementRequestor(), mode);
+        Scanner tokenizer  = new Scanner(new StringReader(params), TEXT, new ScannerInfo( definitions, originalConfig.getIncludePaths() ), problemReporter, translationResult, new NullSourceElementRequestor(), mode, language);
         Vector parameterValues = new Vector();
         Token t = null;
         String str = new String();
@@ -2370,12 +2373,12 @@
 	
 	
 
-	private boolean cppNature = true; 
+	private ParserLanguage language = ParserLanguage.CPP; 
 	/* (non-Javadoc)
 	 * @see org.eclipse.cdt.internal.core.parser.IScanner#setCppNature(boolean)
 	 */
-	public void setCppNature(boolean value) {
-		cppNature = value; 
+	public void setLanguage( ParserLanguage value) {
+		language = value; 
 	}
 	
 	private final 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.30
diff -u -r1.30 CompleteParseASTFactory.java
--- parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java	8 Sep 2003 12:31:21 -0000	1.30
+++ parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java	8 Sep 2003 17:46:35 -0000
@@ -18,6 +18,7 @@
 
 import org.eclipse.cdt.core.parser.IToken;
 import org.eclipse.cdt.core.parser.ITokenDuple;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
 import org.eclipse.cdt.core.parser.ast.ASTClassKind;
 import org.eclipse.cdt.core.parser.ast.ASTPointerOperator;
@@ -87,9 +88,11 @@
      * 
      */
     
-    public CompleteParseASTFactory()
+    public CompleteParseASTFactory( ParserLanguage language )
     {
         super();
+        
+		pst = new ParserSymbolTable( language );
     }
 
 	protected ISymbol lookupQualifiedName( IContainerSymbol startingScope, String name, TypeInfo.eType type, List parameters, int offset, List references, boolean throwOnError ) throws ASTSemanticException
@@ -1677,7 +1680,7 @@
 		return (IASTElaboratedTypeSpecifier)checkSymbol.getASTExtension().getPrimaryDeclaration();
     }
 
-    protected ParserSymbolTable pst = new ParserSymbolTable();
+    protected ParserSymbolTable pst;
 
 
     /* (non-Javadoc)
Index: parser/org/eclipse/cdt/internal/core/parser/pst/ParserSymbolTable.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/ParserSymbolTable.java,v
retrieving revision 1.16
diff -u -r1.16 ParserSymbolTable.java
--- parser/org/eclipse/cdt/internal/core/parser/pst/ParserSymbolTable.java	3 Sep 2003 20:57:44 -0000	1.16
+++ parser/org/eclipse/cdt/internal/core/parser/pst/ParserSymbolTable.java	8 Sep 2003 17:46:35 -0000
@@ -22,6 +22,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
 
 /**
@@ -33,10 +34,11 @@
 	/**
 	 * Constructor for ParserSymbolTable.
 	 */
-	public ParserSymbolTable() {
+	public ParserSymbolTable( ParserLanguage language ) {
 		super();
 		_compilationUnit = new Declaration("");
 		_compilationUnit.setType( TypeInfo.t_namespace );
+		_language = language;
 	}
 
 	public IContainerSymbol getCompilationUnit(){
@@ -102,7 +104,9 @@
 		//if this name define in this scope?
 		lookupInContained( data, inSymbol );
 		
-		if( !data.ignoreUsingDirectives ){
+		if( inSymbol.getSymbolTable().getLanguage() == ParserLanguage.CPP &&
+		    !data.ignoreUsingDirectives )
+		{
 			//check nominated namespaces
 			//the transitives list is populated in LookupInNominated, and then 
 			//processed in ProcessDirectives
@@ -1799,9 +1803,18 @@
 
 	//private Stack _contextStack = new Stack();
 	private Declaration _compilationUnit;
+	private ParserLanguage    _language;
 	private LinkedList undoList = new LinkedList();
 	private HashSet markSet = new HashSet();
 	
+	public void setLanguage( ParserLanguage language ){
+		_language = language;
+	}
+	
+	public ParserLanguage getLanguage(){
+		return _language;
+	}
+	
 	protected void pushCommand( Command command ){
 		undoList.addFirst( command );
 	}
@@ -2727,6 +2740,10 @@
 		 * of this is volatile X*....
 		 */
 		private boolean addThis( Declaration obj ){
+			if( getSymbolTable().getLanguage() != ParserLanguage.CPP ){
+				return false; 
+			}
+				
 			TypeInfo type = obj.getTypeInfo();
 			if( ( !type.isType( TypeInfo.t_function ) && !type.isType( TypeInfo.t_constructor) ) ||
 			    type.checkBit( TypeInfo.isStatic ) ){
Index: search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java,v
retrieving revision 1.18
diff -u -r1.18 CSearchPattern.java
--- search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java	4 Sep 2003 13:50:42 -0000	1.18
+++ search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java	8 Sep 2003 17:46:36 -0000
@@ -20,6 +20,7 @@
 import org.eclipse.cdt.core.parser.EndOfFile;
 import org.eclipse.cdt.core.parser.IScanner;
 import org.eclipse.cdt.core.parser.IToken;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ScannerException;
@@ -119,7 +120,7 @@
 			return orPattern;
 		}
 		
-		IScanner scanner = ParserFactory.createScanner( new StringReader( patternString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, null );
+		IScanner scanner = ParserFactory.createScanner( new StringReader( patternString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, null );
 		LinkedList list = scanForNames( scanner, null );
 		
 		char [] name = (char []) list.removeLast();
@@ -176,7 +177,7 @@
 			return orPattern;
 		}
 		
-		IScanner scanner = ParserFactory.createScanner( new StringReader( patternString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, null );
+		IScanner scanner = ParserFactory.createScanner( new StringReader( patternString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, null );
 		LinkedList list = scanForNames( scanner, null );
 		
 		char [] name = (char []) list.removeLast();
@@ -206,11 +207,11 @@
 		String paramString = ( index == -1 ) ? "" : patternString.substring( index );
 		String nameString = ( index == -1 ) ? patternString : patternString.substring( 0, index );
 		
-		IScanner scanner = ParserFactory.createScanner( new StringReader( nameString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, null );
+		IScanner scanner = ParserFactory.createScanner( new StringReader( nameString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, null );
 		
 		LinkedList names = scanForNames( scanner, null );
 		
-		scanner = ParserFactory.createScanner( new StringReader( paramString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, null );
+		scanner = ParserFactory.createScanner( new StringReader( paramString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, null );
 		
 		LinkedList params = scanForParameters( scanner );
 		
@@ -246,7 +247,7 @@
 			return orPattern;
 		}
 		
-		IScanner scanner = ParserFactory.createScanner( new StringReader( patternString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, null );
+		IScanner scanner = ParserFactory.createScanner( new StringReader( patternString ), "TEXT", new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, null );
 		
 		IToken token = null;
 		ASTClassKind kind = null;
Index: search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java,v
retrieving revision 1.22
diff -u -r1.22 MatchLocator.java
--- search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java	4 Sep 2003 20:46:57 -0000	1.22
+++ search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java	8 Sep 2003 17:46:36 -0000
@@ -24,6 +24,7 @@
 import java.util.LinkedList;
 
 import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.model.CoreModel;
 import org.eclipse.cdt.core.parser.IParser;
 import org.eclipse.cdt.core.parser.IProblem;
 import org.eclipse.cdt.core.parser.IScanner;
@@ -31,6 +32,7 @@
 import org.eclipse.cdt.core.parser.IScannerInfoProvider;
 import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate;
 import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
@@ -356,8 +358,16 @@
 				IScannerInfo buildScanInfo = provider.getScannerInformation(project);
 				scanInfo = new ScannerInfo(buildScanInfo.getDefinedSymbols(), buildScanInfo.getIncludePaths());
 			}
-			IScanner scanner = ParserFactory.createScanner( reader, realPath.toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, this );
-			IParser  parser  = ParserFactory.createParser( scanner, this, ParserMode.COMPLETE_PARSE );
+			
+			ParserLanguage language = null;
+			if( project != null ){
+				language = CoreModel.getDefault().hasCCNature( project ) ? ParserLanguage.CPP : ParserLanguage.C;
+			} else {
+				//TODO no probject, what language do we use?
+				language = ParserLanguage.CPP;
+			}
+			IScanner scanner = ParserFactory.createScanner( reader, realPath.toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, this );
+			IParser  parser  = ParserFactory.createParser( scanner, this, ParserMode.COMPLETE_PARSE, language );
 			
 			if (VERBOSE)
 			  MatchLocator.verbose("*** New Search for path: " + pathString);
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/ChangeLog,v
retrieving revision 1.82
diff -u -r1.82 ChangeLog
--- ChangeLog	8 Sep 2003 12:31:30 -0000	1.82
+++ ChangeLog	8 Sep 2003 17:50:13 -0000
@@ -1,3 +1,7 @@
+2003-09-08 Andrew Niefer
+	Modified calls to ParserFactory to specify which language to use
+	Add CC nature to projects in BaseSearchTest & IndexManagerTests
+
 2003-09-05 Hoda Amer
 	Added tests to CompleteParseASTTest to test the expression result type
 	for function calls that reference variables with pointers (bug#42453).
Index: indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java,v
retrieving revision 1.12
diff -u -r1.12 IndexManagerTests.java
--- indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java	26 Aug 2003 19:16:03 -0000	1.12
+++ indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java	8 Sep 2003 17:50:14 -0000
@@ -22,6 +22,7 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
+import org.eclipse.cdt.core.CCProjectNature;
 import org.eclipse.cdt.core.CCorePlugin;
 import org.eclipse.cdt.core.search.ICSearchConstants;
 import org.eclipse.cdt.internal.core.index.IEntryResult;
@@ -128,6 +129,10 @@
 	   //Create the project
 	   IProject cproject = CCorePlugin.getDefault().createCProject(description,project,monitor,CCorePlugin.PLUGIN_ID + ".make"); //.getCoreModel().create(project);
 	    
+	   if( !cproject.hasNature(CCProjectNature.CC_NATURE_ID) ){
+		   addNatureToProject(cproject, CCProjectNature.CC_NATURE_ID, null);
+	   }
+	   
 	   return cproject; 
 	}
 	
Index: parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java,v
retrieving revision 1.5
diff -u -r1.5 AutomatedTest.java
--- parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java	18 Jul 2003 16:39:12 -0000	1.5
+++ parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java	8 Sep 2003 17:50:14 -0000
@@ -23,6 +23,7 @@
 
 import org.eclipse.cdt.core.parser.ILineOffsetReconciler;
 import org.eclipse.cdt.core.parser.IParser;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.parser.ScannerInfo;
@@ -56,9 +57,9 @@
 			FileInputStream stream = new FileInputStream( file );
 
 			String filePath = file.getCanonicalPath();
-			parser = ParserFactory.createParser( ParserFactory.createScanner( new InputStreamReader (stream), filePath, new ScannerInfo(), ParserMode.QUICK_PARSE, nullCallback ), nullCallback, ParserMode.QUICK_PARSE);
-			parser.setCppNature( ((String)natures.get( filePath )).equalsIgnoreCase("cpp") );
-			
+			ParserLanguage language = ((String)natures.get( filePath )).equalsIgnoreCase("cpp") ? ParserLanguage.CPP : ParserLanguage.C;
+			parser = ParserFactory.createParser( ParserFactory.createScanner( new InputStreamReader (stream), filePath, new ScannerInfo(), ParserMode.QUICK_PARSE, language, nullCallback ), nullCallback, ParserMode.QUICK_PARSE, language);
+						
 			mapping = ParserFactory.createLineOffsetReconciler( new InputStreamReader( stream ) );
 			
 			assertTrue( parser.parse() );
Index: parser/org/eclipse/cdt/core/parser/tests/BaseASTTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseASTTest.java,v
retrieving revision 1.6
diff -u -r1.6 BaseASTTest.java
--- parser/org/eclipse/cdt/core/parser/tests/BaseASTTest.java	30 Jul 2003 01:31:07 -0000	1.6
+++ parser/org/eclipse/cdt/core/parser/tests/BaseASTTest.java	8 Sep 2003 17:50:14 -0000
@@ -17,6 +17,7 @@
 
 import org.eclipse.cdt.core.parser.IParser;
 import org.eclipse.cdt.core.parser.IQuickParseCallback;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException;
@@ -47,7 +48,7 @@
 	{
 		ParserMode mode = quick ? ParserMode.QUICK_PARSE : ParserMode.COMPLETE_PARSE; 
 		quickParseCallback = ParserFactory.createQuickParseCallback(); 
-		parser = ParserFactory.createParser( ParserFactory.createScanner( new StringReader( code ), "code", new ScannerInfo(), mode, quickParseCallback), quickParseCallback, mode );
+		parser = ParserFactory.createParser( ParserFactory.createScanner( new StringReader( code ), "code", new ScannerInfo(), mode, ParserLanguage.CPP, quickParseCallback), quickParseCallback, mode, ParserLanguage.CPP );
 		if( ! parser.parse() && throwExceptionOnError )
 			throw new ParserException("Parse failure");
 		return quickParseCallback.getCompilationUnit(); 
Index: parser/org/eclipse/cdt/core/parser/tests/BaseScannerTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseScannerTest.java,v
retrieving revision 1.6
diff -u -r1.6 BaseScannerTest.java
--- parser/org/eclipse/cdt/core/parser/tests/BaseScannerTest.java	18 Jul 2003 16:39:12 -0000	1.6
+++ parser/org/eclipse/cdt/core/parser/tests/BaseScannerTest.java	8 Sep 2003 17:50:14 -0000
@@ -18,6 +18,7 @@
 import org.eclipse.cdt.core.parser.EndOfFile;
 import org.eclipse.cdt.core.parser.IScanner;
 import org.eclipse.cdt.core.parser.IToken;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ScannerException;
@@ -39,7 +40,7 @@
 
 	protected void initializeScanner( String input, ParserMode mode )
 	{
-		scanner= ParserFactory.createScanner( new StringReader(input),"TEXT", new ScannerInfo(), mode, callback );
+		scanner= ParserFactory.createScanner( new StringReader(input),"TEXT", new ScannerInfo(), mode, ParserLanguage.CPP, callback );
 	}
 
 
Index: parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java,v
retrieving revision 1.2
diff -u -r1.2 CompleteParseBaseTest.java
--- parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java	4 Sep 2003 20:47:05 -0000	1.2
+++ parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java	8 Sep 2003 17:50:14 -0000
@@ -22,6 +22,7 @@
 import org.eclipse.cdt.core.parser.IParser;
 import org.eclipse.cdt.core.parser.IProblem;
 import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
@@ -554,7 +555,7 @@
     	callback = new FullParseCallback(); 
     	IParser parser = ParserFactory.createParser( 
     		ParserFactory.createScanner( new StringReader( code ), "test-code", new ScannerInfo(),
-    			ParserMode.COMPLETE_PARSE, callback ), callback, ParserMode.COMPLETE_PARSE	
+    			ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, callback ), callback, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP	
     		);
     	if( ! parser.parse() ) throw new ParserException( "FAILURE");
         return callback.getCompilationUnit();
Index: parser/org/eclipse/cdt/core/parser/tests/ExprEvalTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ExprEvalTest.java,v
retrieving revision 1.7
diff -u -r1.7 ExprEvalTest.java
--- parser/org/eclipse/cdt/core/parser/tests/ExprEvalTest.java	13 Aug 2003 21:51:53 -0000	1.7
+++ parser/org/eclipse/cdt/core/parser/tests/ExprEvalTest.java	8 Sep 2003 17:50:14 -0000
@@ -7,6 +7,7 @@
 import junit.framework.TestSuite;
 
 import org.eclipse.cdt.core.parser.IParser;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ast.IASTExpression;
@@ -26,7 +27,7 @@
 	public void runTest(String code, int expectedValue) throws Exception {
 		
 		final NullSourceElementRequestor nullCallback = new NullSourceElementRequestor();
-        IParser parser = ParserFactory.createParser(ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), null, nullCallback ), nullCallback, ParserMode.QUICK_PARSE);
+        IParser parser = ParserFactory.createParser(ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), null, ParserLanguage.CPP, nullCallback ), nullCallback, ParserMode.QUICK_PARSE, ParserLanguage.CPP );
 		IASTExpression expression = parser.expression(null);
 		assertEquals(expectedValue, expression.evaluateExpression());
 	}
Index: parser/org/eclipse/cdt/core/parser/tests/FractionalAutomatedTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/FractionalAutomatedTest.java,v
retrieving revision 1.5
diff -u -r1.5 FractionalAutomatedTest.java
--- parser/org/eclipse/cdt/core/parser/tests/FractionalAutomatedTest.java	18 Jul 2003 16:39:12 -0000	1.5
+++ parser/org/eclipse/cdt/core/parser/tests/FractionalAutomatedTest.java	8 Sep 2003 17:50:14 -0000
@@ -23,6 +23,7 @@
 import junit.framework.Test;
 
 import org.eclipse.cdt.core.parser.IParser;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.parser.ScannerInfo;
@@ -238,9 +239,10 @@
 		public void run(){
 			try{
 				result = null;
+				ParserLanguage language = cppNature ? ParserLanguage.CPP : ParserLanguage.C;
 				IParser parser = ParserFactory.createParser( 
-					ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), ParserMode.QUICK_PARSE, nullCallback ), nullCallback, ParserMode.QUICK_PARSE);
-				parser.setCppNature( cppNature );
+					ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), ParserMode.QUICK_PARSE, language, nullCallback ), nullCallback, ParserMode.QUICK_PARSE, language);
+				
 				parser.parse();
 			} catch ( Exception e ){
 				result = e.getClass().toString();
Index: parser/org/eclipse/cdt/core/parser/tests/LineNumberTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/LineNumberTest.java,v
retrieving revision 1.5
diff -u -r1.5 LineNumberTest.java
--- parser/org/eclipse/cdt/core/parser/tests/LineNumberTest.java	18 Jul 2003 16:39:12 -0000	1.5
+++ parser/org/eclipse/cdt/core/parser/tests/LineNumberTest.java	8 Sep 2003 17:50:14 -0000
@@ -19,6 +19,7 @@
 import junit.framework.TestCase;
 
 import org.eclipse.cdt.core.parser.IParser;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.dom.ClassSpecifier;
@@ -54,7 +55,7 @@
 	public void testDOMLineNos() throws Exception
 	{
 		DOMBuilder domBuilder = new DOMBuilder();
-		IParser parser = ParserFactory.createParser( ParserFactory.createScanner( new InputStreamReader( fileIn ), null, new ScannerInfo(), ParserMode.QUICK_PARSE, domBuilder ), domBuilder, ParserMode.QUICK_PARSE ); 
+		IParser parser = ParserFactory.createParser( ParserFactory.createScanner( new InputStreamReader( fileIn ), null, new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, domBuilder ), domBuilder, ParserMode.QUICK_PARSE, ParserLanguage.CPP); 
 		//parser.mapLineNumbers(true); 
 		if( ! parser.parse() ) fail( "Parse of file failed");
 		
Index: parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java,v
retrieving revision 1.15
diff -u -r1.15 ParserSymbolTableTest.java
--- parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java	3 Sep 2003 20:57:51 -0000	1.15
+++ parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java	8 Sep 2003 17:50:15 -0000
@@ -17,6 +17,7 @@
 
 import junit.framework.TestCase;
 
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
 import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol;
 import org.eclipse.cdt.internal.core.parser.pst.IDerivableContainerSymbol;
@@ -51,10 +52,13 @@
 	}
 	
 	public ParserSymbolTable newTable(){
-		table = new ParserSymbolTable();
-		return table;
+		return newTable( ParserLanguage.CPP );
 	}
 	
+	public ParserSymbolTable newTable( ParserLanguage language ){
+		table = new ParserSymbolTable( language );
+		return table;
+	}
 	/**
 	 * testSimpleAdd.  
 	 * Add a declaration to the table and confirm it is there.
Index: parser/org/eclipse/cdt/core/parser/tests/PreprocessorConditionalTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorConditionalTest.java,v
retrieving revision 1.3
diff -u -r1.3 PreprocessorConditionalTest.java
--- parser/org/eclipse/cdt/core/parser/tests/PreprocessorConditionalTest.java	18 Jul 2003 16:39:12 -0000	1.3
+++ parser/org/eclipse/cdt/core/parser/tests/PreprocessorConditionalTest.java	8 Sep 2003 17:50:15 -0000
@@ -17,6 +17,7 @@
 import org.eclipse.cdt.core.parser.EndOfFile;
 import org.eclipse.cdt.core.parser.ISourceElementRequestor;
 import org.eclipse.cdt.core.parser.IToken;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ScannerException;
@@ -35,7 +36,7 @@
 
     protected void initializeScanner(String input, Map definitions )
 	{
-		scanner= ParserFactory.createScanner( new StringReader(input),"TEXT", new ScannerInfo( definitions, null), ParserMode.COMPLETE_PARSE, nullSourceElementRequestor );
+		scanner= ParserFactory.createScanner( new StringReader(input),"TEXT", new ScannerInfo( definitions, null), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, nullSourceElementRequestor );
 	}
 
 
Index: parser/org/eclipse/cdt/core/parser/tests/PreprocessorTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorTest.java,v
retrieving revision 1.5
diff -u -r1.5 PreprocessorTest.java
--- parser/org/eclipse/cdt/core/parser/tests/PreprocessorTest.java	18 Jul 2003 16:39:12 -0000	1.5
+++ parser/org/eclipse/cdt/core/parser/tests/PreprocessorTest.java	8 Sep 2003 17:50:15 -0000
@@ -19,6 +19,7 @@
 
 import org.eclipse.cdt.core.parser.IPreprocessor;
 import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.core.parser.ast.IASTInclusion;
@@ -73,7 +74,7 @@
 	
 	public IPreprocessor setupPreprocessor( String text, List includePaths, Map defns, ISourceElementRequestor rq )
 	{
-		IPreprocessor p = ParserFactory.createPreprocessor( new StringReader( text ), "test", new ScannerInfo(), ParserMode.COMPLETE_PARSE, rq );
+		IPreprocessor p = ParserFactory.createPreprocessor( new StringReader( text ), "test", new ScannerInfo(), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, rq );
 		return p; 
 	}
 }
Index: parser/org/eclipse/cdt/core/parser/tests/TortureTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/TortureTest.java,v
retrieving revision 1.8
diff -u -r1.8 TortureTest.java
--- parser/org/eclipse/cdt/core/parser/tests/TortureTest.java	25 Jul 2003 00:35:42 -0000	1.8
+++ parser/org/eclipse/cdt/core/parser/tests/TortureTest.java	8 Sep 2003 17:50:15 -0000
@@ -24,6 +24,7 @@
 
 import org.eclipse.cdt.core.parser.ILineOffsetReconciler;
 import org.eclipse.cdt.core.parser.IParser;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.dom.DOMBuilder;
@@ -278,11 +279,11 @@
 		public void run(){
 			try {           
 				DOMBuilder domBuilder = new DOMBuilder();
-				ParserMode parserMode = quickParse ? ParserMode.QUICK_PARSE : ParserMode.COMPLETE_PARSE; 
+				ParserMode parserMode = quickParse ? ParserMode.QUICK_PARSE : ParserMode.COMPLETE_PARSE;
+				ParserLanguage language = cppNature ? ParserLanguage.CPP : ParserLanguage.C; 
 				parser = ParserFactory.createParser( 
-						ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), parserMode, nullCallback ), nullCallback, parserMode);
+						ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), parserMode, language, nullCallback ), nullCallback, parserMode, language);
 		
-				parser.setCppNature(cppNature);
 				mapping = ParserFactory.createLineOffsetReconciler( new StringReader( code ) );
 	            
 				assertTrue(parser.parse());
Index: search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java,v
retrieving revision 1.4
diff -u -r1.4 BaseSearchTest.java
--- search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java	28 Aug 2003 20:14:11 -0000	1.4
+++ search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java	8 Sep 2003 17:50:15 -0000
@@ -17,8 +17,8 @@
 
 import junit.framework.TestCase;
 
+import org.eclipse.cdt.core.CCProjectNature;
 import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.CProjectNature;
 import org.eclipse.cdt.core.search.ICSearchConstants;
 import org.eclipse.cdt.core.search.ICSearchPattern;
 import org.eclipse.cdt.core.search.ICSearchResultCollector;
@@ -130,8 +130,8 @@
 																	 monitor,
 																	 CCorePlugin.PLUGIN_ID + ".make");
 
-		if( !project.hasNature(CProjectNature.C_NATURE_ID) ){
-			addNatureToProject(project, CProjectNature.C_NATURE_ID, null);
+		if( !project.hasNature(CCProjectNature.CC_NATURE_ID) ){
+			addNatureToProject(project, CCProjectNature.CC_NATURE_ID, null);
 		}
 
 		return cproject;
Index: search/org/eclipse/cdt/core/search/tests/ParseTestOnSearchFiles.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ParseTestOnSearchFiles.java,v
retrieving revision 1.1
diff -u -r1.1 ParseTestOnSearchFiles.java
--- search/org/eclipse/cdt/core/search/tests/ParseTestOnSearchFiles.java	12 Aug 2003 18:19:50 -0000	1.1
+++ search/org/eclipse/cdt/core/search/tests/ParseTestOnSearchFiles.java	8 Sep 2003 17:50:15 -0000
@@ -18,6 +18,7 @@
 import org.eclipse.cdt.core.parser.IParser;
 import org.eclipse.cdt.core.parser.IScanner;
 import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.parser.NullSourceElementRequestor;
@@ -57,8 +58,8 @@
 	public void testParseOfAndrewsFile()
 	{
 		ISourceElementRequestor requestor = new NullSourceElementRequestor();
-		IScanner scanner = ParserFactory.createScanner( new InputStreamReader( fileIn ), name, new ScannerInfo(), ParserMode.COMPLETE_PARSE, requestor );
-		IParser parser = ParserFactory.createParser( scanner, requestor, ParserMode.COMPLETE_PARSE );
+		IScanner scanner = ParserFactory.createScanner( new InputStreamReader( fileIn ), name, new ScannerInfo(), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, requestor );
+		IParser parser = ParserFactory.createParser( scanner, requestor, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP );
 		assertTrue( parser.parse() );
 	}
 
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.162
diff -u -r1.162 ChangeLog
--- ChangeLog	5 Sep 2003 18:31:52 -0000	1.162
+++ ChangeLog	8 Sep 2003 14:44:16 -0000
@@ -1,3 +1,6 @@
+2003-09-08 Andrew Niefer
+	- Modified call to ParserFactory in CStructureCreator to specify which language to use
+
 2003-09-05 Andrew Niefer
 	C++ Search:
 	  - enable Selected Resource Scope
Index: src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java,v
retrieving revision 1.6
diff -u -r1.6 CStructureCreator.java
--- src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java	30 Aug 2003 05:21:06 -0000	1.6
+++ src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java	8 Sep 2003 14:44:16 -0000
@@ -15,6 +15,7 @@
 import org.eclipse.cdt.core.parser.IParser;
 import org.eclipse.cdt.core.parser.IScanner;
 import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ParserLanguage;
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.parser.ScannerInfo;
@@ -67,9 +68,12 @@
 
 		ISourceElementRequestor builder = new CParseTreeBuilder(root, doc);
 		try {
+			//Using the CPP parser (was implicit before, now its explicit).  If there 
+			//are bugs while parsing C files, we might want to create a separate Structure
+			//compare for c files, but we'll never be completely right about .h files
 			IScanner scanner =
-				ParserFactory.createScanner(new StringReader(s), "code", new ScannerInfo(), ParserMode.QUICK_PARSE, builder);
-			IParser parser = ParserFactory.createParser(scanner, builder, ParserMode.QUICK_PARSE);
+				ParserFactory.createScanner(new StringReader(s), "code", new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, builder);
+			IParser parser = ParserFactory.createParser(scanner, builder, ParserMode.QUICK_PARSE, ParserLanguage.CPP );
 			parser.parse();
 		} catch (Exception e) {
 			// What to do when error ?

Back to the top