update dev300-m58
[ooovba.git] / soltools / cpp / Test.txt
blob62c1ae40f2189faf60c23a5e2114436964d587c1
2 #define ABC \
3                 ggg
5 ABC
7 /* Standards --------------------------------------------------------------- */
9 #define NOTHING
10 NOTHING
12 #define SYMBOL symbol
13 #undef SYMBOL
14 #define SYMBOL _symbol_
16 < SYMBOL >                      // < _symbol_ >
17 xSYMBOLx                        // xSYMBOLx
18 +SYMBOL-                        // +_symbol_-
19 >SYMBOL<                        // >_symbol_<
20 <SYMBOL>                        // <_symbol_>
22 #define FALSE 0
23 #define TRUE  !FALSE
24 a = x > 0 ? TRUE : FALSE        // a = x > 0 ? !0 : 0
26 #define A x
27 #define B y
28 #define MAC(a, b) \
29         T() { a(); return b; }      // T() { x(); return y; }
30 MAC(A,B);
32 #ifdef MAC
33 MAC(X,Y)
34 #endif // MAC
36 /* Recursions -------------------------------------------------------------- */
38 #define y x
39 #define x y
40 x                               // x
42 #define Test(a) a
43 #define b Test(b)
44 a = b;                          // a = b;
46 #define func abc(func)
47 a = func                        // a = abc(func)
49 #define func1 func(abc)
50 a = func1                       // a = abc(func)(abc)
52 #define args(func, args) func args
53 args(t1, (args(t2, (x, y))))    // t1 (t2 (x, y))
55 #define ARGS(a) a
56 #define __ ARGS
57 int foo __((int x));            // int foo (int x);
59 /* Concatinations ---------------------------------------------------------- */
61 #define tail _Test
62 // Txt_##tail                      // Txt_##_Test
64 #define z(e,f) e##_##f
65 z ( abc, xyz )                  // abc_xyz
68 #define CAT( var ) fix##.var
69 CAT( a )                        // fix.a
71 #define CAT3( class, ref ) class##ref::class##ref
72 CAT3( a, b )                    // ab::ab
74 #define CAT2( var ) fix##var::fix##var
75 CAT2( a )                       // fixa::fixa
77 /* Extrems ----------------------------------------------------------------- */
79 #define MAKE_X( name )  name##_Test
80 #define MAKE_Y( name )  MAKE_X( name##_Sym )
81 MAKE_Y( Txt );                  // Txt_Sym_Test;
84 /* Extensions -------------------------------------------------------------- */
87 #ident "(c)# Test.txt"
89 #if #machine(i386)
90 #   error illegal machine
91 #endif
92 char machine[6];
95 /* Last bug ----------------------------------------------------------------- */
96 #define Cfstrcpy                Cstrcpy
97 #define Cstrcpy( s1, s2 )       strcpy( s1, s2 )
99 Cfstrcpy(Par1,Par2 )            // blub( Par1, Par2 )
101 /* ---------------------------------------------------------------------- */