From d7632408799654dff1859a21150818d9438d9bfb Mon Sep 17 00:00:00 2001 From: John Camelon Date: Wed, 21 Apr 2004 18:05:19 +0000 Subject: [PATCH] Partial fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=59468 --- core/org.eclipse.cdt.core.tests/ChangeLog | 3 + .../core/parser/tests/ScannerTestCase.java | 84 ------------------- .../parser/ChangeLog-parser | 3 + .../core/parser/ContextualParser.java | 17 ++++ 4 files changed, 23 insertions(+), 84 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog index 506dcf94e28..801cebf645e 100644 --- a/core/org.eclipse.cdt.core.tests/ChangeLog +++ b/core/org.eclipse.cdt.core.tests/ChangeLog @@ -1,3 +1,6 @@ +2004-04-21 John Camelon + Removed unused testInclusions() test from ScannerTestCase. + 2004-04-20 Andrew Niefer added parser/CompleteParseASTTest.testBug59302() diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java index a72c6e6cc72..b5b65c175b1 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java @@ -158,10 +158,6 @@ public class ScannerTestCase extends BaseScannerTest } } - - public final static boolean doIncludeStdio= false; - public final static boolean doIncludeWindowsH= false; - public final static boolean doIncludeWinUserH= false; public final static int SIZEOF_TRUTHTABLE = 10; @@ -356,41 +352,6 @@ public class ScannerTestCase extends BaseScannerTest } } - public void prepareForWindowsRH() - { - scanner.addIncludePath( - "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Include"); - scanner.addDefinition("_WIN32_WINNT", "0x0300"); - scanner.addDefinition("WINVER", "0x0400"); - scanner.addDefinition("_WIN32_WINDOWS", "0x0300"); - scanner.addDefinition("_MSC_VER", "1200"); - } - - public void prepareForWindowsH() - { - scanner.addIncludePath( - "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Include"); - scanner.addDefinition("_MSC_VER", "1200"); - scanner.addDefinition("__cplusplus", "1"); - scanner.addDefinition("__STDC__", "1"); - scanner.addDefinition("_WIN32", ""); - scanner.addDefinition( "__midl", "1000" ); - scanner.addDefinition("_WIN32_WINNT", "0x0300"); - scanner.addDefinition("WINVER", "0x0400"); - scanner.addDefinition( "_M_IX86", "300"); - scanner.addDefinition( "_INTEGRAL_MAX_BITS", "64"); - } - - public void prepareForStdio() - { - scanner.addIncludePath( - "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Include"); - scanner.addDefinition("_MSC_VER", "1100"); - scanner.addDefinition("__STDC__", "1"); - scanner.addDefinition("_INTEGRAL_MAX_BITS", "64"); - scanner.addDefinition("_WIN32", ""); - scanner.addDefinition( "_M_IX86", "300"); - } public void testConcatenation() { @@ -888,51 +849,6 @@ public class ScannerTestCase extends BaseScannerTest } - public void testInclusions() - { - try - { - if (doIncludeStdio) - { - initializeScanner("#include "); - prepareForStdio(); - int count= fullyTokenize(); - if (verbose) - System.out.println( - "For stdio.h, Scanner produced " + count + " tokens"); - validateBalance(); - - initializeScanner("#include \\\n<\\\nstdio.h \\\n>"); - prepareForStdio(); - count= fullyTokenize(); - if (verbose) - System.out.println( - "For stdio.h, Scanner produced " + count + " tokens"); - } - - if (doIncludeWindowsH) - { - initializeScanner("#include "); - prepareForWindowsH(); - int count= fullyTokenize(); - - validateBalance(); - } - - if (doIncludeWinUserH) - { - initializeScanner("#include "); - prepareForWindowsRH(); - validateEOF(); - validateBalance(); - } - } - catch (Exception e) - { - fail(EXCEPTION_THROWN + e.toString()); - } - - } public void testOtherPreprocessorCommands() throws ParserFactoryError { diff --git a/core/org.eclipse.cdt.core/parser/ChangeLog-parser b/core/org.eclipse.cdt.core/parser/ChangeLog-parser index b7e175ebf7e..cfba267874e 100644 --- a/core/org.eclipse.cdt.core/parser/ChangeLog-parser +++ b/core/org.eclipse.cdt.core/parser/ChangeLog-parser @@ -1,3 +1,6 @@ +2004-04-21 John Camelon + Partial fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=59468 + 2004-04-20 Andrew Niefer fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=59302 - Nested friend mishandled diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ContextualParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ContextualParser.java index 18e62a73f28..b14f814d27a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ContextualParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ContextualParser.java @@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.core.parser; import java.util.Set; +import org.eclipse.cdt.core.parser.BacktrackException; import org.eclipse.cdt.core.parser.EndOfFileException; import org.eclipse.cdt.core.parser.IParserLogService; import org.eclipse.cdt.core.parser.IScanner; @@ -212,4 +213,20 @@ public class ContextualParser extends CompleteParser { protected void setCurrentFunctionName(String functionName) { currentFunctionName = functionName; } + + protected void handleFunctionBody(IASTScope scope) throws BacktrackException, EndOfFileException + { + if( scanner.isOnTopContext() ) + functionBody(scope); + else + skipOverCompoundStatement(); + } + + protected void catchBlockCompoundStatement(IASTScope scope) throws BacktrackException, EndOfFileException + { + if( scanner.isOnTopContext() ) + compoundStatement(scope, true); + else + skipOverCompoundStatement(); + } }