C---------------------------------------------------------------------- C- C- Created 9-AUG-1990 MICHIGAN STATE UNIVERSITY, TRIGGER CONTROL SOFTWARE C- C---------------------------------------------------------------------- C- C- This file defines the constants used in parsing the lookup C- description files. C- Most of the constants have a prefix. C- T token C- C class C- I index C- M member (of a class) C- MES message C- C---------------------------------------------------------------------- C C The following PARAMETER declarations assign numeric values to the C tokens used by the parser. C INTEGER T_SECTION ! 'section' INTEGER T_ELECT_NOISE_CUT_FACT INTEGER T_DUMMY ! returns for sections to skip INTEGER T_END_SECTION ! end of section marker INTEGER T_END_OF_LINE INTEGER T_END_OF_FILE INTEGER T_NUMBER ! any real number INTEGER T_CHANNEL INTEGER T_EM, T_HD INTEGER T_AND INTEGER T_LOOKUP INTEGER T_WITH INTEGER T_END_WITH INTEGER T_TOT INTEGER T_PX, T_PY INTEGER T_ET, T_L2 INTEGER T_EM_PROM INTEGER T_HD_PROM INTEGER T_PX_PROM INTEGER T_PY_PROM INTEGER T_LIST, T_END_LIST INTEGER T_ASSIGN INTEGER T_SIGN_ETA INTEGER T_PLUS, T_MINUS INTEGER T_PHI, T_MAGN_ETA INTEGER T_PAGE, T_INDEX, T_BIN, T_PROM INTEGER T_TO INTEGER T_LEVEL_0_BINS_LOW INTEGER T_LEVEL_0_BINS_HIGH INTEGER T_LOOKUP_QUANTITIES INTEGER T_PAGE_VS_BIN INTEGER T_PAGE_NOMINAL_CENTER INTEGER T_GLOBAL_ADC_SCALE INTEGER T_GLOBAL_ENERGY_SCALE INTEGER T_TOWER_GEOMETRY_R INTEGER T_TOWER_GEOMETRY_Z INTEGER T_TOWER_GEOMETRY_PHI INTEGER T_ANALOG_INPUT_SCALING INTEGER T_INPUT_ENERGY_ERROR INTEGER T_DOWNLOADED_BYTE INTEGER T_ADC_ZERESP INTEGER T_ELECT_NOISE INTEGER T_LOOKUP_ZERESP INTEGER T_ENERGY_SCALE_SHIFT INTEGER T_FINAL_FITTING INTEGER T_TRANSV_ENERGY_CUT INTEGER T_PROM_OUTPUT_CUT INTEGER T_PROM_TRANSFER_COEFF INTEGER T_FIRST_LOOKUP_TYPE INTEGER T_SECOND_LOOKUP_TYPE INTEGER T_DEPOSITED_ENERGY INTEGER T_TRANSVERSE_ENERGY C INTEGER MAX_NUM_TOKENS ! the number of tokens C PARAMETER ( T_SECTION = 1 ) PARAMETER ( T_ELECT_NOISE_CUT_FACT = 2 ) PARAMETER ( T_DUMMY = 3 ) PARAMETER ( T_END_SECTION = 4 ) PARAMETER ( T_END_OF_LINE = 5 ) PARAMETER ( T_END_OF_FILE = 6 ) PARAMETER ( T_NUMBER = 7 ) PARAMETER ( T_CHANNEL = 8 ) PARAMETER ( T_EM = 9 ) PARAMETER ( T_HD = 10 ) PARAMETER ( T_AND = 11 ) PARAMETER ( T_LOOKUP = 12 ) PARAMETER ( T_WITH = 13 ) PARAMETER ( T_END_WITH = 14 ) PARAMETER ( T_TOT = 15 ) PARAMETER ( T_PX = 16 ) PARAMETER ( T_PY = 17 ) PARAMETER ( T_ET = 18 ) PARAMETER ( T_L2 = 19 ) PARAMETER ( T_EM_PROM = 20 ) PARAMETER ( T_HD_PROM = 21 ) PARAMETER ( T_PX_PROM = 22 ) PARAMETER ( T_PY_PROM = 23 ) PARAMETER ( T_LIST = 24 ) PARAMETER ( T_END_LIST = 25 ) PARAMETER ( T_ASSIGN = 26 ) PARAMETER ( T_SIGN_ETA = 27 ) PARAMETER ( T_PLUS = 28 ) PARAMETER ( T_MINUS = 29 ) PARAMETER ( T_PHI = 30 ) PARAMETER ( T_MAGN_ETA = 31 ) PARAMETER ( T_PAGE = 32 ) PARAMETER ( T_INDEX = 33 ) PARAMETER ( T_BIN = 34 ) PARAMETER ( T_PROM = 35 ) PARAMETER ( T_TO = 36 ) PARAMETER ( T_LEVEL_0_BINS_LOW = 37 ) PARAMETER ( T_LEVEL_0_BINS_HIGH = 38 ) PARAMETER ( T_LOOKUP_QUANTITIES = 39 ) PARAMETER ( T_PAGE_VS_BIN = 40 ) PARAMETER ( T_PAGE_NOMINAL_CENTER = 41 ) PARAMETER ( T_GLOBAL_ADC_SCALE = 42 ) PARAMETER ( T_GLOBAL_ENERGY_SCALE = 43 ) PARAMETER ( T_TOWER_GEOMETRY_R = 44 ) PARAMETER ( T_TOWER_GEOMETRY_Z = 45 ) PARAMETER ( T_TOWER_GEOMETRY_PHI = 46 ) PARAMETER ( T_ANALOG_INPUT_SCALING = 47 ) PARAMETER ( T_INPUT_ENERGY_ERROR = 48 ) PARAMETER ( T_DOWNLOADED_BYTE = 49 ) PARAMETER ( T_ADC_ZERESP = 50 ) PARAMETER ( T_ELECT_NOISE = 51 ) PARAMETER ( T_LOOKUP_ZERESP = 52 ) PARAMETER ( T_ENERGY_SCALE_SHIFT = 53 ) PARAMETER ( T_FINAL_FITTING = 54 ) PARAMETER ( T_TRANSV_ENERGY_CUT = 55 ) PARAMETER ( T_PROM_TRANSFER_COEFF = 56 ) PARAMETER ( T_FIRST_LOOKUP_TYPE = 57 ) PARAMETER ( T_SECOND_LOOKUP_TYPE = 58 ) PARAMETER ( T_DEPOSITED_ENERGY = 59 ) PARAMETER ( T_TRANSVERSE_ENERGY = 60 ) PARAMETER ( T_PROM_OUTPUT_CUT = 61 ) C C the following number must be changed when the number of tokens defined C above changes C PARAMETER ( MAX_NUM_TOKENS = 61 ) C C---------------------------------------------------------------------- C C The following PARAMETER declarations assign numeric values to the C classes of tokens used by the parser. C INTEGER C_SECTION, & C_LOOKUP, & C_CHANNEL, & C_VARIABLE, & C_AND_TO_NL, & C_PROM, & C_AND_NL, & C_SIGN, & C_SECTION_EOF, & C_BODY, ! means body of section & C_VARIABLE_NL, & C_ENUMERATED, & C_NONE C INTEGER MAX_NUM_CLASSES C PARAMETER ( C_SECTION = 1, & C_LOOKUP = 2, & C_CHANNEL = 3, & C_VARIABLE = 4, & C_PROM = 5, & C_AND_TO_NL = 6, & C_AND_NL = 7, & C_SIGN = 8, & C_SECTION_EOF = 9, & C_BODY = 10, & C_VARIABLE_NL = 11, & C_ENUMERATED = 12, & C_NONE = 13 ) C PARAMETER ( MAX_NUM_CLASSES = 13 ) C C---------------------------------------------------------------------- C C The following PARAMETER declarations assign numeric values to the C token checking flags used by check_token. C INTEGER NO_CHECK, & CHECK_TOKEN, & CHECK_CLASS, & IGNORE_EOL C PARAMETER ( NO_CHECK = 0, & CHECK_TOKEN = 1, & CHECK_CLASS = 2, & IGNORE_EOL = 4 ) C INTEGER MAX_NUM_VARIABLES C PARAMETER ( MAX_NUM_VARIABLES = 6 ) C INTEGER MAX_NUM_DIMENSIONS C PARAMETER ( MAX_NUM_DIMENSIONS = 5 ) C C---------------------------------------------------------------------- C C The global error status values C INTEGER ERROR_PROGRAM INTEGER ERROR_READING INTEGER ERROR_DERIVING INTEGER ERROR_ANALYSIS INTEGER ERROR_NONE C PARAMETER (ERROR_NONE = 0) PARAMETER (ERROR_ANALYSIS = 1) PARAMETER (ERROR_DERIVING = 2) PARAMETER (ERROR_READING = 3) PARAMETER (ERROR_PROGRAM = 4) C C C---------------------------------------------------------------------- C C Each of the following parameters describes a message type used by the C MESSAGE_OUT() routine. Each has a 4 digit value. C digit #1-> the error value associated with that message C digit #2-> code for the set of parameters used by that message C MES_MESSAGE Print just the message string C MES_SECTION Print the section name and line number in addition to C the message string. If the message index given is 0, C don't print a section name. C MES_SECTION_STRING Print the section name, line number, and the secondary C string in addition to the message string. If the section C index given is 0, don't print a section name. C MES_STRING Print just the secondary string C digits #3, #4-> a code (1-99) giving the message string to use. C INTEGER MES_MESSAGE INTEGER MES_SECTION INTEGER MES_SECTION_STRING INTEGER MES_STRING INTEGER MES_ER_NONE INTEGER MES_ER_ANALYSIS INTEGER MES_ER_DERIVING INTEGER MES_ER_READING INTEGER MES_ER_PROGRAM INTEGER MES_EMPTY_ITEM INTEGER MES_MISSING_ITEM INTEGER MES_PASS_THROUGH INTEGER MES_UNDEFINED_SPECIFIED INTEGER MES_ANALYSIS_GENERAL INTEGER MES_OUT_RANGE INTEGER MES_NOT_CONTIG INTEGER MES_NOT_SYMMETRIC INTEGER MES_HD_SMALL INTEGER MES_TOT_OUTSIDE INTEGER MES_NOT_CONSTANT_ETA INTEGER MES_NOT_DECREASING INTEGER MES_NOT_INCREASING INTEGER MES_NOT_CONSTANT_PHI INTEGER MES_NOT_TOLERANCE INTEGER MES_SHOULD_ZERO INTEGER MES_SHOULD_NOTZERO INTEGER MES_SHOULD_ZERO_AZR INTEGER MES_OPEN_FAILED INTEGER MES_READ_FAILED INTEGER MES_EXPECTED_NUMBER INTEGER MES_INVALID_INTEGER INTEGER MES_EXPECT_ANTOEN INTEGER MES_EXPECT_ANEN INTEGER MES_EXPECT_SIGN INTEGER MES_INVALID_RANGE INTEGER MES_EXPECT_TO INTEGER MES_EXPECT_EMHDTOT INTEGER MES_EXPECT_ETL2 INTEGER MES_EXPECT_XXPROM INTEGER MES_NO_WITH INTEGER MES_EMPTY_WITH INTEGER MES_NO_ENDWITH INTEGER MES_EMPTY_SECTION INTEGER MES_EXPECT_EOL INTEGER MES_PROG_TRANSRANGE INTEGER MES_LIST_SPECALL INTEGER MES_LIST_NOTSPEC INTEGER MES_EXPECT_VAREN INTEGER MES_NOT_VARVALID INTEGER MES_VARSPEC INTEGER MES_PROG_PARREMVAR INTEGER MES_PROG_BUILDSS INTEGER MES_MANY_VAR INTEGER MES_EXPECT_VAR INTEGER MES_CHANNEL_LOOKUP INTEGER MES_CHANNEL_TOT INTEGER MES_PROG_PARSEWITH INTEGER MES_PROG_PUSH_VAR INTEGER MES_PROG_PULL_VAR INTEGER MES_EXPECT_ENUM INTEGER MES_EXPECT_END_LIST INTEGER MES_EXPECT_BODY INTEGER MES_EXPECT_SECTION INTEGER MES_EXPECT_SECNAME INTEGER MES_PROG_PARSE_SECTION INTEGER MES_NOT_VARSPEC INTEGER MES_REDEFINED INTEGER MES_PROG_DISPATCH INTEGER MES_GLOBAL_SCALE_ZERO C INTEGER MAX_NUM_MESSAGES C PARAMETER ( MES_MESSAGE = 0 ) PARAMETER ( MES_SECTION = 100 ) PARAMETER ( MES_SECTION_STRING = 200 ) PARAMETER ( MES_STRING = 300 ) PARAMETER ( MES_ER_NONE = 1000 * ERROR_NONE) PARAMETER ( MES_ER_ANALYSIS = 1000 * ERROR_ANALYSIS ) PARAMETER ( MES_ER_DERIVING = 1000 * ERROR_DERIVING ) PARAMETER ( MES_ER_READING = 1000 * ERROR_READING ) PARAMETER ( MES_ER_PROGRAM = 1000 * ERROR_PROGRAM ) PARAMETER ( MES_EMPTY_ITEM = 1 + MES_SECTION & + MES_ER_ANALYSIS ) PARAMETER ( MES_MISSING_ITEM = 2 + MES_SECTION + MES_ER_ANALYSIS ) PARAMETER ( MES_PASS_THROUGH = 3 + MES_STRING + MES_ER_NONE ) PARAMETER ( MES_UNDEFINED_SPECIFIED = 4 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_ANALYSIS_GENERAL = 5 + MES_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_OUT_RANGE = 6 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_NOT_CONTIG = 7 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_NOT_SYMMETRIC = 8 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_HD_SMALL = 9 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_TOT_OUTSIDE = 10 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_NOT_CONSTANT_ETA = 11 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_NOT_DECREASING = 12 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_NOT_INCREASING = 13 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_NOT_CONSTANT_PHI = 14 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_NOT_TOLERANCE = 15 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_SHOULD_ZERO = 16 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_SHOULD_NOTZERO = 17 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_SHOULD_ZERO_AZR = 18 + MES_SECTION_STRING & + MES_ER_ANALYSIS ) PARAMETER ( MES_OPEN_FAILED = 19 + MES_MESSAGE & + MES_ER_READING ) PARAMETER ( MES_READ_FAILED = 20 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_EXPECTED_NUMBER = 21 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_INVALID_INTEGER = 22 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_ANTOEN = 23 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_ANEN = 24 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_SIGN = 25 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_INVALID_RANGE = 26 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_TO = 27 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_EMHDTOT = 28 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_ETL2 = 29 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_XXPROM = 30 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_NO_WITH = 31 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_EMPTY_WITH = 32 + MES_SECTION & + MES_ER_NONE ) PARAMETER ( MES_NO_ENDWITH = 33 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_EMPTY_SECTION = 34 + MES_SECTION & + MES_ER_NONE ) PARAMETER ( MES_EXPECT_EOL = 35 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_PROG_TRANSRANGE = 36 + MES_SECTION & + MES_ER_PROGRAM ) PARAMETER ( MES_LIST_SPECALL = 37 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_LIST_NOTSPEC = 38 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_EXPECT_VAREN = 39 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_NOT_VARVALID = 40 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_VARSPEC = 41 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_PROG_PARREMVAR = 42 + MES_SECTION & + MES_ER_PROGRAM ) PARAMETER ( MES_PROG_BUILDSS = 43 + MES_SECTION & + MES_ER_PROGRAM ) PARAMETER ( MES_MANY_VAR = 44 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_EXPECT_VAR = 45 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_CHANNEL_LOOKUP = 46 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_CHANNEL_TOT = 47 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_PROG_PARSEWITH = 48 + MES_SECTION & + MES_ER_PROGRAM ) PARAMETER ( MES_PROG_PUSH_VAR = 49 + MES_SECTION & + MES_ER_PROGRAM ) PARAMETER ( MES_PROG_PULL_VAR = 50 + MES_SECTION & + MES_ER_PROGRAM ) PARAMETER ( MES_EXPECT_ENUM = 51 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_END_LIST = 52 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_BODY = 53 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_PROG_PARSE_SECTION = 54 + MES_SECTION & + MES_ER_PROGRAM ) PARAMETER ( MES_NOT_VARSPEC = 55 + MES_SECTION & + MES_ER_READING ) PARAMETER ( MES_REDEFINED = 56 + MES_SECTION & + MES_ER_NONE ) PARAMETER ( MES_EXPECT_SECTION = 57 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_EXPECT_SECNAME = 58 + MES_SECTION_STRING & + MES_ER_READING ) PARAMETER ( MES_PROG_DISPATCH = 59 + MES_SECTION & + MES_ER_PROGRAM ) PARAMETER ( MES_GLOBAL_SCALE_ZERO = 60 + MES_SECTION & + MES_ER_DERIVING ) C PARAMETER ( MAX_NUM_MESSAGES = 60 ) C C---------------------------------------------------------------------- C C Indicies into WIDTHS for each section C C INTEGER I_L0L_INDEX INTEGER I_L0H_INDEX INTEGER I_LUQ_INDEX INTEGER I_PVB_INDEX INTEGER I_PZN_INDEX INTEGER I_GAC_INDEX INTEGER I_GEC_INDEX INTEGER I_ENC_INDEX INTEGER I_TRN_INDEX INTEGER I_TZN_INDEX INTEGER I_TPN_INDEX INTEGER I_AIS_INDEX INTEGER I_IEE_INDEX INTEGER I_DAC_INDEX INTEGER I_AZR_INDEX INTEGER I_ELN_INDEX INTEGER I_LZR_INDEX INTEGER I_ESS_INDEX INTEGER I_FNF_INDEX INTEGER I_TEC_INDEX INTEGER I_PRC_INDEX INTEGER I_PTC_INDEX INTEGER I_FLT_INDEX INTEGER I_SLT_INDEX C INTEGER MAX_NUM_SECTIONS C PARAMETER ( I_L0L_INDEX = 1 ) PARAMETER ( I_L0H_INDEX = 2 ) PARAMETER ( I_LUQ_INDEX = 3 ) PARAMETER ( I_PVB_INDEX = 4 ) PARAMETER ( I_PZN_INDEX = 5 ) PARAMETER ( I_GAC_INDEX = 6 ) PARAMETER ( I_GEC_INDEX = 7 ) PARAMETER ( I_ENC_INDEX = 8 ) PARAMETER ( I_TRN_INDEX = 9 ) PARAMETER ( I_TZN_INDEX = 10 ) PARAMETER ( I_TPN_INDEX = 11 ) PARAMETER ( I_AIS_INDEX = 12 ) PARAMETER ( I_IEE_INDEX = 13 ) PARAMETER ( I_DAC_INDEX = 14 ) PARAMETER ( I_AZR_INDEX = 15 ) PARAMETER ( I_ELN_INDEX = 16 ) PARAMETER ( I_LZR_INDEX = 17 ) PARAMETER ( I_ESS_INDEX = 18 ) PARAMETER ( I_FNF_INDEX = 19 ) PARAMETER ( I_TEC_INDEX = 20 ) PARAMETER ( I_PTC_INDEX = 21 ) PARAMETER ( I_FLT_INDEX = 22 ) PARAMETER ( I_SLT_INDEX = 23 ) PARAMETER ( I_PRC_INDEX = 24 ) C PARAMETER ( MAX_NUM_SECTIONS = 24 ) C C---------------------------------------------------------------------- C C The data type of the item for each section. DATA_INTEGER if the item C is of type C INTEGER DATA_INTEGER INTEGER DATA_REAL INTEGER DATA_ENUMERATED_LOOKUP PARAMETER ( DATA_INTEGER = 1) PARAMETER ( DATA_REAL = 2) PARAMETER ( DATA_ENUMERATED_LOOKUP = 3 ) INTEGER DATA_TYPE(1:MAX_NUM_SECTIONS) C C---------------------------------------------------------------------- C C Parameters to identify the various LOOKUP types C INTEGER ET_LOOKUP INTEGER L2_LOOKUP INTEGER PX_LOOKUP INTEGER PY_LOOKUP PARAMETER ( ET_LOOKUP = 1 ) PARAMETER ( L2_LOOKUP = 2 ) PARAMETER ( PX_LOOKUP = 3 ) PARAMETER ( PY_LOOKUP = 4 ) C C---------------------------------------------------------------------- C C Parameters used by the variable stack manipulation code C INTEGER STACK_PTR INTEGER STACK_LIST C PARAMETER ( STACK_PTR = 8, STACK_LIST = 7 ) C C---------------------------------------------------------------------- C C Values used in diagnostics C INTEGER MIN_INTEGER PARAMETER ( MIN_INTEGER = -2147483648 ) C REAL MIN_REAL PARAMETER ( MIN_REAL = -1.7E38 ) C C----------------------------------------------------------------------