Added COMPLETE_PARSE support for Method and Field declarations and cross-references.
Fixed some small ParserSymbolTable bugs.
Added support for linkage specification under COMPLETE_PARSE.
TESTS
Updated CompleteParseASTTests for Method/Field updates.
Fixed TortureTest's parser mode switch (was always QuickParsing).
This core patch cleans up the CModelBuilder. It also solves a bug and all tests in IStructureTests now pass successfully.
In the core.tests patch, the test for templates of variables is removed from ITemplateTests because it is moved to the failed tests.
This patch is for the search. No new things can be searched yet, but this
brings more things closer to being able to be searched.
- Implemented decodeIndexEntry & matchIndexEntry for all patterns
- changed MatchLocator to use a COMPLETE_PARSE.
- added TYPE_ALL, FUNCTION_ALL, METHOD_ALL, NAMESPACE_ALL,
FIELD_ALL constants to IIndexConstants
- modified AbstractIndexer prefix functions to properly handle
searching for all occurences
Core:
- modifications to the Indexer to better support qualified names
- functions to create Index entry prefixes for the different Search
Patterns
- all of the search patterns are now being created and all do at least
some matching
- all of the parser callbacks for declarations, definitions, and
references are now being handled, though the patterns and indexer both
need some work here
Core.tests:
- new BaseSearchTest which creates a project and uses the indexer
- new test class FunctionMethodPatternTests to test aspects of the
Function & Method patterns
- new test class OtherPatternTests to test the other (Namespace, Field &
variable) patterns
- new tests to test index prefixes for the patterns
UI:
- handle more varied search results and display more icons
- Here's a first take at the dependency tree service
which is needed by both the managed build and the
indexer. The service is in a really early form with no
persistance or notification mechanisms in place yet.
There is just enough in here to allow Sean to get his
makefile dependencies. I added a check box to the
indexer tab to enable the service on a per project basis.
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.
highlighting are updated.
- Added support for hex floating point literals.
- Fixed stack overflow problem with string literals concatenation.
- Fixed problem with token pasting in macros.
- This solves PR 39523, 39550, 39552.
- adds namespaces, enums, typedefs, functions,
methods, fields and vars to the index.
- also fixes a problem with the Search label provider
which caused it to not display properly under some
conditions.
Fleshed out basic declarations for FullParse AST.
Fixed Bug 40554 - Fields coming back as Vars
Fixed Bug 40555 - Methods come back as Functions
TESTS
Created CompleteParseASTTest and added it to ParserTestSuite.
Added ISourceElementCallbackDelegate interface for AST constructs to allow the Parser to delegate callback's to the nodes themselves.
Got rid of ParserMode.STRUCTURAL_PARSE for the time being.
Removed org.eclipse.cdt.internal.core.parser.ast.full.
Created org.eclipse.cdt.internal.core.parser.ast.complete.
Updated ParserFactory.createScanner() to force the user to provide a callback and a ParserMode.
Introduced ASTSemanticException for COMPLETE_PARSE mode.
Fleshed out preliminary IASTReference interfaces and added callbacks to ISourceElementRequestor.
Removed acceptElaboratedTypeSpecifier() from ISourceElementRequestor.
TESTS
Updated ParserSymbolTableTests to remove dependencies on parser.ast.full classes.
Updated Parser test suites for updates to ParserFactory.
Removed DeclaratorDuple as it was obsolete.
Fixed offsets in quickParse's IASTTypedefDeclaration implementation.
Fixed Bug 40436 - Fully Qualified Names Needed (for Indexer/Search features)
TESTS
Wrote new tests in QuickParseASTQualifiedNameTest.java and added it to ParserTestSuite's suite.
Removed IParserCallback.
Partially converted DOM to ISourceElementRequestor (requires refactoring of CModelBuilder & StuctureComparator modules in near future).
Completely finished ISourceElementRequestor/IASTFactory work for QuickParse mode.
Added pointer to methods/functions into AST callback structure.
Restructured AST class hierarchy.
Removed the old IParserCallback return Objects from every Parser method.
TESTS
Rewrote the entire DOMTests suite to now be AST tests.
Removed DOMTests, BaseDOMTest, DOMFailedTests after methods were migrated to QuickParseASTTests & ASTFailedTests.
Made sure every parser failed test had a defect number associated with it.
Patch for C++ Search to support searching for class declarations
Interface changes:
- modified search Interfaces :
- ICSearchConstants - changed SearchFor instantiations to more
closely match what we can search for.
- ICSearchPattern - added getLimitTo()
- ICSearchResultCollector - added createMatch(), which should
return an object implementing the new IMatch interface, these store the
any data needed to keep found matches.
These interfaces are still new and its too early for anyone other than
search and the indexer to be using them.
- added search interface IMatch.
Changes to core.search had to do with keeping track of the current scope
during the search, as well as other modifications for matching class
declarations, and the start of the patterns for matching other things.
Changes to ui.search had to do with creating IMatch objects to store the
information needed by the label provider to display icons and sort the
results.
Added support for long long and wide char literals.
Fix for PR 39349 : Scanner fails on long long literals.
Fix for PR 39544 : Scanner fails on wide char literals.