From fabbd8d287827b35a4a2f77372095478a76d3da9 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Tue, 29 Jan 2008 09:04:10 +0000 Subject: [PATCH] Predefined macro __CDT_PARSER__, bug 173848. --- .../core/parser/tests/scanner/PreprocessorBugsTests.java | 9 ++++++++- .../cdt/internal/core/parser/scanner/CPreprocessor.java | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner/PreprocessorBugsTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner/PreprocessorBugsTests.java index 65c9db08c35..a4b21c1ff18 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner/PreprocessorBugsTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner/PreprocessorBugsTests.java @@ -84,5 +84,12 @@ public class PreprocessorBugsTests extends PreprocessorTestsBase { validateEOF(); validateProblemCount(0); } - + + // __CDT_PARSER__ + public void testPredefinedCDTMacro_Bug173848() throws Exception { + initializeScanner(); + validateInteger("1"); + validateEOF(); + validateProblemCount(0); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java index c1ade5cb948..3254d427ca1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java @@ -76,6 +76,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable { // standard built-ins + private static final ObjectStyleMacro __CDT_PARSER__= new ObjectStyleMacro("__CDT_PARSER__".toCharArray(), ONE); //$NON-NLS-1$ private static final ObjectStyleMacro __cplusplus = new ObjectStyleMacro("__cplusplus".toCharArray(), ONE); //$NON-NLS-1$ private static final ObjectStyleMacro __STDC__ = new ObjectStyleMacro("__STDC__".toCharArray(), ONE); //$NON-NLS-1$ private static final ObjectStyleMacro __STDC_HOSTED__ = new ObjectStyleMacro("__STDC_HOSTED_".toCharArray(), ONE); //$NON-NLS-1$ @@ -259,6 +260,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable { private void setupMacroDictionary(IScannerExtensionConfiguration config, IScannerInfo info, ParserLanguage lang) { // built in macros + fMacroDictionary.put(__CDT_PARSER__.getNameCharArray(), __CDT_PARSER__); fMacroDictionary.put(__STDC__.getNameCharArray(), __STDC__); fMacroDictionary.put(__FILE__.getNameCharArray(), __FILE__); fMacroDictionary.put(__DATE__.getNameCharArray(), __DATE__);