Cosmetics.
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner/PreprocessorTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner/PreprocessorTests.java
index 90d8d87..022d3f3 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner/PreprocessorTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner/PreprocessorTests.java
@@ -6,25 +6,24 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * IBM - Initial API and implementation
- * Markus Schorn (Wind River Systems)
+ * IBM - Initial API and implementation
+ * Markus Schorn (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.core.parser.tests.scanner;
import java.util.ArrayList;
import java.util.List;
-import junit.framework.TestSuite;
-
import org.eclipse.cdt.core.parser.IProblem;
import org.eclipse.cdt.core.parser.IToken;
+import junit.framework.TestSuite;
/**
* Scanner2Tests ported to use the CPreprocessor
*/
public class PreprocessorTests extends PreprocessorTestsBase {
-
+
public static TestSuite suite() {
return suite(PreprocessorTests.class);
}
@@ -33,7 +32,7 @@
// #define obj_f f
// #define obj_fx f x
// #define obj_fopen f (
- // obj_f
+ // obj_f
// (y)
// obj_f
// y
@@ -54,13 +53,13 @@
validateToken(IToken.tLPAREN);
validateIdentifier("y");
validateToken(IToken.tRPAREN);
-
+
validateIdentifier("y");
validateToken(IToken.tPLUS);
validateIdentifier("y");
validateEOF();
}
-
+
// #define f(x) x
// f(f(x));
// f(f);
@@ -72,7 +71,7 @@
validateIdentifier("f");
validateToken(IToken.tSEMI);
-
+
validateIdentifier("f");
validateToken(IToken.tLPAREN);
validateIdentifier("x");
@@ -80,8 +79,7 @@
validateToken(IToken.tSEMI);
validateEOF();
}
-
-
+
// #define f(x) x
// f(f(
public void testMissingParenthesis() throws Exception {
@@ -90,7 +88,7 @@
validateProblemCount(1);
validateProblem(0, IProblem.PREPROCESSOR_MISSING_RPAREN_PARMLIST, "f");
}
-
+
// #define b(x) ok
// #define step1 b
// #define step2 step1 (x)
@@ -100,7 +98,7 @@
validateIdentifier("ok");
validateEOF();
}
-
+
// #define m1(x) a1
// #define m2(x...) a2
// m1(1,2);
@@ -193,7 +191,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define m0() a
// m0;
// m0();
@@ -218,7 +216,7 @@
validateProblemCount(1);
validateProblem(0, IProblem.PREPROCESSOR_MACRO_USAGE_ERROR, "m0");
}
-
+
// #define tp(x,y) #x##y
// tp(a, );
// tp(a,b);
@@ -234,7 +232,7 @@
validateProblemCount(1);
validateProblem(0, IProblem.PREPROCESSOR_MACRO_PASTING_ERROR, "tp");
}
-
+
// #define tp(x,y) x##y
// tp(a, b c);
// tp(a b,c);
@@ -262,7 +260,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define variadic(x...) (a, ##x)
// variadic();
// variadic(b);
@@ -273,7 +271,7 @@
validateIdentifier("a");
validateToken(IToken.tRPAREN);
validateToken(IToken.tSEMI);
-
+
validateToken(IToken.tLPAREN);
validateIdentifier("a");
validateToken(IToken.tCOMMA);
@@ -304,7 +302,7 @@
validateIdentifier("a");
validateToken(IToken.tRPAREN);
validateToken(IToken.tSEMI);
-
+
validateToken(IToken.tLPAREN);
validateIdentifier("a");
validateToken(IToken.tCOMMA);
@@ -335,7 +333,7 @@
validateIdentifier("a");
validateToken(IToken.tRPAREN);
validateToken(IToken.tSEMI);
-
+
validateToken(IToken.tLPAREN);
validateIdentifier("a");
validateToken(IToken.tCOMMA);
@@ -365,7 +363,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define tp(x,y) x##y
// #define _p p
// tp(_p,);
@@ -380,7 +378,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define vararg(a, ...) (__VA_ARGS__)
// vararg();
// vararg( );
@@ -415,7 +413,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define OBJ __VA_ARGS__
// #define func(x) __VA_ARGS__
// OBJ;
@@ -428,11 +426,11 @@
validateIdentifier("__VA_ARGS__");
validateToken(IToken.tSEMI);
validateEOF();
- // gcc actually warns about using __VA_ARGS__ in object-style macros too.
+ // gcc actually warns about using __VA_ARGS__ in object-style macros too.
validateProblemCount(1);
validateProblem(0, IProblem.PREPROCESSOR_INVALID_VA_ARGS, null);
}
-
+
// #define str(x) #x
// #define _p p
// #define obj str(_p) // str is expanded before _p is rescanned.
@@ -445,10 +443,10 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define obj #str
// obj;
- public void testStringifyOperatorInObject() throws Exception {
+ public void testStringifyOperatorInObject() throws Exception {
initializeScanner();
validateToken(IToken.tPOUND);
validateIdentifier("str");
@@ -457,11 +455,11 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define str(x) #x
// #define open_str() str(a
// open_str()b);
- public void testOpenStringify() throws Exception {
+ public void testOpenStringify() throws Exception {
initializeScanner();
validateString("ab");
validateToken(IToken.tSEMI);
@@ -469,17 +467,17 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define ONE(a, ...) int x
// #define TWO(b, args...) int y
- // ONE("string");
- // TWO("string");
+ // ONE("string");
+ // TWO("string");
public void testSkippingVarags() throws Exception {
initializeScanner();
validateToken(IToken.t_int);
validateIdentifier("x");
validateToken(IToken.tSEMI);
-
+
validateToken(IToken.t_int);
validateIdentifier("y");
validateToken(IToken.tSEMI);
@@ -487,7 +485,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define eval(f,x) f(x)
// #define m(x) m[x]
// eval(m,y);
@@ -502,7 +500,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
//#define f\
//(x) ok
// f(x)
@@ -512,7 +510,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define f() fval
// #define nospace f()f()
// #define space f() f()
@@ -536,19 +534,19 @@
initializeScanner();
validateString("fvalfval");
validateToken(IToken.tSEMI);
-
+
validateString("fval fval");
validateToken(IToken.tSEMI);
-
+
validateString("[a bc de f]");
validateToken(IToken.tSEMI);
-
+
validateString("[ a bc de f ]");
validateToken(IToken.tSEMI);
validateString("[a-bc-de-f]");
validateToken(IToken.tSEMI);
-
+
validateString("[ a-bc-de-f ]");
validateToken(IToken.tSEMI);
@@ -578,14 +576,14 @@
validateIdentifier("x");
validateIdentifier("z");
validateToken(IToken.tSEMI);
-
+
validateIdentifier("xempty");
validateIdentifier("z");
validateToken(IToken.tSEMI);
-
+
validateIdentifier("z");
validateToken(IToken.tSEMI);
-
+
validateIdentifier("emptyempty");
validateIdentifier("z");
validateToken(IToken.tSEMI);
@@ -595,9 +593,9 @@
validateToken(IToken.tSEMI);
validateEOF();
- validateProblemCount(0);
+ validateProblemCount(0);
}
-
+
// #define empty
// #define paste1(y) x##y z
// #define paste2(x) x##empty z
@@ -611,14 +609,14 @@
validateIdentifier("x");
validateIdentifier("z");
validateToken(IToken.tSEMI);
-
+
validateIdentifier("xempty");
validateIdentifier("z");
validateToken(IToken.tSEMI);
-
+
validateIdentifier("z");
validateToken(IToken.tSEMI);
-
+
validateIdentifier("emptyempty");
validateIdentifier("z");
validateToken(IToken.tSEMI);
@@ -628,7 +626,7 @@
validateToken(IToken.tSEMI);
validateEOF();
- validateProblemCount(0);
+ validateProblemCount(0);
}
// #define paste(x,y,z) x##y##z
@@ -643,10 +641,9 @@
validateToken(IToken.tSEMI);
validateEOF();
- validateProblemCount(0);
+ validateProblemCount(0);
}
-
-
+
// #define A(x,y,z) x + y + z
// #define _t t
// A ( _t , , _t )
@@ -658,7 +655,6 @@
validateIdentifier("t");
}
-
// #define FOO 5
// # define BAR 10
// int x = FOO + BAR;
@@ -674,7 +670,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define FOO BAR
// # define BAR 10
// int x = BAR;
@@ -688,8 +684,7 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
// #define MAX(a, b) (a) > (b) ? (a) : (b)
// int max = MAX(x, y);
public void testSimpleFunctionLike1() throws Exception {
@@ -718,8 +713,7 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
// #define ADD(a, b) (a) + (b)
// #define ADDPART(a) ADD(a
// int sum = ADDPART (x) , y);
@@ -741,14 +735,13 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
// #define ADD(a, b) (a) + (b)
// int sum = ADD(x+1,y+1);
public void testSimpleFunctionLike3() throws Exception {
// int sum = (x+1) + (y+1) ;
initializeScanner();
-
+
validateToken(IToken.t_int);
validateIdentifier("sum");
validateToken(IToken.tASSIGN);
@@ -767,13 +760,13 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define ADD(a, b) (a) + (b)
// int sum = ADD(f(x,y),z+1);
public void testSimpleFunctionLike4() throws Exception {
// int sum = (f(x,y)) + (z+1) ;
initializeScanner();
-
+
validateToken(IToken.t_int);
validateIdentifier("sum");
validateToken(IToken.tASSIGN);
@@ -795,16 +788,16 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define hash_hash # ## #
// #define mkstr(a) # a
// #define in_between(a) mkstr(a)
// #define join(c, d) in_between(c hash_hash d)
- // char p[] = join(x, y);
+ // char p[] = join(x, y);
public void testSpecHashHashExample() throws Exception {
// char p[] = "x ## y" ;
initializeScanner();
-
+
validateToken(IToken.t_char);
validateIdentifier("p");
validateToken(IToken.tLBRACKET);
@@ -815,8 +808,7 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
private static StringBuffer getExample3Defines() {
return new StringBuffer()
.append("#define x 3 \n")
@@ -834,16 +826,15 @@
.append("#define r(x,y) x ## y \n")
.append("#define str(x) # x \n");
}
-
-
-
+
+
public void testSpecExample3_1() throws Exception {
StringBuffer sb = getExample3Defines();
- sb.append("f(y+1) + f(f(z)) % t(t(g)(0) + t)(1); \n");
-
+ sb.append("f(y+1) + f(f(z)) % t(t(g)(0) + t)(1); \n");
+
// f(2 * (y+1)) + f(2 * (f(2 * (z[0])))) % f(2 * (0)) + t(1);
initializeScanner(sb.toString());
-
+
validateIdentifier("f");
validateToken(IToken.tLPAREN);
validateInteger("2");
@@ -891,15 +882,14 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
public void testSpecExample3_2() throws Exception {
StringBuffer sb = getExample3Defines();
sb.append("g(x+(3,4)-w) | h 5) & m (f)^m(m); \n");
-
+
// f(2 * (2+(3,4)-0,1)) | f(2 * (~ 5)) & f(2 * (0,1))^m(0,1); //47
initializeScanner(sb.toString());
-
+
validateIdentifier("f");
validateToken(IToken.tLPAREN);
validateInteger("2");
@@ -950,16 +940,15 @@
validateEOF();
validateProblemCount(0);
}
-
-
-
+
+
public void testSpecExample3_3() throws Exception {
StringBuffer sb = getExample3Defines();
sb.append("p() i[q()] = { q(1), r(2,3), r(4,), r(,5), r(,) }; \n");
-
+
// int i[] = { 1, 23, 4, 5, };
initializeScanner(sb.toString());
-
+
validateToken(IToken.t_int);
validateIdentifier("i");
validateToken(IToken.tLBRACKET);
@@ -979,12 +968,11 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
public void testSpecExample3_4() throws Exception {
StringBuffer sb = getExample3Defines();
sb.append("char c[2][6] = { str(hello), str() }; \n"); //31
-
+
// char c[2][6] = { "hello", "" }; //15
initializeScanner(sb.toString());
@@ -1006,8 +994,7 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
private static StringBuffer getExample4Defines() {
return new StringBuffer()
.append("#define str(s) # s \n")
@@ -1020,15 +1007,14 @@
.append("#define HIGHLOW \"hello\" \n")
.append("#define LOW LOW \", world\" \n");
}
-
public void testSpecExample4_1() throws Exception {
StringBuffer sb = getExample4Defines();
sb.append("debug(1, 2); \n"); //31
-
+
// printf("x1= %d, x2= %s", x1, x2); // 9
initializeScanner(sb.toString());
-
+
validateIdentifier("printf");
validateToken(IToken.tLPAREN);
validateString("x1= %d, x2= %s");
@@ -1041,16 +1027,15 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
public void testSpecExample4_2() throws Exception {
StringBuffer sb = getExample4Defines();
sb.append("fputs(str(strncmp(\"abc\\0d\", \"abc\", '\\4') // this goes away \n");
sb.append("== 0) str(: @\\n), s); \n");
-
+
// fputs( "strncmp(\"abc\\0d\", \"abc\", '\\4') == 0: @\n", s); // 7
initializeScanner(sb.toString());
-
+
validateIdentifier("fputs");
validateToken(IToken.tLPAREN);
validateString("strncmp(\\\"abc\\\\0d\\\", \\\"abc\\\", '\\\\4') == 0: @\\n");
@@ -1061,24 +1046,23 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
public void testSpecExample4_3() throws Exception {
StringBuffer sb = getExample4Defines();
sb.append("xglue(HIGH, LOW) \n");
-
+
// "hello, world"
initializeScanner(sb.toString());
-
+
validateString("hello, world");
validateEOF();
validateProblemCount(0);
}
-
+
public void testSpecExample4_4() throws Exception {
StringBuffer sb = getExample4Defines();
sb.append("glue(HIGH, LOW); \n");
-
+
// "hello";
initializeScanner(sb.toString());
@@ -1087,14 +1071,13 @@
validateEOF();
validateProblemCount(0);
}
-
- // #define t(x,y,z) x ## y ## z
+ // #define t(x,y,z) x ## y ## z
// int j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,), t(10,,), t(,11,), t(,,12), t(,,) };
public void testSpecExample5() throws Exception {
// int j[] = {123, 45, 67, 89, 10, 11, 12, };
initializeScanner();
-
+
validateToken(IToken.t_int);
validateIdentifier("j");
validateToken(IToken.tLBRACKET);
@@ -1120,8 +1103,7 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
public StringBuffer getExample7Defines() {
return new StringBuffer()
.append("#define debug(...) fprintf(stderr, __VA_ARGS__) \n ")
@@ -1129,15 +1111,14 @@
.append("#define report(test, ...) ((test)?puts(#test):\\ \n ")
.append("printf(__VA_ARGS__)) \n ");
}
-
-
+
public void testSpecExample7_1() throws Exception {
StringBuffer sb = getExample7Defines();
sb.append("debug(\"Flag\"); \n");
-
+
// fprintf(stderr, "Flag" ); //7
initializeScanner(sb.toString());
-
+
validateIdentifier("fprintf");
validateToken(IToken.tLPAREN);
validateIdentifier("stderr");
@@ -1148,15 +1129,14 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
public void testSpecExample7_2() throws Exception {
StringBuffer sb = getExample7Defines();
sb.append("debug(\"X = %d\\n\", x); \n");
-
+
// fprintf(stderr, "X = %d\n", x ); //9
initializeScanner(sb.toString());
-
+
validateIdentifier("fprintf");
validateToken(IToken.tLPAREN);
validateIdentifier("stderr");
@@ -1165,19 +1145,18 @@
validateToken(IToken.tCOMMA);
validateIdentifier("x");
validateToken(IToken.tRPAREN);
- validateToken(IToken.tSEMI);
+ validateToken(IToken.tSEMI);
validateEOF();
validateProblemCount(0);
}
-
-
+
public void testSpecExample7_3() throws Exception {
StringBuffer sb = getExample7Defines();
sb.append("showlist(The first, second, and third items.); \n");
-
+
// puts( "The first, second, and third items." ); //5
initializeScanner(sb.toString());
-
+
validateIdentifier("puts");
validateToken(IToken.tLPAREN);
validateString("The first, second, and third items.");
@@ -1186,16 +1165,15 @@
validateEOF();
validateProblemCount(0);
}
-
-
-
+
+
public void testSpecExample7_4() throws Exception {
StringBuffer sb = getExample7Defines();
sb.append("report(x>y, \"x is %d but y is %d\", x, y); \n");
-
+
// ( (x>y) ? puts("x>y") : printf("x is %d but y is %d", x, y) ); //22
initializeScanner(sb.toString());
-
+
validateToken(IToken.tLPAREN);
validateToken(IToken.tLPAREN);
validateIdentifier("x");
@@ -1221,30 +1199,28 @@
validateEOF();
validateProblemCount(0);
}
-
-
-
+
+
// #define foo g g g
// #define g f##oo
// foo
public void testRecursiveExpansion() throws Exception {
initializeScanner();
-
+
validateIdentifier("foo");
validateIdentifier("foo");
validateIdentifier("foo");
validateEOF();
validateProblemCount(0);
}
-
-
- // #define m !(m)+n
+
+ // #define m !(m)+n
// #define n(n) n(m)
// m(m)
public void testRecursiveExpansion2() throws Exception {
// !(m)+ !(m)+n(!(m)+n)
initializeScanner();
-
+
validateToken(IToken.tNOT);
validateToken(IToken.tLPAREN);
validateIdentifier("m");
@@ -1267,8 +1243,7 @@
validateEOF();
validateProblemCount(0);
}
-
-
+
// #define f g
// #define cat(a,b) a ## b
// #define g bad
@@ -1276,13 +1251,12 @@
public void testRecursiveExpansion3() throws Exception {
// ff
initializeScanner();
-
+
validateIdentifier("ff");
validateEOF();
validateProblemCount(0);
}
-
-
+
// f(2 * (y+1)) + f(2 * (f(2 * (z[0])))) % f(2 * (0)) + t(1);
// f(2 * (2+(3,4)-0,1)) | f(2 * (~ 5)) & f(2 * (0,1))^m(0,1);
// int i[] = { 1, 23, 4, 5, };
@@ -1317,7 +1291,7 @@
expect.add(t);
t= fScanner.nextToken();
}
-
+
for (IToken et : expect) {
t= fScanner.nextToken();
assertEquals(et.getImage(), t.getImage());
@@ -1326,7 +1300,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define hash_hash # ## #
// #define mkstr(a) # a
// #define in_between(a) mkstr(a)
@@ -1338,7 +1312,7 @@
validateEOF();
validateProblemCount(0);
}
-
+
// #define BIN 0b10101010
// #define HEX 0xAA
// #define OCT 0252
@@ -1355,7 +1329,7 @@
validateToken(IToken.tSEMI);
validateEOF();
validateProblemCount(0);
-
+
String badbinary = "{0b012, 0b01b, 0b1111e01, 0b1111p10, 0b10010.10010}";
initializeScanner(badbinary);
fullyTokenize();