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