From a7fcc4aa84aa78200e7f855bd003c3536f014408 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Wed, 28 Jul 2004 20:28:15 +0000 Subject: [PATCH] Scanner2 fixes for SelectionSearch & Content Assist JUnit failures. --- .../cdt/core/parser/tests/CompletionParseTest.java | 2 ++ .../cdt/internal/core/parser/scanner2/Scanner2.java | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java index c7843565f0e..3729413b2f6 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java @@ -602,6 +602,8 @@ public class CompletionParseTest extends CompletionParseBaseTest { new IASTNode.LookupKind[]{ IASTNode.LookupKind.THIS }, node.getCompletionContext(), null ); + assertTrue( node.getCompletionScope() instanceof IASTMethod ); + assertEquals( ((IASTMethod)node.getCompletionScope()).getName(), "d" ); //$NON-NLS-1$ assertEquals( result.getResultsSize(), 4 ); Iterator iter = result.getNodes(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java index 08e65e0effd..d35a560b7ae 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java @@ -265,7 +265,7 @@ public class Scanner2 implements IScanner, IScannerData { * @see org.eclipse.cdt.core.parser.IScanner#isOnTopContext() */ public boolean isOnTopContext() { - return bufferStackPos == 0; + return bufferStackPos <= 0; } private IToken lastToken; @@ -2239,6 +2239,11 @@ public class Scanner2 implements IScanner, IScannerData { = new ObjectStyleMacro("__restrict".toCharArray(), "restrict".toCharArray()); //$NON-NLS-1$ //$NON-NLS-2$ private static final ObjectStyleMacro __volatile__ = new ObjectStyleMacro("__volatile__".toCharArray(), "volatile".toCharArray()); //$NON-NLS-1$ //$NON-NLS-2$ + private static final ObjectStyleMacro __const__ + = new ObjectStyleMacro("__const__".toCharArray(), "const".toCharArray()); //$NON-NLS-1$ //$NON-NLS-2$ + private static final ObjectStyleMacro __const + = new ObjectStyleMacro("__const".toCharArray(), "const".toCharArray()); //$NON-NLS-1$ //$NON-NLS-2$ + private static final FunctionStyleMacro __attribute__ = new FunctionStyleMacro( "__attribute__".toCharArray(), //$NON-NLS-1$ @@ -2261,6 +2266,8 @@ public class Scanner2 implements IScanner, IScannerData { // gcc extensions definitions.put(__inline__.name, __inline__); + definitions.put( __const__.name, __const__ ); + definitions.put( __const.name, __const ); definitions.put(__extension__.name, __extension__); definitions.put(__attribute__.name, __attribute__); definitions.put(__restrict__.name, __restrict__);