From fc37d2f92c355411212be672f03040cbf8fc16bb Mon Sep 17 00:00:00 2001 From: John Camelon Date: Wed, 3 Mar 2004 15:59:56 +0000 Subject: [PATCH] org.eclipse.cdt.core Added some trace statements to CompleteParseASTFactory. Cleaned up usage of Enum.getValue() wrt encapsulation of enumerator value. Refactored CompleteParseASTFactory for correctness and abstraction. Added preliminary IProblem support to CompleteParseASTFactory. Added (commented out unfortunately) assertions into CompleteParseASTFactory. Updated IASTUsingDeclaration to return an Iterator for declarations mapped rather than just a single declaration. org.eclipse.cdt.core.tests Updated tests to deal with IASTUsingDeclaration interface changes. org.eclipse.cdt.ui Cleaned up usage of Enum.getValue() wrt encapsulation of enumerator value. --- core/org.eclipse.cdt.core.tests/ChangeLog | 3 + .../parser/tests/CompleteParseASTTest.java | 6 +- .../org/eclipse/cdt/core/parser/Enum.java | 2 +- .../cdt/core/parser/IFilenameProvider.java | 20 + .../org/eclipse/cdt/core/parser/IProblem.java | 96 +- .../org/eclipse/cdt/core/parser/IScanner.java | 2 +- .../eclipse/cdt/core/parser/ITokenDuple.java | 3 + .../cdt/core/parser/ParserFactory.java | 4 +- .../core/parser/ast/ASTAccessVisibility.java | 12 + .../core/parser/ast/ASTSemanticException.java | 14 +- .../cdt/core/parser/ast/IASTExpression.java | 114 ++ .../cdt/core/parser/ast/IASTFactory.java | 6 + .../core/parser/ast/IASTUsingDeclaration.java | 6 +- .../internal/core/parser/CompleteParser.java | 3 +- .../core/parser/CompletionParser.java | 3 +- .../core/parser/DeclarationWrapper.java | 267 +-- .../core/parser/ExpressionParser.java | 7 +- .../core/parser/IExpressionParser.java | 3 +- .../cdt/internal/core/parser/Parser.java | 5 +- .../cdt/internal/core/parser/QuickParser.java | 3 +- .../core/parser/StructuralParser.java | 12 +- .../core/parser/ast/BaseASTFactory.java | 7 + .../ast/complete/ASTNamespaceReference.java | 6 +- .../ast/complete/ASTProblemFactory.java | 119 ++ .../ast/complete/ASTUsingDeclaration.java | 21 +- .../ast/complete/CompleteParseASTFactory.java | 1467 ++++++++--------- .../expression/ExpressionParseASTFactory.java | 4 +- .../parser/ast/quick/ASTUsingDeclaration.java | 5 +- .../core/parser/pst/ParserSymbolTable.java | 6 +- .../pst/ParserSymbolTableException.java | 35 + .../internal/core/parser/scanner/Scanner.java | 384 +++-- .../parser/scanner/ScannerProblemFactory.java | 3 +- .../core/parser/token/TokenDuple.java | 19 + core/org.eclipse.cdt.ui/ChangeLog | 3 + .../ui/search/actions/FindAction.java | 1 - 35 files changed, 1469 insertions(+), 1202 deletions(-) create mode 100644 core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IFilenameProvider.java create mode 100644 core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTProblemFactory.java diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog index bb65c144e02..e7629f6896a 100644 --- a/core/org.eclipse.cdt.core.tests/ChangeLog +++ b/core/org.eclipse.cdt.core.tests/ChangeLog @@ -1,3 +1,6 @@ +2004-03-03 John Camelon + Updated tests to deal with IASTUsingDeclaration interface changes. + 2004-03-02 Sean Evoy Added tests to verify that the tool command canbe set through the IConfiguration interface in the testConfigurations() method, and diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java index a8caf327867..21895a1811a 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java @@ -196,11 +196,11 @@ public class CompleteParseASTTest extends CompleteParseBaseTest assertEquals( directive.getNamespaceDefinition(), namespaceB ); assertEquals( directive.getNamespaceName(), "A::B" ); IASTUsingDeclaration declaration = (IASTUsingDeclaration)declarations.next(); - assertEquals( declaration.getUsingType(), variableX ); + assertEquals( declaration.getUsingTypes().next(), variableX ); declaration = (IASTUsingDeclaration)declarations.next(); - assertEquals( declaration.getUsingType(), classC ); + assertEquals( declaration.getUsingTypes().next(), classC ); declaration = (IASTUsingDeclaration)declarations.next(); - assertEquals( declaration.getUsingType(), fieldY ); + assertEquals( declaration.getUsingTypes().next(), fieldY ); assertEquals( callback.getReferences().size(), 12 ); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/Enum.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/Enum.java index a4302365dca..6faaa66db9b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/Enum.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/Enum.java @@ -25,7 +25,7 @@ public class Enum /** * @return */ - public int getEnumValue() + protected int getEnumValue() { return enumValue; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IFilenameProvider.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IFilenameProvider.java new file mode 100644 index 00000000000..f94777eb88b --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IFilenameProvider.java @@ -0,0 +1,20 @@ +/******************************************************************************* + * 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 jcamelon + */ +public interface IFilenameProvider { + + public char [] getCurrentFilename(); + +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IProblem.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IProblem.java index f2cfa11ae44..1e1de85e324 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IProblem.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IProblem.java @@ -13,8 +13,11 @@ package org.eclipse.cdt.core.parser; import java.util.Map; /** - * Description of a C/C++ problem, as detected by the translation or some of the underlying - * technology reusing it. + * @author jcamelon + * + * Description of a C/C++ parse/compilation problem, as detected by the parser or some of the underlying + * clients of the parser. + * * A problem provides access to: *