00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef _CRAY_FORMAT_H
00037 #define _CRAY_FORMAT_H
00038
00039 #ifndef NULL
00040 # define NULL 0
00041 #endif
00042
00043 #ifndef FALSE
00044 # define FALSE 0
00045 #endif
00046
00047 #ifndef TRUE
00048 # define TRUE 1
00049 #endif
00050
00051
00052
00053
00054
00055
00056
00057 #define PARSER_LEVEL 3
00058
00059
00060
00061 #define FIRST_DATA_ED 1
00062 #define A_ED 1
00063 #define B_ED 2
00064 #define D_ED 3
00065 #define E_ED 4
00066 #define EN_ED 5
00067 #define ES_ED 6
00068 #define F_ED 7
00069 #define G_ED 8
00070 #define I_ED 9
00071 #define L_ED 10
00072 #define O_ED 11
00073 #define R_ED 12
00074 #define Z_ED 13
00075 #define Q_ED 14
00076 #define LAST_DATA_ED 14
00077
00078 #define FIRST_CNTL_ED 20
00079 #define SLASH_ED 20
00080 #define P_ED 21
00081 #define STRING_ED 22
00082 #define BN_ED 23
00083 #define BZ_ED 24
00084 #define COLON_ED 25
00085 #define S_ED 26
00086 #define SP_ED 27
00087 #define SS_ED 28
00088 #define TL_ED 29
00089 #define TR_ED 30
00090 #define T_ED 31
00091 #define DOLLAR_ED 32
00092 #define LAST_CNTL_ED 32
00093
00094 #define FIRST_OP 40
00095 #define REPEAT_OP 40
00096 #define ENDREP_OP 41
00097 #define REVERT_OP 42
00098 #define LAST_OP 42
00099
00100
00101
00102 #ifdef _OLD_ERROR_NUMBERS
00103
00104 #define END_OF_MESSAGES 0
00105 #define TRAILING_CHARS 1
00106 #define FIELD_TOO_SMALL 2
00107
00108 #define FIRST_NON_ANSI_MESSAGE 3
00109 #define ANSI_EMPTY_PAREN_MSG 3
00110 #define ANSI_COMMA_REQ 4
00111 #define COMMA_NON_ANSI 5
00112 #define REP_SLASH_NON_ANSI 6
00113 #define NON_ANSI_EDIT_DESCRIPTOR 7
00114 #define MINUS_X_NON_ANSI 8
00115 #define E_WITH_D_NON_ANSI 9
00116 #define H_IS_OBSOLETE_IN_F90 10
00117 #define LAST_NON_ANSI_MESSAGE 10
00118
00119 #define FIRST_FATAL_MESSAGE 11
00120 #define EXPECTING_LEFT_PAREN 11
00121 #define EXPECTING_RIGHT_PAREN 12
00122 #define EXPECTING_INTEGER 13
00123 #define EXPECTING_PERIOD 14
00124 #define EXPECTING_P_OR_X 15
00125 #define INVALID_REP_COUNT 16
00126 #define ZERO_REP_COUNT 17
00127 #define FIELD_WIDTH_ZERO 18
00128 #define FIELD_TOO_LARGE 19
00129 #define ZERO_OR_NO_HOLLERITH_CNT 20
00130 #define UNKNOWN_EDIT_DESCRIPTOR 21
00131 #define NONTERMINATED_LITERAL 22
00132 #define UNABLE_TO_MALLOC_MEMORY 23
00133
00134 #else
00135
00136 #define END_OF_MESSAGES 0
00137 #define FIRST_WARNING_MESSAGE 1
00138 #define TRAILING_CHARS 1
00139
00140 #define FIRST_NON_ANSI_MESSAGE 10
00141 #define ANSI_EMPTY_PAREN_MSG 10
00142 #define ANSI_COMMA_REQ 11
00143 #define COMMA_NON_ANSI 12
00144 #define REP_SLASH_NON_ANSI 13
00145 #define NON_ANSI_EDIT_DESCRIPTOR 14
00146 #define MINUS_X_NON_ANSI 15
00147 #define E_WITH_D_NON_ANSI 16
00148 #define H_IS_OBSOLETE_IN_F90 17
00149 #define NON_ANSI_NULL_DESCRIPTOR 18
00150 #define ZERO_WIDTH_NON_ANSI 19
00151 #define MISSING_WIDTH_NON_ANSI 20
00152 #define LAST_NON_ANSI_MESSAGE 20
00153
00154 #define FIRST_FATAL_MESSAGE 30
00155 #define EXPECTING_LEFT_PAREN 30
00156 #define EXPECTING_RIGHT_PAREN 31
00157 #define EXPECTING_INTEGER 32
00158 #define EXPECTING_PERIOD 33
00159 #define EXPECTING_P_OR_X 34
00160 #define INVALID_REP_COUNT 35
00161 #define ZERO_REP_COUNT 36
00162 #define FIELD_WIDTH_ZERO 37
00163 #define FIELD_TOO_LARGE 38
00164 #define ZERO_OR_NO_HOLLERITH_CNT 39
00165 #define UNKNOWN_EDIT_DESCRIPTOR 40
00166 #define NONTERMINATED_LITERAL 41
00167 #define UNABLE_TO_MALLOC_MEMORY 42
00168
00169 #endif
00170
00171 #define DW_IS_NON_ANSI E_WITH_D_NON_ANSI
00172
00173
00174
00175 #define FALL ~00
00176 #define F77 001
00177 #define F90 002
00178 #define F95 004
00179
00180
00181
00182 #define LIB_CALL 0
00183 #define COMPILER_CALL_ANSI 1
00184 #define COMPILER_CALL_NO_ANSI 2
00185 #define COMPILER_CALL_ANSI_77 3
00186 #define COMPILER_CALL_ANSI_90 4
00187 #define COMPILER_CALL_ANSI_95 5
00188 #define MAX_CALL_FLAG 5
00189
00190 #define MAX_EXPONENT 077
00191 #define MAX_FIELD_WIDTH 077777777
00192 #define MAX_DECIMAL_FIELD 077777777
00193 #define MAX_REP_COUNT 017777777777
00194
00195
00196 struct msg_entry {
00197 unsigned int msg_number : 7;
00198 unsigned int reserved : 9;
00199 unsigned int msg_column : 24;
00200 unsigned int desc_column : 24;
00201 };
00202
00203 typedef struct msg_entry msg_type;
00204
00205
00206
00207
00208
00209
00210
00211
00212 struct fmt_entry {
00213 unsigned int op_code : 7;
00214 unsigned int default_digits : 1;
00215 unsigned int digits_field : 24;
00216 unsigned int exponent : 6;
00217 unsigned int reserved2 : 2;
00218 unsigned int field_width : 24;
00219
00220 unsigned int rgcdedf : 1;
00221 unsigned int reserved3 : 15;
00222 unsigned int offset : 16;
00223 signed int rep_count : 32;
00224 };
00225
00226 typedef struct fmt_entry fmt_type;
00227
00228 #define FMT_ENTRY_BYTE_SIZE sizeof(fmt_type)
00229
00230
00231
00232
00233
00234
00235 #define FMT_ENTRY_WORD_SIZE (sizeof(fmt_type)/sizeof(long))
00236
00237
00238
00239 typedef void _Error_function(const int _Msg_num,
00240 const int _Error_offset,
00241 const int _Edit_desc_offset);
00242
00243 extern fmt_type *
00244 _parsfmt(
00245 _Error_function **_Msg_rtn,
00246 char *_Format_str,
00247 long int _Routine_caller,
00248 long int *_Fmt_str_len,
00249 msg_type *_Lib_err_msg
00250 );
00251
00252 extern fmt_type *
00253 _fmt_parse(
00254 _Error_function **_Msg_rtn,
00255 char *_Format_str,
00256 long int _Routine_caller,
00257 long int *_Fmt_str_len,
00258 msg_type *_Lib_err_msg
00259 );
00260
00261 #endif