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
00037
00038
00039
00040
00041
00042
00043
00044 char *pgm_unit_str[] = {"EXTERNAL",
00045 "ERROR",
00046 "ERROR",
00047 "FUNCTION",
00048 "SUBROUTINE",
00049 "PROGRAM",
00050 "BLOCKDATA",
00051 "MODULE"};
00052
00053
00054
00063
00064
00065 void (*stmt_semantics[]) () = {
00066 illegal_stmt_type,
00067
00068 no_semantics_routine,
00069 no_semantics_routine,
00070 no_semantics_routine,
00071 no_semantics_routine,
00072 no_semantics_routine,
00073 data_stmt_semantics,
00074 no_semantics_routine,
00075 no_semantics_routine,
00076 directive_stmt_semantics,
00077 no_semantics_routine,
00078 no_semantics_routine,
00079 no_semantics_routine,
00080 no_semantics_routine,
00081 no_semantics_routine,
00082 no_semantics_routine,
00083 no_semantics_routine,
00084 no_semantics_routine,
00085 no_semantics_routine,
00086 no_semantics_routine,
00087 no_semantics_routine,
00088 no_semantics_routine,
00089 no_semantics_routine,
00090 no_semantics_routine,
00091 no_semantics_routine,
00092 no_semantics_routine,
00093 no_semantics_routine,
00094 no_semantics_routine,
00095 no_semantics_routine,
00096 no_semantics_routine,
00097 no_semantics_routine,
00098
00099 no_semantics_routine,
00100
00101 blockdata_stmt_semantics,
00102 no_semantics_routine,
00103 function_stmt_semantics,
00104 module_stmt_semantics,
00105 program_stmt_semantics,
00106 no_semantics_routine,
00107 no_semantics_routine,
00108 subroutine_stmt_semantics,
00109
00110 no_semantics_routine,
00111 no_semantics_routine,
00112 end_function_semantics,
00113
00114 #ifdef _HIGH_LEVEL_IF_FORM
00115 no_semantics_routine,
00116 #else
00117 end_if_semantics,
00118 #endif
00119 no_semantics_routine,
00120 no_semantics_routine,
00121 end_stmt_semantics,
00122 end_select_semantics,
00123 end_stmt_semantics,
00124 end_subroutine_semantics,
00125 no_semantics_routine,
00126 end_where_semantics,
00127
00128 allocate_stmt_semantics,
00129 arith_if_stmt_semantics,
00130 assign_stmt_semantics,
00131 assignment_stmt_semantics,
00132 backspace_stmt_semantics,
00133 buffer_stmt_semantics,
00134 call_stmt_semantics,
00135 case_stmt_semantics,
00136 close_stmt_semantics,
00137 continue_stmt_semantics,
00138 no_semantics_routine,
00139 deallocate_stmt_semantics,
00140 encode_decode_stmt_semantics,
00141 do_stmt_semantics,
00142 do_stmt_semantics,
00143 do_stmt_semantics,
00144 else_stmt_semantics,
00145 else_stmt_semantics,
00146 else_stmt_semantics,
00147 encode_decode_stmt_semantics,
00148 endfile_stmt_semantics,
00149 entry_stmt_semantics,
00150 no_semantics_routine,
00151 goto_stmt_semantics,
00152 if_stmt_semantics,
00153 if_stmt_semantics,
00154 inquire_stmt_semantics,
00155 nullify_stmt_semantics,
00156 open_stmt_semantics,
00157 outmoded_if_stmt_semantics,
00158 stop_pause_stmt_semantics,
00159 print_stmt_semantics,
00160 read_stmt_semantics,
00161 return_stmt_semantics,
00162 rewind_stmt_semantics,
00163 select_stmt_semantics,
00164 stop_pause_stmt_semantics,
00165 then_stmt_semantics,
00166 where_stmt_semantics,
00167 where_stmt_semantics,
00168 write_stmt_semantics,
00169 type_init_semantics,
00170
00171 label_def_stmt_semantics,
00172 no_semantics_routine,
00173 no_semantics_routine,
00174 no_semantics_routine,
00175 directive_stmt_semantics,
00176 directive_stmt_semantics,
00177 directive_stmt_semantics,
00178 directive_stmt_semantics,
00179 directive_stmt_semantics,
00180 no_semantics_routine,
00181 directive_stmt_semantics,
00182 directive_stmt_semantics,
00183 directive_stmt_semantics,
00184 directive_stmt_semantics,
00185 directive_stmt_semantics,
00186
00187 directive_stmt_semantics,
00188
00189 directive_stmt_semantics,
00190 directive_stmt_semantics,
00191
00192 directive_stmt_semantics,
00193
00194 directive_stmt_semantics,
00195
00196 directive_stmt_semantics,
00197
00198 directive_stmt_semantics,
00199
00200 directive_stmt_semantics,
00201
00202 directive_stmt_semantics,
00203
00204 directive_stmt_semantics,
00205
00206 directive_stmt_semantics,
00207
00208 directive_stmt_semantics,
00209
00210 directive_stmt_semantics,
00211
00212 directive_stmt_semantics,
00213
00214 directive_stmt_semantics,
00215
00216 forall_semantics,
00217 forall_semantics,
00218 end_forall_semantics,
00219 else_stmt_semantics,
00220 no_semantics_routine
00221 };
00222
00223
00224
00225
00226
00227
00228 stmt_tmp_tbl_type stmt_tmp_tbl[Num_Linear_Types];
00229
00230 stmt_tmp_tbl_type init_stmt_tmp_tbl[Num_Linear_Types] =
00231 {
00232 -1, -1,
00233 {-1, -1, -1, -1, -1, -1, -1, -1},
00234 {-1, -1, -1, -1, -1, -1, -1, -1},
00235
00236 -1, -1,
00237 {-1, -1, -1, -1, -1, -1, -1, -1},
00238 {-1, -1, -1, -1, -1, -1, -1, -1},
00239
00240 -1, -1,
00241 {-1, -1, -1, -1, -1, -1, -1, -1},
00242 {-1, -1, -1, -1, -1, -1, -1, -1},
00243
00244 -1, -1,
00245 {-1, -1, -1, -1, -1, -1, -1, -1},
00246 {-1, -1, -1, -1, -1, -1, -1, -1},
00247
00248 -1, -1,
00249 {-1, -1, -1, -1, -1, -1, -1, -1},
00250 {-1, -1, -1, -1, -1, -1, -1, -1},
00251
00252 -1, -1,
00253 {-1, -1, -1, -1, -1, -1, -1, -1},
00254 {-1, -1, -1, -1, -1, -1, -1, -1},
00255
00256 -1, -1,
00257 {-1, -1, -1, -1, -1, -1, -1, -1},
00258 {-1, -1, -1, -1, -1, -1, -1, -1},
00259
00260 -1, -1,
00261 {-1, -1, -1, -1, -1, -1, -1, -1},
00262 {-1, -1, -1, -1, -1, -1, -1, -1},
00263
00264 0, 0,
00265 {0, 0, 0, 0, 0, 0, 0, 0},
00266 {0, 0, 0, 0, 0, 0, 0, 0},
00267
00268 0, 0,
00269 {0, 0, 0, 0, 0, 0, 0, 0},
00270 {0, 0, 0, 0, 0, 0, 0, 0},
00271
00272 0, 0,
00273 {0, 0, 0, 0, 0, 0, 0, 0},
00274 {0, 0, 0, 0, 0, 0, 0, 0},
00275
00276 0, 0,
00277 {0, 0, 0, 0, 0, 0, 0, 0},
00278 {0, 0, 0, 0, 0, 0, 0, 0},
00279
00280 0, 0,
00281 {0, 0, 0, 0, 0, 0, 0, 0},
00282 {0, 0, 0, 0, 0, 0, 0, 0},
00283
00284 0, 0,
00285 {0, 0, 0, 0, 0, 0, 0, 0},
00286 {0, 0, 0, 0, 0, 0, 0, 0},
00287
00288 0, 0,
00289 {0, 0, 0, 0, 0, 0, 0, 0},
00290 {0, 0, 0, 0, 0, 0, 0, 0},
00291
00292 0, 0,
00293 {0, 0, 0, 0, 0, 0, 0, 0},
00294 {0, 0, 0, 0, 0, 0, 0, 0},
00295
00296 0, 0,
00297 {0, 0, 0, 0, 0, 0, 0, 0},
00298 {0, 0, 0, 0, 0, 0, 0, 0},
00299
00300 0, 0,
00301 {0, 0, 0, 0, 0, 0, 0, 0},
00302 {0, 0, 0, 0, 0, 0, 0, 0},
00303
00304 -1, -1,
00305 {-1, -1, -1, -1, -1, -1, -1, -1},
00306 {-1, -1, -1, -1, -1, -1, -1, -1},
00307
00308 0, 0,
00309 {0, 0, 0, 0, 0, 0, 0, 0},
00310 {0, 0, 0, 0, 0, 0, 0, 0},
00311
00312 0, 0,
00313 {0, 0, 0, 0, 0, 0, 0, 0},
00314 {0, 0, 0, 0, 0, 0, 0, 0},
00315
00316 0, 0,
00317 {0, 0, 0, 0, 0, 0, 0, 0},
00318 {0, 0, 0, 0, 0, 0, 0, 0},
00319
00320 0, 0,
00321 {0, 0, 0, 0, 0, 0, 0, 0},
00322 {0, 0, 0, 0, 0, 0, 0, 0},
00323
00324 -1, -1,
00325 {-1, -1, -1, -1, -1, -1, -1, -1},
00326 {-1, -1, -1, -1, -1, -1, -1, -1},
00327
00328 -1, -1,
00329 {-1, -1, -1, -1, -1, -1, -1, -1},
00330 {-1, -1, -1, -1, -1, -1, -1, -1},
00331
00332 -1, -1,
00333 {-1, -1, -1, -1, -1, -1, -1, -1},
00334 {-1, -1, -1, -1, -1, -1, -1, -1},
00335
00336 -1, -1,
00337 {-1, -1, -1, -1, -1, -1, -1, -1},
00338 {-1, -1, -1, -1, -1, -1, -1, -1},
00339
00340 -1, -1,
00341 {-1, -1, -1, -1, -1, -1, -1, -1},
00342 {-1, -1, -1, -1, -1, -1, -1, -1},
00343
00344 -1, -1,
00345 {-1, -1, -1, -1, -1, -1, -1, -1},
00346 {-1, -1, -1, -1, -1, -1, -1, -1}
00347 };