/*=============================================================================
    Boost.Wave: A Standard compliant C++ preprocessor library
    http://www.boost.org/

    Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
    Software License, Version 1.0. (See accompanying file
    LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    The tests included in this file were initially taken from the mcpp V2.5
    preprocessor validation suite and were modified to fit into the Boost.Wave 
    unit test requirements.
    The original files of the mcpp preprocessor are distributed under the 
    license reproduced at the end of this file.
=============================================================================*/

// Tests translation limits (number of possible macro definitions should be at 
// least 1024).

#define AA
#define AB
#define AC
#define AD
#define AE
#define AF
#define AG
#define AH
#define AI
#define AJ
#define AK
#define AL
#define AM
#define AN
#define AO
#define AP
#define AQ
#define AR
#define AS
#define AT
#define AU
#define AV
#define AW
#define AX
#define AY
#define AZ
#define Aa
#define Ab
#define Ac
#define Ad
#define Ae
#define Af
#define Ag
#define Ah
#define Ai
#define Aj
#define Ak
#define Al
#define Am
#define An
#define BA
#define BB
#define BC
#define BD
#define BE
#define BF
#define BG
#define BH
#define BI
#define BJ
#define BK
#define BL
#define BM
#define BN
#define BO
#define BP
#define BQ
#define BR
#define BS
#define BT
#define BU
#define BV
#define BW
#define BX
#define BY
#define BZ
#define Ba
#define Bb
#define Bc
#define Bd
#define Be
#define Bf
#define Bg
#define Bh
#define Bi
#define Bj
#define Bk
#define Bl
#define Bm
#define Bn
#define CA
#define CB
#define CC
#define CD
#define CE
#define CF
#define CG
#define CH
#define CI
#define CJ
#define CK
#define CL
#define CM
#define CN
#define CO
#define CP
#define CQ
#define CR
#define CS
#define CT
#define CU
#define CV
#define CW
#define CX
#define CY
#define CZ
#define Ca
#define Cb
#define Cc
#define Cd
#define Ce
#define Cf
#define Cg
#define Ch
#define Ci
#define Cj
#define Ck
#define Cl
#define Cm
#define Cn
#define DA
#define DB
#define DC
#define DD
#define DE
#define DF
#define DG
#define DH
#define DI
#define DJ
#define DK
#define DL
#define DM
#define DN
#define DO
#define DP
#define DQ
#define DR
#define DS
#define DT
#define DU
#define DV
#define DW
#define DX
#define DY
#define DZ
#define Da
#define Db
#define Dc
#define Dd
#define De
#define Df
#define Dg
#define Dh
#define Di
#define Dj
#define Dk
#define Dl
#define Dm
#define Dn
#define EA
#define EB
#define EC
#define ED
#define EE
#define EF
#define EG
#define EH
#define EI
#define EJ
#define EK
#define EL
#define EM
#define EN
#define EO
#define EP
#define EQ
#define ER
#define ES
#define ET
#define EU
#define EV
#define EW
#define EX
#define EY
#define EZ
#define Ea
#define Eb
#define Ec
#define Ed
#define Ee
#define Ef
#define Eg
#define Eh
#define Ei
#define Ej
#define Ek
#define El
#define Em
#define En
#define FA
#define FB
#define FC
#define FD
#define FE
#define FF
#define FG
#define FH
#define FI
#define FJ
#define FK
#define FL
#define FM
#define FN
#define FO
#define FP
#define FQ
#define FR
#define FS
#define FT
#define FU
#define FV
#define FW
#define FX
#define FY
#define FZ
#define Fa
#define Fb
#define Fc
#define Fd
#define Fe
#define Ff
#define Fg
#define Fh
#define Fi
#define Fj
#define Fk
#define Fl
#define Fm
#define Fn
#define GA
#define GB
#define GC
#define GD
#define GE
#define GF
#define GG
#define GH
#define GI
#define GJ
#define GK
#define GL
#define GM
#define GN
#define GO
#define GP
#define GQ
#define GR
#define GS
#define GT
#define GU
#define GV
#define GW
#define GX
#define GY
#define GZ
#define Ga
#define Gb
#define Gc
#define Gd
#define Ge
#define Gf
#define Gg
#define Gh
#define Gi
#define Gj
#define Gk
#define Gl
#define Gm
#define Gn
#define HA
#define HB
#define HC
#define HD
#define HE
#define HF
#define HG
#define HH
#define HI
#define HJ
#define HK
#define HL
#define HM
#define HN
#define HO
#define HP
#define HQ
#define HR
#define HS
#define HT
#define HU
#define HV
#define HW
#define HX
#define HY
#define HZ
#define Ha
#define Hb
#define Hc
#define Hd
#define He
#define Hf
#define Hg
#define Hh
#define Hi
#define Hj
#define Hk
#define Hl
#define Hm
#define Hn
#define IA
#define IB
#define IC
#define ID
#define IE
#define IF
#define IG
#define IH
#define II
#define IJ
#define IK
#define IL
#define IM
#define IN
#define IO
#define IP
#define IQ
#define IR
#define IS
#define IT
#define IU
#define IV
#define IW
#define IX
#define IY
#define IZ
#define Ia
#define Ib
#define Ic
#define Id
#define Ie
#define If
#define Ig
#define Ih
#define Ii
#define Ij
#define Ik
#define Il
#define Im
#define In
#define JA
#define JB
#define JC
#define JD
#define JE
#define JF
#define JG
#define JH
#define JI
#define JJ
#define JK
#define JL
#define JM
#define JN
#define JO
#define JP
#define JQ
#define JR
#define JS
#define JT
#define JU
#define JV
#define JW
#define JX
#define JY
#define JZ
#define Ja
#define Jb
#define Jc
#define Jd
#define Je
#define Jf
#define Jg
#define Jh
#define Ji
#define Jj
#define Jk
#define Jl
#define Jm
#define Jn
#define KA
#define KB
#define KC
#define KD
#define KE
#define KF
#define KG
#define KH
#define KI
#define KJ
#define KK
#define KL
#define KM
#define KN
#define KO
#define KP
#define KQ
#define KR
#define KS
#define KT
#define KU
#define KV
#define KW
#define KX
#define KY
#define KZ
#define Ka
#define Kb
#define Kc
#define Kd
#define Ke
#define Kf
#define Kg
#define Kh
#define Ki
#define Kj
#define Kk
#define Kl
#define Km
#define Kn
#define LA
#define LB
#define LC
#define LD
#define LE
#define LF
#define LG
#define LH
#define LI
#define LJ
#define LK
#define LL
#define LM
#define LN
#define LO
#define LP
#define LQ
#define LR
#define LS
#define LT
#define LU
#define LV
#define LW
#define LX
#define LY
#define LZ
#define La
#define Lb
#define Lc
#define Ld
#define Le
#define Lf
#define Lg
#define Lh
#define Li
#define Lj
#define Lk
#define Ll
#define Lm
#define Ln
#define MA
#define MB
#define MC
#define MD
#define ME
#define MF
#define MG
#define MH
#define MI
#define MJ
#define MK
#define ML
#define MM
#define MN
#define MO
#define MP
#define MQ
#define MR
#define MS
#define MT
#define MU
#define MV
#define MW
#define MX
#define MY
#define MZ
#define Ma
#define Mb
#define Mc
#define Md
#define Me
#define Mf
#define Mg
#define Mh
#define Mi
#define Mj
#define Mk
#define Ml
#define Mm
#define Mn
#define NA
#define NB
#define NC
#define ND
#define NE
#define NF
#define NG
#define NH
#define NI
#define NJ
#define NK
#define NL
#define NM
#define NN
#define NO
#define NP
#define NQ
#define NR
#define NS
#define NT
#define NU
#define NV
#define NW
#define NX
#define NY
#define NZ
#define Na
#define Nb
#define Nc
#define Nd
#define Ne
#define Nf
#define Ng
#define Nh
#define Ni
#define Nj
#define Nk
#define Nl
#define Nm
#define Nn
#define OA
#define OB
#define OC
#define OD
#define OE
#define OF
#define OG
#define OH
#define OI
#define OJ
#define OK
#define OL
#define OM
#define ON
#define OO
#define OP
#define OQ
#define OR
#define OS
#define OT
#define OU
#define OV
#define OW
#define OX
#define OY
#define OZ
#define Oa
#define Ob
#define Oc
#define Od
#define Oe
#define Of
#define Og
#define Oh
#define Oi
#define Oj
#define Ok
#define Ol
#define Om
#define On
#define PA
#define PB
#define PC
#define PD
#define PE
#define PF
#define PG
#define PH
#define PI
#define PJ
#define PK
#define PL
#define PM
#define PN
#define PO
#define PP
#define PQ
#define PR
#define PS
#define PT
#define PU
#define PV
#define PW
#define PX
#define PY
#define PZ
#define Pa
#define Pb
#define Pc
#define Pd
#define Pe
#define Pf
#define Pg
#define Ph
#define Pi
#define Pj
#define Pk
#define Pl
#define Pm
#define Pn
#define QA
#define QB
#define QC
#define QD
#define QE
#define QF
#define QG
#define QH
#define QI
#define QJ
#define QK
#define QL
#define QM
#define QN
#define QO
#define QP
#define QQ
#define QR
#define QS
#define QT
#define QU
#define QV
#define QW
#define QX
#define QY
#define QZ
#define Qa
#define Qb
#define Qc
#define Qd
#define Qe
#define Qf
#define Qg
#define Qh
#define Qi
#define Qj
#define Qk
#define Ql
#define Qm
#define Qn
#define RA
#define RB
#define RC
#define RD
#define RE
#define RF
#define RG
#define RH
#define RI
#define RJ
#define RK
#define RL
#define RM
#define RN
#define RO
#define RP
#define RQ
#define RR
#define RS
#define RT
#define RU
#define RV
#define RW
#define RX
#define RY
#define RZ
#define Ra
#define Rb
#define Rc
#define Rd
#define Re
#define Rf
#define Rg
#define Rh
#define Ri
#define Rj
#define Rk
#define Rl
#define Rm
#define Rn
#define SA
#define SB
#define SC
#define SD
#define SE
#define SF
#define SG
#define SH
#define SI
#define SJ
#define SK
#define SL
#define SM
#define SN
#define SO
#define SP
#define SQ
#define SR
#define SS
#define ST
#define SU
#define SV
#define SW
#define SX
#define SY
#define SZ
#define Sa
#define Sb
#define Sc
#define Sd
#define Se
#define Sf
#define Sg
#define Sh
#define Si
#define Sj
#define Sk
#define Sl
#define Sm
#define Sn
#define TA
#define TB
#define TC
#define TD
#define TE
#define TF
#define TG
#define TH
#define TI
#define TJ
#define TK
#define TL
#define TM
#define TN
#define TO
#define TP
#define TQ
#define TR
#define TS
#define TT
#define TU
#define TV
#define TW
#define TX
#define TY
#define TZ
#define Ta
#define Tb
#define Tc
#define Td
#define Te
#define Tf
#define Tg
#define Th
#define Ti
#define Tj
#define Tk
#define Tl
#define Tm
#define Tn
#define UA
#define UB
#define UC
#define UD
#define UE
#define UF
#define UG
#define UH
#define UI
#define UJ
#define UK
#define UL
#define UM
#define UN
#define UO
#define UP
#define UQ
#define UR
#define US
#define UT
#define UU
#define UV
#define UW
#define UX
#define UY
#define UZ
#define Ua
#define Ub
#define Uc
#define Ud
#define Ue
#define Uf
#define Ug
#define Uh
#define Ui
#define Uj
#define Uk
#define Ul
#define Um
#define Un
#define VA
#define VB
#define VC
#define VD
#define VE
#define VF
#define VG
#define VH
#define VI
#define VJ
#define VK
#define VL
#define VM
#define VN
#define VO
#define VP
#define VQ
#define VR
#define VS
#define VT
#define VU
#define VV
#define VW
#define VX
#define VY
#define VZ
#define Va
#define Vb
#define Vc
#define Vd
#define Ve
#define Vf
#define Vg
#define Vh
#define Vi
#define Vj
#define Vk
#define Vl
#define Vm
#define Vn
#define WA
#define WB
#define WC
#define WD
#define WE
#define WF
#define WG
#define WH
#define WI
#define WJ
#define WK
#define WL
#define WM
#define WN
#define WO
#define WP
#define WQ
#define WR
#define WS
#define WT
#define WU
#define WV
#define WW
#define WX
#define WY
#define WZ
#define Wa
#define Wb
#define Wc
#define Wd
#define We
#define Wf
#define Wg
#define Wh
#define Wi
#define Wj
#define Wk
#define Wl
#define Wm
#define Wn
#define XA
#define XB
#define XC
#define XD
#define XE
#define XF
#define XG
#define XH
#define XI
#define XJ
#define XK
#define XL
#define XM
#define XN
#define XO
#define XP
#define XQ
#define XR
#define XS
#define XT
#define XU
#define XV
#define XW
#define XX
#define XY
#define XZ
#define Xa
#define Xb
#define Xc
#define Xd
#define Xe
#define Xf
#define Xg
#define Xh
#define Xi
#define Xj
#define Xk
#define Xl
#define Xm
#define Xn
#define YA
#define YB
#define YC
#define YD
#define YE
#define YF
#define YG
#define YH
#define YI
#define YJ
#define YK
#define YL
#define YM
#define YN
#define YO
#define YP
#define YQ
#define YR
#define YS
#define YT
#define YU
#define YV
#define YW
#define YX
#define YY
#define YZ
#define Ya
#define Yb
#define Yc
#define Yd
#define Ye
#define Yf
#define Yg
#define Yh
#define Yi
#define Yj
#define Yk
#define Yl
#define Ym
#define Yn
#define ZA
#define ZB
#define ZC
#define ZD
#define ZE
#define ZF
#define ZG
#define ZH
#define ZI
#define ZJ
#define ZK
#define ZL
#define ZM
#define ZN
#define ZO
#define ZP
#define ZQ
#define ZR
#define ZS
#define ZT
#define ZU
#define ZV
#define ZW
#define ZX 1

/*-
 * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

