1 /*=============================================================================
2     Boost.Wave: A Standard compliant C++ preprocessor library
3     http://www.boost.org/
4 
5     Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
6     Software License, Version 1.0. (See accompanying file
7     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 
9     The tests included in this file were initially taken from the mcpp V2.5
10     preprocessor validation suite and were modified to fit into the Boost.Wave
11     unit test requirements.
12     The original files of the mcpp preprocessor are distributed under the
13     license reproduced at the end of this file.
14 =============================================================================*/
15 
16 // Tests translation limits (number of possible macro definitions should be at
17 // least 1024).
18 
19 #define AA
20 #define AB
21 #define AC
22 #define AD
23 #define AE
24 #define AF
25 #define AG
26 #define AH
27 #define AI
28 #define AJ
29 #define AK
30 #define AL
31 #define AM
32 #define AN
33 #define AO
34 #define AP
35 #define AQ
36 #define AR
37 #define AS
38 #define AT
39 #define AU
40 #define AV
41 #define AW
42 #define AX
43 #define AY
44 #define AZ
45 #define Aa
46 #define Ab
47 #define Ac
48 #define Ad
49 #define Ae
50 #define Af
51 #define Ag
52 #define Ah
53 #define Ai
54 #define Aj
55 #define Ak
56 #define Al
57 #define Am
58 #define An
59 #define BA
60 #define BB
61 #define BC
62 #define BD
63 #define BE
64 #define BF
65 #define BG
66 #define BH
67 #define BI
68 #define BJ
69 #define BK
70 #define BL
71 #define BM
72 #define BN
73 #define BO
74 #define BP
75 #define BQ
76 #define BR
77 #define BS
78 #define BT
79 #define BU
80 #define BV
81 #define BW
82 #define BX
83 #define BY
84 #define BZ
85 #define Ba
86 #define Bb
87 #define Bc
88 #define Bd
89 #define Be
90 #define Bf
91 #define Bg
92 #define Bh
93 #define Bi
94 #define Bj
95 #define Bk
96 #define Bl
97 #define Bm
98 #define Bn
99 #define CA
100 #define CB
101 #define CC
102 #define CD
103 #define CE
104 #define CF
105 #define CG
106 #define CH
107 #define CI
108 #define CJ
109 #define CK
110 #define CL
111 #define CM
112 #define CN
113 #define CO
114 #define CP
115 #define CQ
116 #define CR
117 #define CS
118 #define CT
119 #define CU
120 #define CV
121 #define CW
122 #define CX
123 #define CY
124 #define CZ
125 #define Ca
126 #define Cb
127 #define Cc
128 #define Cd
129 #define Ce
130 #define Cf
131 #define Cg
132 #define Ch
133 #define Ci
134 #define Cj
135 #define Ck
136 #define Cl
137 #define Cm
138 #define Cn
139 #define DA
140 #define DB
141 #define DC
142 #define DD
143 #define DE
144 #define DF
145 #define DG
146 #define DH
147 #define DI
148 #define DJ
149 #define DK
150 #define DL
151 #define DM
152 #define DN
153 #define DO
154 #define DP
155 #define DQ
156 #define DR
157 #define DS
158 #define DT
159 #define DU
160 #define DV
161 #define DW
162 #define DX
163 #define DY
164 #define DZ
165 #define Da
166 #define Db
167 #define Dc
168 #define Dd
169 #define De
170 #define Df
171 #define Dg
172 #define Dh
173 #define Di
174 #define Dj
175 #define Dk
176 #define Dl
177 #define Dm
178 #define Dn
179 #define EA
180 #define EB
181 #define EC
182 #define ED
183 #define EE
184 #define EF
185 #define EG
186 #define EH
187 #define EI
188 #define EJ
189 #define EK
190 #define EL
191 #define EM
192 #define EN
193 #define EO
194 #define EP
195 #define EQ
196 #define ER
197 #define ES
198 #define ET
199 #define EU
200 #define EV
201 #define EW
202 #define EX
203 #define EY
204 #define EZ
205 #define Ea
206 #define Eb
207 #define Ec
208 #define Ed
209 #define Ee
210 #define Ef
211 #define Eg
212 #define Eh
213 #define Ei
214 #define Ej
215 #define Ek
216 #define El
217 #define Em
218 #define En
219 #define FA
220 #define FB
221 #define FC
222 #define FD
223 #define FE
224 #define FF
225 #define FG
226 #define FH
227 #define FI
228 #define FJ
229 #define FK
230 #define FL
231 #define FM
232 #define FN
233 #define FO
234 #define FP
235 #define FQ
236 #define FR
237 #define FS
238 #define FT
239 #define FU
240 #define FV
241 #define FW
242 #define FX
243 #define FY
244 #define FZ
245 #define Fa
246 #define Fb
247 #define Fc
248 #define Fd
249 #define Fe
250 #define Ff
251 #define Fg
252 #define Fh
253 #define Fi
254 #define Fj
255 #define Fk
256 #define Fl
257 #define Fm
258 #define Fn
259 #define GA
260 #define GB
261 #define GC
262 #define GD
263 #define GE
264 #define GF
265 #define GG
266 #define GH
267 #define GI
268 #define GJ
269 #define GK
270 #define GL
271 #define GM
272 #define GN
273 #define GO
274 #define GP
275 #define GQ
276 #define GR
277 #define GS
278 #define GT
279 #define GU
280 #define GV
281 #define GW
282 #define GX
283 #define GY
284 #define GZ
285 #define Ga
286 #define Gb
287 #define Gc
288 #define Gd
289 #define Ge
290 #define Gf
291 #define Gg
292 #define Gh
293 #define Gi
294 #define Gj
295 #define Gk
296 #define Gl
297 #define Gm
298 #define Gn
299 #define HA
300 #define HB
301 #define HC
302 #define HD
303 #define HE
304 #define HF
305 #define HG
306 #define HH
307 #define HI
308 #define HJ
309 #define HK
310 #define HL
311 #define HM
312 #define HN
313 #define HO
314 #define HP
315 #define HQ
316 #define HR
317 #define HS
318 #define HT
319 #define HU
320 #define HV
321 #define HW
322 #define HX
323 #define HY
324 #define HZ
325 #define Ha
326 #define Hb
327 #define Hc
328 #define Hd
329 #define He
330 #define Hf
331 #define Hg
332 #define Hh
333 #define Hi
334 #define Hj
335 #define Hk
336 #define Hl
337 #define Hm
338 #define Hn
339 #define IA
340 #define IB
341 #define IC
342 #define ID
343 #define IE
344 #define IF
345 #define IG
346 #define IH
347 #define II
348 #define IJ
349 #define IK
350 #define IL
351 #define IM
352 #define IN
353 #define IO
354 #define IP
355 #define IQ
356 #define IR
357 #define IS
358 #define IT
359 #define IU
360 #define IV
361 #define IW
362 #define IX
363 #define IY
364 #define IZ
365 #define Ia
366 #define Ib
367 #define Ic
368 #define Id
369 #define Ie
370 #define If
371 #define Ig
372 #define Ih
373 #define Ii
374 #define Ij
375 #define Ik
376 #define Il
377 #define Im
378 #define In
379 #define JA
380 #define JB
381 #define JC
382 #define JD
383 #define JE
384 #define JF
385 #define JG
386 #define JH
387 #define JI
388 #define JJ
389 #define JK
390 #define JL
391 #define JM
392 #define JN
393 #define JO
394 #define JP
395 #define JQ
396 #define JR
397 #define JS
398 #define JT
399 #define JU
400 #define JV
401 #define JW
402 #define JX
403 #define JY
404 #define JZ
405 #define Ja
406 #define Jb
407 #define Jc
408 #define Jd
409 #define Je
410 #define Jf
411 #define Jg
412 #define Jh
413 #define Ji
414 #define Jj
415 #define Jk
416 #define Jl
417 #define Jm
418 #define Jn
419 #define KA
420 #define KB
421 #define KC
422 #define KD
423 #define KE
424 #define KF
425 #define KG
426 #define KH
427 #define KI
428 #define KJ
429 #define KK
430 #define KL
431 #define KM
432 #define KN
433 #define KO
434 #define KP
435 #define KQ
436 #define KR
437 #define KS
438 #define KT
439 #define KU
440 #define KV
441 #define KW
442 #define KX
443 #define KY
444 #define KZ
445 #define Ka
446 #define Kb
447 #define Kc
448 #define Kd
449 #define Ke
450 #define Kf
451 #define Kg
452 #define Kh
453 #define Ki
454 #define Kj
455 #define Kk
456 #define Kl
457 #define Km
458 #define Kn
459 #define LA
460 #define LB
461 #define LC
462 #define LD
463 #define LE
464 #define LF
465 #define LG
466 #define LH
467 #define LI
468 #define LJ
469 #define LK
470 #define LL
471 #define LM
472 #define LN
473 #define LO
474 #define LP
475 #define LQ
476 #define LR
477 #define LS
478 #define LT
479 #define LU
480 #define LV
481 #define LW
482 #define LX
483 #define LY
484 #define LZ
485 #define La
486 #define Lb
487 #define Lc
488 #define Ld
489 #define Le
490 #define Lf
491 #define Lg
492 #define Lh
493 #define Li
494 #define Lj
495 #define Lk
496 #define Ll
497 #define Lm
498 #define Ln
499 #define MA
500 #define MB
501 #define MC
502 #define MD
503 #define ME
504 #define MF
505 #define MG
506 #define MH
507 #define MI
508 #define MJ
509 #define MK
510 #define ML
511 #define MM
512 #define MN
513 #define MO
514 #define MP
515 #define MQ
516 #define MR
517 #define MS
518 #define MT
519 #define MU
520 #define MV
521 #define MW
522 #define MX
523 #define MY
524 #define MZ
525 #define Ma
526 #define Mb
527 #define Mc
528 #define Md
529 #define Me
530 #define Mf
531 #define Mg
532 #define Mh
533 #define Mi
534 #define Mj
535 #define Mk
536 #define Ml
537 #define Mm
538 #define Mn
539 #define NA
540 #define NB
541 #define NC
542 #define ND
543 #define NE
544 #define NF
545 #define NG
546 #define NH
547 #define NI
548 #define NJ
549 #define NK
550 #define NL
551 #define NM
552 #define NN
553 #define NO
554 #define NP
555 #define NQ
556 #define NR
557 #define NS
558 #define NT
559 #define NU
560 #define NV
561 #define NW
562 #define NX
563 #define NY
564 #define NZ
565 #define Na
566 #define Nb
567 #define Nc
568 #define Nd
569 #define Ne
570 #define Nf
571 #define Ng
572 #define Nh
573 #define Ni
574 #define Nj
575 #define Nk
576 #define Nl
577 #define Nm
578 #define Nn
579 #define OA
580 #define OB
581 #define OC
582 #define OD
583 #define OE
584 #define OF
585 #define OG
586 #define OH
587 #define OI
588 #define OJ
589 #define OK
590 #define OL
591 #define OM
592 #define ON
593 #define OO
594 #define OP
595 #define OQ
596 #define OR
597 #define OS
598 #define OT
599 #define OU
600 #define OV
601 #define OW
602 #define OX
603 #define OY
604 #define OZ
605 #define Oa
606 #define Ob
607 #define Oc
608 #define Od
609 #define Oe
610 #define Of
611 #define Og
612 #define Oh
613 #define Oi
614 #define Oj
615 #define Ok
616 #define Ol
617 #define Om
618 #define On
619 #define PA
620 #define PB
621 #define PC
622 #define PD
623 #define PE
624 #define PF
625 #define PG
626 #define PH
627 #define PI
628 #define PJ
629 #define PK
630 #define PL
631 #define PM
632 #define PN
633 #define PO
634 #define PP
635 #define PQ
636 #define PR
637 #define PS
638 #define PT
639 #define PU
640 #define PV
641 #define PW
642 #define PX
643 #define PY
644 #define PZ
645 #define Pa
646 #define Pb
647 #define Pc
648 #define Pd
649 #define Pe
650 #define Pf
651 #define Pg
652 #define Ph
653 #define Pi
654 #define Pj
655 #define Pk
656 #define Pl
657 #define Pm
658 #define Pn
659 #define QA
660 #define QB
661 #define QC
662 #define QD
663 #define QE
664 #define QF
665 #define QG
666 #define QH
667 #define QI
668 #define QJ
669 #define QK
670 #define QL
671 #define QM
672 #define QN
673 #define QO
674 #define QP
675 #define QQ
676 #define QR
677 #define QS
678 #define QT
679 #define QU
680 #define QV
681 #define QW
682 #define QX
683 #define QY
684 #define QZ
685 #define Qa
686 #define Qb
687 #define Qc
688 #define Qd
689 #define Qe
690 #define Qf
691 #define Qg
692 #define Qh
693 #define Qi
694 #define Qj
695 #define Qk
696 #define Ql
697 #define Qm
698 #define Qn
699 #define RA
700 #define RB
701 #define RC
702 #define RD
703 #define RE
704 #define RF
705 #define RG
706 #define RH
707 #define RI
708 #define RJ
709 #define RK
710 #define RL
711 #define RM
712 #define RN
713 #define RO
714 #define RP
715 #define RQ
716 #define RR
717 #define RS
718 #define RT
719 #define RU
720 #define RV
721 #define RW
722 #define RX
723 #define RY
724 #define RZ
725 #define Ra
726 #define Rb
727 #define Rc
728 #define Rd
729 #define Re
730 #define Rf
731 #define Rg
732 #define Rh
733 #define Ri
734 #define Rj
735 #define Rk
736 #define Rl
737 #define Rm
738 #define Rn
739 #define SA
740 #define SB
741 #define SC
742 #define SD
743 #define SE
744 #define SF
745 #define SG
746 #define SH
747 #define SI
748 #define SJ
749 #define SK
750 #define SL
751 #define SM
752 #define SN
753 #define SO
754 #define SP
755 #define SQ
756 #define SR
757 #define SS
758 #define ST
759 #define SU
760 #define SV
761 #define SW
762 #define SX
763 #define SY
764 #define SZ
765 #define Sa
766 #define Sb
767 #define Sc
768 #define Sd
769 #define Se
770 #define Sf
771 #define Sg
772 #define Sh
773 #define Si
774 #define Sj
775 #define Sk
776 #define Sl
777 #define Sm
778 #define Sn
779 #define TA
780 #define TB
781 #define TC
782 #define TD
783 #define TE
784 #define TF
785 #define TG
786 #define TH
787 #define TI
788 #define TJ
789 #define TK
790 #define TL
791 #define TM
792 #define TN
793 #define TO
794 #define TP
795 #define TQ
796 #define TR
797 #define TS
798 #define TT
799 #define TU
800 #define TV
801 #define TW
802 #define TX
803 #define TY
804 #define TZ
805 #define Ta
806 #define Tb
807 #define Tc
808 #define Td
809 #define Te
810 #define Tf
811 #define Tg
812 #define Th
813 #define Ti
814 #define Tj
815 #define Tk
816 #define Tl
817 #define Tm
818 #define Tn
819 #define UA
820 #define UB
821 #define UC
822 #define UD
823 #define UE
824 #define UF
825 #define UG
826 #define UH
827 #define UI
828 #define UJ
829 #define UK
830 #define UL
831 #define UM
832 #define UN
833 #define UO
834 #define UP
835 #define UQ
836 #define UR
837 #define US
838 #define UT
839 #define UU
840 #define UV
841 #define UW
842 #define UX
843 #define UY
844 #define UZ
845 #define Ua
846 #define Ub
847 #define Uc
848 #define Ud
849 #define Ue
850 #define Uf
851 #define Ug
852 #define Uh
853 #define Ui
854 #define Uj
855 #define Uk
856 #define Ul
857 #define Um
858 #define Un
859 #define VA
860 #define VB
861 #define VC
862 #define VD
863 #define VE
864 #define VF
865 #define VG
866 #define VH
867 #define VI
868 #define VJ
869 #define VK
870 #define VL
871 #define VM
872 #define VN
873 #define VO
874 #define VP
875 #define VQ
876 #define VR
877 #define VS
878 #define VT
879 #define VU
880 #define VV
881 #define VW
882 #define VX
883 #define VY
884 #define VZ
885 #define Va
886 #define Vb
887 #define Vc
888 #define Vd
889 #define Ve
890 #define Vf
891 #define Vg
892 #define Vh
893 #define Vi
894 #define Vj
895 #define Vk
896 #define Vl
897 #define Vm
898 #define Vn
899 #define WA
900 #define WB
901 #define WC
902 #define WD
903 #define WE
904 #define WF
905 #define WG
906 #define WH
907 #define WI
908 #define WJ
909 #define WK
910 #define WL
911 #define WM
912 #define WN
913 #define WO
914 #define WP
915 #define WQ
916 #define WR
917 #define WS
918 #define WT
919 #define WU
920 #define WV
921 #define WW
922 #define WX
923 #define WY
924 #define WZ
925 #define Wa
926 #define Wb
927 #define Wc
928 #define Wd
929 #define We
930 #define Wf
931 #define Wg
932 #define Wh
933 #define Wi
934 #define Wj
935 #define Wk
936 #define Wl
937 #define Wm
938 #define Wn
939 #define XA
940 #define XB
941 #define XC
942 #define XD
943 #define XE
944 #define XF
945 #define XG
946 #define XH
947 #define XI
948 #define XJ
949 #define XK
950 #define XL
951 #define XM
952 #define XN
953 #define XO
954 #define XP
955 #define XQ
956 #define XR
957 #define XS
958 #define XT
959 #define XU
960 #define XV
961 #define XW
962 #define XX
963 #define XY
964 #define XZ
965 #define Xa
966 #define Xb
967 #define Xc
968 #define Xd
969 #define Xe
970 #define Xf
971 #define Xg
972 #define Xh
973 #define Xi
974 #define Xj
975 #define Xk
976 #define Xl
977 #define Xm
978 #define Xn
979 #define YA
980 #define YB
981 #define YC
982 #define YD
983 #define YE
984 #define YF
985 #define YG
986 #define YH
987 #define YI
988 #define YJ
989 #define YK
990 #define YL
991 #define YM
992 #define YN
993 #define YO
994 #define YP
995 #define YQ
996 #define YR
997 #define YS
998 #define YT
999 #define YU
1000 #define YV
1001 #define YW
1002 #define YX
1003 #define YY
1004 #define YZ
1005 #define Ya
1006 #define Yb
1007 #define Yc
1008 #define Yd
1009 #define Ye
1010 #define Yf
1011 #define Yg
1012 #define Yh
1013 #define Yi
1014 #define Yj
1015 #define Yk
1016 #define Yl
1017 #define Ym
1018 #define Yn
1019 #define ZA
1020 #define ZB
1021 #define ZC
1022 #define ZD
1023 #define ZE
1024 #define ZF
1025 #define ZG
1026 #define ZH
1027 #define ZI
1028 #define ZJ
1029 #define ZK
1030 #define ZL
1031 #define ZM
1032 #define ZN
1033 #define ZO
1034 #define ZP
1035 #define ZQ
1036 #define ZR
1037 #define ZS
1038 #define ZT
1039 #define ZU
1040 #define ZV
1041 #define ZW
1042 #define ZX 1
1043 
1044 /*-
1045  * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
1046  * All rights reserved.
1047  *
1048  * Redistribution and use in source and binary forms, with or without
1049  * modification, are permitted provided that the following conditions
1050  * are met:
1051  * 1. Redistributions of source code must retain the above copyright
1052  *    notice, this list of conditions and the following disclaimer.
1053  * 2. Redistributions in binary form must reproduce the above copyright
1054  *    notice, this list of conditions and the following disclaimer in the
1055  *    documentation and/or other materials provided with the distribution.
1056  *
1057  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
1058  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1059  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1060  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
1061  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1062  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1063  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1064  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
1065  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
1066  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
1067  * SUCH DAMAGE.
1068  */
1069 
1070