[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Applied [HEAD && 1_2] _Pragma support for ANSI C
|
CORE
Fixed Bug 39554 : _Pragma directive is not supported (ANSI C99)
TESTS
Moved testBug39554() from ASTFailedTests to QuickParseASTTests.
JohnC
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/ChangeLog,v
retrieving revision 1.140
diff -u -r1.140 ChangeLog
--- ChangeLog 6 Nov 2003 04:57:38 -0000 1.140
+++ ChangeLog 7 Nov 2003 19:34:24 -0000
@@ -1,3 +1,6 @@
+2003-11-07 John Camelon
+ Moved testBug39554() from ASTFailedTests to QuickParseASTTests.
+
2003-11-05 John Camelon
Added CompleteParseASTTest::testBug44838().
Added CompleteParseASTTest::testBug46165().
Index: failures/org/eclipse/cdt/core/parser/failedTests/ASTFailedTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/failures/org/eclipse/cdt/core/parser/failedTests/ASTFailedTests.java,v
retrieving revision 1.19
diff -u -r1.19 ASTFailedTests.java
--- failures/org/eclipse/cdt/core/parser/failedTests/ASTFailedTests.java 5 Nov 2003 18:15:21 -0000 1.19
+++ failures/org/eclipse/cdt/core/parser/failedTests/ASTFailedTests.java 7 Nov 2003 19:34:24 -0000
@@ -14,6 +14,7 @@
import java.io.Writer;
import java.util.Iterator;
+import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTFunction;
@@ -35,11 +36,7 @@
{
assertCodeFailsParse("FUNCTION_MACRO( 1, a )\n int i;");
}
-
- public void testBug39554() throws Exception
- {
- assertCodeFailsParse("_Pragma(\"foobar\")");
- }
+
//Here C99-specific section ends
//Here GCC-specific section starts
Index: parser/org/eclipse/cdt/core/parser/tests/BranchTrackerTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BranchTrackerTest.java,v
retrieving revision 1.2
diff -u -r1.2 BranchTrackerTest.java
--- parser/org/eclipse/cdt/core/parser/tests/BranchTrackerTest.java 5 Nov 2003 18:15:21 -0000 1.2
+++ parser/org/eclipse/cdt/core/parser/tests/BranchTrackerTest.java 7 Nov 2003 19:34:25 -0000
@@ -4,7 +4,6 @@
import junit.framework.TestCase;
-import org.eclipse.cdt.core.parser.ScannerException;
import org.eclipse.cdt.internal.core.parser.BranchTracker;
/**
Index: parser/org/eclipse/cdt/core/parser/tests/QuickParseASTTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/QuickParseASTTests.java,v
retrieving revision 1.26
diff -u -r1.26 QuickParseASTTests.java
--- parser/org/eclipse/cdt/core/parser/tests/QuickParseASTTests.java 5 Nov 2003 23:35:21 -0000 1.26
+++ parser/org/eclipse/cdt/core/parser/tests/QuickParseASTTests.java 7 Nov 2003 19:34:27 -0000
@@ -804,6 +804,12 @@
parse(code.toString());
}
+
+ public void testBug39554() throws Exception
+ {
+ parse("_Pragma(\"foobar\")", true, true, ParserLanguage.C );
+ }
+
public void testBug36702() throws Exception
{
Writer code = new StringWriter();
Index: parser/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/ChangeLog,v
retrieving revision 1.160
diff -u -r1.160 ChangeLog
--- parser/ChangeLog 6 Nov 2003 19:41:33 -0000 1.160
+++ parser/ChangeLog 7 Nov 2003 19:33:46 -0000
@@ -1,3 +1,6 @@
+2003-11-07 John Camelon
+ Fixed Bug 39554 : _Pragma directive is not supported (ANSI C99)
+
2003-11-06 John Camelon
Removed one last remainder of core.model.Util in parser to unbreak 2.0 build.
Index: parser/org/eclipse/cdt/internal/core/parser/Scanner.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java,v
retrieving revision 1.66
diff -u -r1.66 Scanner.java
--- parser/org/eclipse/cdt/internal/core/parser/Scanner.java 6 Nov 2003 19:41:33 -0000 1.66
+++ parser/org/eclipse/cdt/internal/core/parser/Scanner.java 7 Nov 2003 19:33:50 -0000
@@ -56,6 +56,7 @@
public class Scanner implements IScanner {
+
protected final IParserLogService log;
private final static String SCRATCH = "<scratch>";
private Reader backupReader;
@@ -409,6 +410,7 @@
private static final String PASTING = "<pasting>";
private static final String DEFINED = "defined";
+ private static final String _PRAGMA = "_Pragma";
private static final String POUND_DEFINE = "#define ";
private ContextStack contextStack = null;
@@ -792,7 +794,7 @@
} else if (
((c >= 'a') && (c <= 'z'))
- || ((c >= 'A') && (c <= 'Z')) | (c == '_')) {
+ || ((c >= 'A') && (c <= 'Z')) || (c == '_')) {
int baseOffset = lastContext.getOffset() - lastContext.undoStackSize() - 1;
@@ -817,6 +819,13 @@
if (ident.equals(DEFINED))
return newToken(IToken.tINTEGER, handleDefinedMacro());
+ if( ident.equals(_PRAGMA) && language == ParserLanguage.C )
+ {
+ handlePragmaOperator();
+ c = getChar();
+ continue;
+ }
+
Object mapping = definitions.get(ident);
if (mapping != null) {
@@ -1580,6 +1589,16 @@
/**
+ *
+ */
+ protected void handlePragmaOperator() throws ScannerException
+ {
+ // until we know what to do with pragmas, do the equivalent as
+ // to what we do for #pragma blah blah blah (ignore it)
+ getRestOfPreprocessorLine();
+ }
+
+ /**
* @param c
* @param wideLiteral
*/