1C-----------------------------------------------------------------------
2C  Include file for PARSER.  This file must be kept with PARSER.FOR.
3C  It defines some symbolic constants that PARSER and its subsidiary
4C  routines use.
5C.......................................................................
6C Define Token types and values
7C
8      INTEGER    NT_BEG   , NT_STOP  , NT_EOS   ,
9     X           NT_ADDOP , NT_MULOP , NT_EXPOP ,
10     X           NT_OPEN  , NT_CLOSE , NT_COMMA ,
11     X           NT_NUMBER, NT_FUNC  , NT_ERROR , NT_SYMBOL
12C
13      REAL*8     VT_PLUS  , VT_MINUS , VT_SLASH ,
14     X           VT_STAR  , VT_STARS
15C
16      PARAMETER( NT_BEG   = 1000 , NT_STOP  = 1999 , NT_EOS   = 1000 ,
17     X           NT_ADDOP = 1001 , NT_MULOP = 1002 , NT_EXPOP = 1003 ,
18     X           NT_OPEN  = 1004 , NT_CLOSE = 1005 , NT_COMMA = 1006 ,
19     X           NT_NUMBER= 1007 , NT_FUNC  = 1008 , NT_ERROR = 1999 ,
20     X           NT_SYMBOL= 1009 ,
21     X
22     X           VT_PLUS  = 1.D0 , VT_MINUS = 2.D0 , VT_SLASH = 2.D0 ,
23     X           VT_STAR  = 1.D0 , VT_STARS = 1.D0                    )
24C.......................................................................
25C  Define the Nonterminals
26C
27      INTEGER     NN_BEG   , NN_STOP  , NN_END   ,
28     X            NN_E4    , NN_E6    , NN_E8    ,
29     X            NN_E9    , NN_ARGTL
30C
31      PARAMETER ( NN_BEG   = 2000 , NN_STOP  = 2999 , NN_END   = 2000 ,
32     X            NN_E4    = 2001 , NN_E6    = 2002 , NN_E8    = 2003 ,
33     X            NN_E9    = 2004 , NN_ARGTL = 2005                    )
34C.......................................................................
35C  Define the Opcodes
36C
37      INTEGER     NC_BEG   , NC_STOP  , NC_ADD   ,
38     X            NC_SUB   , NC_MUL   , NC_DIV   ,
39     X            NC_POWER , NC_MINUS , NC_FUNC
40C
41      PARAMETER ( NC_BEG   = 3000 , NC_STOP  = 4999 , NC_ADD   = 3001 ,
42     X            NC_SUB   = 3002 , NC_MUL   = 3003 , NC_DIV   = 3004 ,
43     X            NC_POWER = 3005 , NC_MINUS = 3006 , NC_FUNC  = 4000  )
44C.......................................................................
45C  Define Function names, etc.
46C
47      INTEGER     NUM_FUNC
48      PARAMETER ( NUM_FUNC = 123 )
49C
50      CHARACTER*32 C_FUNCNAME(NUM_FUNC+1)
51      INTEGER      N_FUNCARGS(NUM_FUNC)
52C
53      DATA C_FUNCNAME /
54     X 'SIN'  , 'COS'  , 'TAN'  , 'ASIN'  , 'ACOS'  , 'ATAN'  , 'ATAN2',
55     X 'SINH' , 'COSH' , 'TANH' , 'ASINH' , 'ACOSH' , 'ATANH' , 'EXP'  ,
56     X 'LOG'  , 'LOG10', 'ABS'  , 'INT'   , 'SQRT'  , 'MAX'   , 'MIN'  ,
57     X 'AI'   , 'DAI'  , 'I0'   , 'I1'    , 'J0'    , 'J1'    , 'K0'   ,
58     X 'K1'   , 'Y0'   , 'Y1'   , 'BI'    , 'DBI'   , 'ERF'   , 'ERFC' ,
59     X 'GAMMA', 'QG'   , 'QGINV', 'BELL2' , 'RECT'  , 'STEP'  , 'BOOL' ,
60     X 'AND'  , 'OR'   , 'MOFN' , 'ASTEP' , 'SIND'  , 'COSD'  , 'TAND' ,
61     X 'MEDIAN',
62     X 'FICO_T2P' , 'FICO_P2T' , 'FICO_T2Z' ,
63     X 'FITT_T2P' , 'FITT_P2T' , 'FITT_T2Z' ,
64     X 'FIFT_T2P' , 'FIFT_P2T' , 'FIFT_T2Z' ,
65     X 'FIZT_T2P' , 'FIZT_P2T' , 'FIZT_T2Z' ,
66     X 'FICT_T2P' , 'FICT_P2T' , 'FICT_T2Z' ,
67     X 'FIBT_T2P' , 'FIBT_P2T' , 'FIBT_T2Z' ,
68     X 'FIBN_T2P' , 'FIBN_P2T' , 'FIBN_T2Z' ,
69     X 'FIGT_T2P' , 'FIGT_P2T' , 'FIGT_T2Z' ,
70     X 'FIPT_T2P' , 'FIPT_P2T' , 'FIPT_T2Z' ,
71     X
72     X 'ZTONE' , 'LMODE' , 'HMODE' ,
73     X 'GRAN'  , 'URAN'  , 'IRAN'  , 'ERAN' , 'LRAN' ,
74     X
75     X 'ORSTAT', 'TENT'  , 'MAD'   ,
76     X 'ARGMAX', 'ARGNUM',
77     X
78     X 'NOTZERO' , 'ISZERO' , 'EQUALS' , 'ISPOSITIVE' , 'ISNEGATIVE' ,
79     X
80     X 'MEAN' , 'STDEV' , 'SEM' , 'PLEG' ,
81     X
82     X 'CDF2STAT' , 'STAT2CDF' ,
83     X
84     X 'PAIRMAX' , 'PAIRMIN' , 'AMONGST' , 'CBRT' , 'RHDDC2' ,
85     X
86     X 'HRFBK4'  , 'HRFBK5' , 'POSVAL' , 'NOT' , 'MOD' , 'WITHIN',
87     X
88     X 'MINABOVE' , 'MAXBELOW' ,'EXTREME', 'ABSEXTREME',
89     X
90     X 'CHOOSE', 'IFELSE', 'LOGCOSH' , 'ACFWXM' , 'GAMP' , 'GAMQ' ,
91     X
92     X 'ISPRIME' ,
93     X
94     X 'DUMMY' /
95C
96      DATA N_FUNCARGS / 6*1, 2, 12*1, 2*2, 21*1, 3*-1, 2, 3*1, -1,
97     X                 3*4, 3*2, 3*3, 3*1, 3*2, 3*3, 3*3, 3*3, 3*2 ,
98     X   1 , -1,-1 , 2 , 1 , 1 , 1 , 1 , -1 ,1 , -1  ,
99     X  -1,-1, 1,1,2,1,1, -1,-1,-1, 2, 5,5, -1,-1,-1,1,3, 2,2,1,1,2,
100     X  -1, -1,-1, -1, -1, -1, 3 , 1 , 4 , 2,2 , 1 /
101C-----------------------------------------------------------------------
102