0273-cpp.c - scc - simple c99 compiler
HTML git clone git://git.simple-cc.org/scc
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
0273-cpp.c (524B)
---
1 #define a(x) # x
2
3 static char *s = a ( 3
4 2);
5
6 static int
7 cmp(char *s1, char *s2)
8 {
9 while (*s1 && *s2 && *s1 == *s2)
10 ++s1, ++s2;
11 return *s1 == '\0' && *s2 == '\0';
12 }
13
14 int
15 main(void)
16 {
17 if (!cmp(a(3), "3"))
18 return 1;
19 if (!cmp(a( 3 ), "3"))
20 return 2;
21 if (!cmp(a( 3 2 ), "3 2"))
22 return 3;
23 if (!cmp(s, "3 2"))
24 return 4;
25 if (!cmp(a("3 2 1\n"), "\"3 2 1\\n\""))
26 return 5;
27 if (!cmp(a('\n'), "'\\n'"))
28 return 6;
29 if (!cmp(a('"'), "'\"'"))
30 return 6;
31 if (!cmp(a(: @\n), ": @\n"))
32 return 7;
33
34 return 0;
35 }