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
00045
00046
00047
00048 enum src_file_values {Stdin_Src,
00049 Input_Src,
00050 Include_Src };
00051
00052 typedef enum src_file_values src_file_type;
00053
00054 struct src_stk_entry {Uint file_line : 32;
00055 Uint file_idx : 32;
00056 src_file_type file_type : 4;
00057 src_form_type prev_src_form : 4;
00058 Uint cif_file_id : 24;
00059 Uint global_line_first_idx : 32;
00060 boolean do_not_fclose;
00061 FILE *file_ptr;
00062 char path_name[MAX_PATH_NAME_SIZE];
00063 };
00064
00065 enum dir_prefix_values {Cdir_Dir,
00066 Cmic_Dir,
00067 Cpar_Dir,
00068 Cstar_Dir,
00069 Cdollar_Dir,
00070 Comp_Dir,
00071 Cdbg_Dir,
00072 Csgi_Dir};
00073
00074 typedef enum dir_prefix_values dir_prefix_type;
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 struct msg_queue_entry {Uint line_num : 24;
00092 Uint col_num : 8;
00093 Uint msg_num : 24;
00094 msg_severities_type sever : 8;
00095 Uint order : 8;
00096 Uint str_len : 24;
00097 Uint next_msg : 32;
00098 long arg;
00099 };
00100
00101
00102 typedef struct msg_queue_entry msg_queue_type;
00103 typedef struct msg_queue_entry next_msg_queue_type;
00104 typedef struct src_stk_entry src_stk_type;
00105
00106
00107 next_msg_queue_type *next_msg_queue;
00108 long next_msg_queue_idx = NULL_IDX;
00109 int next_msg_queue_inc = 5;
00110 int next_msg_queue_init_size = 5;
00111 long next_msg_queue_limit = OUR_LONG_MAX;
00112 int next_msg_queue_num_wds = NUM_MQ_WDS;
00113 long next_msg_queue_size = 0;
00114 long next_msg_queue_largest_idx = NULL_IDX;
00115
00116 msg_queue_type *msg_queue;
00117 long msg_queue_idx = NULL_IDX;
00118 int msg_queue_inc = 5;
00119 int msg_queue_init_size = 5;
00120 long msg_queue_limit = OUR_LONG_MAX;
00121 int msg_queue_num_wds = NUM_MQ_WDS;
00122 long msg_queue_size = 0;
00123 long msg_queue_largest_idx = NULL_IDX;
00124
00125
00126 src_stk_type * RESTRICT src_stk;
00127 long src_stk_idx = NULL_IDX;
00128 int src_stk_inc = 2;
00129 int src_stk_init_size = 3;
00130 long src_stk_limit = OUR_LONG_MAX;
00131 int src_stk_num_wds = HOST_BYTES_TO_WORDS(
00132 sizeof(src_stk_type));
00133 long src_stk_size = 0;
00134 long src_stk_largest_idx = NULL_IDX;
00135
00136
00137
00138
00139
00140
00141 boolean change_source_form = FALSE;
00142 int char_delim;
00143 int continuation_count;
00144 int digit_start;
00145 line_type expected_line;
00146 boolean first_line = TRUE;
00147 boolean first_pound_line = TRUE;
00148 boolean cif_file_rec_issued = FALSE;
00149 int full_include_name_idx = NULL_IDX;
00150 boolean ignore_source_line = FALSE;
00151
00152 char include_file[MAX_FILE_NAME_SIZE];
00153 int include_stmt_file_line = 0;
00154 int include_stmt_file_col = 0;
00155 boolean include_switch;
00156 boolean include_complete;
00157 boolean include_found;
00158
00159 boolean issue_obsolete_src_form_msg = FALSE;
00160
00161 char pound_file[MAX_FILE_NAME_SIZE];
00162 boolean change_orig_src_file = FALSE;
00163
00164 int line_size;
00165 int lines_in_buf;
00166 char num_str[5];
00167 int num_idx;
00168
00169 # ifdef _FRONTEND_CONDITIONAL_COMP
00170 int nxt_line[MAX_STMT_CHAR_SIZE];
00171 int nxt_line_col[MAX_STMT_CHAR_SIZE];
00172 # else
00173 int nxt_line[MAX_SRC_LINE_SIZE];
00174 int nxt_line_col[MAX_SRC_LINE_SIZE];
00175 # endif
00176 int nxt_line_idx;
00177 boolean nxt_line_label;
00178 int nxt_line_length;
00179 int nxt_line_num;
00180 line_type nxt_line_type;
00181 int nxt_line_EOL;
00182 int nxt_line_prefix_len;
00183 boolean nxt_line_mp_line;
00184
00185 int nxt_line_start_idx[MAX_FIXED_LINES+1];
00186 int nxt_line_end_idx[MAX_FIXED_LINES+1];
00187 boolean pp_nxt_line_label[MAX_FIXED_LINES+1];
00188 int pp_nxt_line_length[MAX_FIXED_LINES+1];
00189 int pp_nxt_line_num[MAX_FIXED_LINES+1];
00190 line_type pp_nxt_line_type[MAX_FIXED_LINES+1];
00191 int pp_nxt_line_EOL[MAX_FIXED_LINES+1];
00192 int pp_nxt_line_prefix_len[MAX_FIXED_LINES+1];
00193 int pp_nxt_line_idx[MAX_FIXED_LINES+1];
00194 boolean pp_nxt_line_mp_line[MAX_FIXED_LINES+1];
00195 boolean pp_change_source_form[MAX_FIXED_LINES+1];
00196 dir_prefix_type pp_nxt_line_actual_dir_prefix[MAX_FIXED_LINES+1];
00197 dir_prefix_type pp_nxt_line_dir_prefix[MAX_FIXED_LINES+1];
00198 line_type pp_expected_line[MAX_FIXED_LINES+1];
00199 int pp_orig_line_size[MAX_FIXED_LINES+1];
00200
00201 int nxt_line_num_lines;
00202 int pp_line_idx;
00203
00204 int extra_nxt_line = NULL_IDX;
00205
00206 int prev_char_delim = 0;
00207 int prev_char_delim_idx;
00208 int previous_char;
00209 boolean seen_lp_eq_slash;
00210 int starting_pt;
00211
00212 int stmt_buf[MAX_STMT_CHAR_SIZE];
00213 int stmt_buf_col[MAX_STMT_CHAR_SIZE];
00214 int stmt_buf_idx;
00215 line_type stmt_buf_type;
00216 int stmt_buf_EOS_idx;
00217 int stmt_line_start_idx[MAX_FIXED_LINES+1];
00218 int stmt_line_end_idx[MAX_FIXED_LINES+1];
00219 int stmt_line_idx;
00220 int stmt_line_num[MAX_FIXED_LINES+1];
00221 int stmt_line_offset[MAX_FIXED_LINES+1];
00222 int stmt_prefix_len;
00223
00224 dir_prefix_type stmt_buf_dir_prefix;
00225 dir_prefix_type nxt_line_dir_prefix;
00226
00227 dir_prefix_type line_dir_prefix[MAX_FIXED_LINES+1];
00228 dir_prefix_type nxt_line_actual_dir_prefix;
00229
00230
00231
00232 int lc_a = 'a';
00233 int uc_a = 'A';
00234 int lc_b = 'b';
00235 int uc_b = 'B';
00236 int lc_c = 'c';
00237 int uc_c = 'C';
00238 int lc_d = 'd';
00239 int uc_d = 'D';
00240 int lc_e = 'e';
00241 int uc_e = 'E';
00242 int lc_f = 'f';
00243 int uc_f = 'F';
00244 int lc_g = 'g';
00245 int uc_g = 'G';
00246 int lc_h = 'h';
00247 int uc_h = 'H';
00248 int lc_i = 'i';
00249 int uc_i = 'I';
00250 int lc_l = 'l';
00251 int uc_l = 'L';
00252 int lc_m = 'm';
00253 int uc_m = 'M';
00254 int lc_o = 'o';
00255 int uc_o = 'O';
00256 int lc_p = 'p';
00257 int uc_p = 'P';
00258 int lc_r = 'r';
00259 int uc_r = 'R';
00260 int lc_s = 's';
00261 int uc_s = 'S';
00262 int lc_t = 't';
00263 int uc_t = 'T';
00264 int dot = '.';
00265 int star = '*';
00266 int quote = '\'';
00267 int db_quote = '"';
00268 int blank = ' ';
00269 int marked_blank = ((1 << SIGN_BIT) | ' ');
00270 int tab = '\t';
00271 int newline = '\n';
00272 int dosnewline = '\r';
00273 int bang = '!';
00274 int lparen = '(';
00275 int rparen = ')';
00276 int lbrkt = '[';
00277 int rbrkt = ']';
00278 int equal = '=';
00279 int slash = '/';
00280 int underscore = '_';
00281 int dollar = '$';
00282 int amp = '&';
00283 int percent = '%';
00284 int at_sign = '@';
00285 int semi_colon = ';';
00286 int colon = ':';
00287 int eos = 0;
00288 int one = '1';
00289 int nine = '9';
00290 int zero = '0';
00291 int comma = ',';
00292 int pound = '#';
00293 int greater = '>';
00294 int less = '<';
00295
00296 int format_str[7][2] = { {'F', 'f'},
00297 {'O', 'o'},
00298 {'R', 'r'},
00299 {'M', 'm'},
00300 {'A', 'a'},
00301 {'T', 't'},
00302 {'(', '('}};
00303
00304 int format_idx = -1;
00305 boolean in_format = FALSE;
00306 int format_start_idx;
00307
00308
00309 static boolean have_issued_msg_37;
00310
00311
00312 ch_class_type ch_class[MAX_ASCII_CHARS] = {
00313 Ch_Class_EOS,
00314 Ch_Class_Symbol,
00315 Ch_Class_Symbol,
00316 Ch_Class_Symbol,
00317 Ch_Class_Symbol,
00318 Ch_Class_Symbol,
00319 Ch_Class_Symbol,
00320 Ch_Class_Symbol,
00321 Ch_Class_Symbol,
00322 Ch_Class_Symbol,
00323 Ch_Class_Symbol,
00324 Ch_Class_Symbol,
00325 Ch_Class_Symbol,
00326 Ch_Class_Symbol,
00327 Ch_Class_Symbol,
00328 Ch_Class_Symbol,
00329 Ch_Class_Symbol,
00330 Ch_Class_Symbol,
00331 Ch_Class_Symbol,
00332 Ch_Class_Symbol,
00333 Ch_Class_Symbol,
00334 Ch_Class_Symbol,
00335 Ch_Class_Symbol,
00336 Ch_Class_Symbol,
00337 Ch_Class_Symbol,
00338 Ch_Class_Symbol,
00339 Ch_Class_Symbol,
00340 Ch_Class_Symbol,
00341 Ch_Class_Symbol,
00342 Ch_Class_Symbol,
00343 Ch_Class_Symbol,
00344 Ch_Class_Symbol,
00345 Ch_Class_Symbol,
00346 Ch_Class_Symbol,
00347 Ch_Class_Symbol,
00348 Ch_Class_Symbol,
00349 Ch_Class_Symbol,
00350 Ch_Class_Symbol,
00351 Ch_Class_Symbol,
00352 Ch_Class_Symbol,
00353 Ch_Class_Symbol,
00354 Ch_Class_Symbol,
00355 Ch_Class_Symbol,
00356 Ch_Class_Symbol,
00357 Ch_Class_Symbol,
00358 Ch_Class_Symbol,
00359 Ch_Class_Symbol,
00360 Ch_Class_Symbol,
00361 Ch_Class_Digit,
00362 Ch_Class_Digit,
00363 Ch_Class_Digit,
00364 Ch_Class_Digit,
00365 Ch_Class_Digit,
00366 Ch_Class_Digit,
00367 Ch_Class_Digit,
00368 Ch_Class_Digit,
00369 Ch_Class_Digit,
00370 Ch_Class_Digit,
00371 Ch_Class_Symbol,
00372 Ch_Class_Symbol,
00373 Ch_Class_Symbol,
00374 Ch_Class_Symbol,
00375 Ch_Class_Symbol,
00376 Ch_Class_Symbol,
00377 Ch_Class_Symbol,
00378 Ch_Class_Letter,
00379 Ch_Class_Letter,
00380 Ch_Class_Letter,
00381 Ch_Class_Letter,
00382 Ch_Class_Letter,
00383 Ch_Class_Letter,
00384 Ch_Class_Letter,
00385 Ch_Class_Letter,
00386 Ch_Class_Letter,
00387 Ch_Class_Letter,
00388 Ch_Class_Letter,
00389 Ch_Class_Letter,
00390 Ch_Class_Letter,
00391 Ch_Class_Letter,
00392 Ch_Class_Letter,
00393 Ch_Class_Letter,
00394 Ch_Class_Letter,
00395 Ch_Class_Letter,
00396 Ch_Class_Letter,
00397 Ch_Class_Letter,
00398 Ch_Class_Letter,
00399 Ch_Class_Letter,
00400 Ch_Class_Letter,
00401 Ch_Class_Letter,
00402 Ch_Class_Letter,
00403 Ch_Class_Letter,
00404 Ch_Class_Symbol,
00405 Ch_Class_Symbol,
00406 Ch_Class_Symbol,
00407 Ch_Class_Symbol,
00408 Ch_Class_Symbol,
00409 Ch_Class_Symbol,
00410 Ch_Class_Letter,
00411 Ch_Class_Letter,
00412 Ch_Class_Letter,
00413 Ch_Class_Letter,
00414 Ch_Class_Letter,
00415 Ch_Class_Letter,
00416 Ch_Class_Letter,
00417 Ch_Class_Letter,
00418 Ch_Class_Letter,
00419 Ch_Class_Letter,
00420 Ch_Class_Letter,
00421 Ch_Class_Letter,
00422 Ch_Class_Letter,
00423 Ch_Class_Letter,
00424 Ch_Class_Letter,
00425 Ch_Class_Letter,
00426 Ch_Class_Letter,
00427 Ch_Class_Letter,
00428 Ch_Class_Letter,
00429 Ch_Class_Letter,
00430 Ch_Class_Letter,
00431 Ch_Class_Letter,
00432 Ch_Class_Letter,
00433 Ch_Class_Letter,
00434 Ch_Class_Letter,
00435 Ch_Class_Letter,
00436 Ch_Class_Symbol,
00437 Ch_Class_Symbol,
00438 Ch_Class_Symbol,
00439 Ch_Class_Symbol,
00440 Ch_Class_Symbol,
00441 Ch_Class_Symbol,
00442 Ch_Class_Symbol,
00443 Ch_Class_Symbol,
00444 Ch_Class_Symbol,
00445 Ch_Class_Symbol,
00446 Ch_Class_Symbol,
00447 Ch_Class_Symbol,
00448 Ch_Class_Symbol,
00449 Ch_Class_Symbol,
00450 Ch_Class_Symbol,
00451 Ch_Class_Symbol,
00452 Ch_Class_Symbol,
00453 Ch_Class_Symbol,
00454 Ch_Class_Symbol,
00455 Ch_Class_Symbol,
00456 Ch_Class_Symbol,
00457 Ch_Class_Symbol,
00458 Ch_Class_Symbol,
00459 Ch_Class_Symbol,
00460 Ch_Class_Symbol,
00461 Ch_Class_Symbol,
00462 Ch_Class_Symbol,
00463 Ch_Class_Symbol,
00464 Ch_Class_Symbol,
00465 Ch_Class_Symbol,
00466 Ch_Class_Symbol,
00467 Ch_Class_Symbol,
00468 Ch_Class_Symbol,
00469 Ch_Class_Symbol,
00470 Ch_Class_Symbol,
00471 Ch_Class_Symbol,
00472 Ch_Class_Symbol,
00473 Ch_Class_Symbol,
00474 Ch_Class_Symbol,
00475 Ch_Class_Symbol,
00476 Ch_Class_Symbol,
00477 Ch_Class_Symbol,
00478 Ch_Class_Symbol,
00479 Ch_Class_Symbol,
00480 Ch_Class_Symbol,
00481 Ch_Class_Symbol,
00482 Ch_Class_Symbol,
00483 Ch_Class_Symbol,
00484 Ch_Class_Symbol,
00485 Ch_Class_Symbol,
00486 Ch_Class_Symbol,
00487 Ch_Class_Symbol,
00488 Ch_Class_Symbol,
00489 Ch_Class_Symbol,
00490 Ch_Class_Symbol,
00491 Ch_Class_Symbol,
00492 Ch_Class_Symbol,
00493 Ch_Class_Symbol,
00494 Ch_Class_Symbol,
00495 Ch_Class_Symbol,
00496 Ch_Class_Symbol,
00497 Ch_Class_Symbol,
00498 Ch_Class_Symbol,
00499 Ch_Class_Symbol,
00500 Ch_Class_Symbol,
00501 Ch_Class_Symbol,
00502 Ch_Class_Symbol,
00503 Ch_Class_Symbol,
00504 Ch_Class_Symbol,
00505 Ch_Class_Symbol,
00506 Ch_Class_Symbol,
00507 Ch_Class_Symbol,
00508 Ch_Class_Symbol,
00509 Ch_Class_Symbol,
00510 Ch_Class_Symbol,
00511 Ch_Class_Symbol,
00512 Ch_Class_Symbol,
00513 Ch_Class_Symbol,
00514 Ch_Class_Symbol,
00515 Ch_Class_Symbol,
00516 Ch_Class_Symbol,
00517 Ch_Class_Symbol,
00518 Ch_Class_Symbol,
00519 Ch_Class_Symbol,
00520 Ch_Class_Symbol,
00521 Ch_Class_Symbol,
00522 Ch_Class_Symbol,
00523 Ch_Class_Symbol,
00524 Ch_Class_Symbol,
00525 Ch_Class_Symbol,
00526 Ch_Class_Symbol,
00527 Ch_Class_Symbol,
00528 Ch_Class_Symbol,
00529 Ch_Class_Symbol,
00530 Ch_Class_Symbol,
00531 Ch_Class_Symbol,
00532 Ch_Class_Symbol,
00533 Ch_Class_Symbol,
00534 Ch_Class_Symbol,
00535 Ch_Class_Symbol,
00536 Ch_Class_Symbol,
00537 Ch_Class_Symbol,
00538 Ch_Class_Symbol,
00539 Ch_Class_Symbol,
00540 Ch_Class_Symbol,
00541 Ch_Class_Symbol,
00542 Ch_Class_Symbol,
00543 Ch_Class_Symbol,
00544 Ch_Class_Symbol,
00545 Ch_Class_Symbol,
00546 Ch_Class_Symbol,
00547 Ch_Class_Symbol,
00548 Ch_Class_Symbol,
00549 Ch_Class_Symbol,
00550 Ch_Class_Symbol,
00551 Ch_Class_Symbol,
00552 Ch_Class_Symbol,
00553 Ch_Class_Symbol,
00554 Ch_Class_Symbol,
00555 Ch_Class_Symbol,
00556 Ch_Class_Symbol,
00557 Ch_Class_Symbol,
00558 Ch_Class_Symbol,
00559 Ch_Class_Symbol,
00560 Ch_Class_Symbol,
00561 Ch_Class_Symbol,
00562 Ch_Class_Symbol,
00563 Ch_Class_Symbol,
00564 Ch_Class_Symbol,
00565 Ch_Class_Symbol,
00566 Ch_Class_Symbol,
00567 Ch_Class_Symbol,
00568 Ch_Class_EOF };
00569
00570
00571
00572
00573 static boolean valid_f90_char[MAX_ASCII_CHARS] = {
00574 FALSE,
00575 FALSE,
00576 FALSE,
00577 FALSE,
00578 FALSE,
00579 FALSE,
00580 FALSE,
00581 FALSE,
00582 FALSE,
00583 TRUE ,
00584 FALSE,
00585 FALSE,
00586 FALSE,
00587 FALSE,
00588 FALSE,
00589 FALSE,
00590 FALSE,
00591 FALSE,
00592 FALSE,
00593 FALSE,
00594 FALSE,
00595 FALSE,
00596 FALSE,
00597 FALSE,
00598 FALSE,
00599 FALSE,
00600 FALSE,
00601 FALSE,
00602 FALSE,
00603 FALSE,
00604 FALSE,
00605 FALSE,
00606 TRUE ,
00607 TRUE ,
00608 TRUE ,
00609 FALSE,
00610 TRUE ,
00611 TRUE ,
00612 TRUE ,
00613 TRUE ,
00614 TRUE ,
00615 TRUE ,
00616 TRUE ,
00617 TRUE ,
00618 TRUE ,
00619 TRUE ,
00620 TRUE ,
00621 TRUE ,
00622 TRUE ,
00623 TRUE ,
00624 TRUE ,
00625 TRUE ,
00626 TRUE ,
00627 TRUE ,
00628 TRUE ,
00629 TRUE ,
00630 TRUE ,
00631 TRUE ,
00632 TRUE ,
00633 TRUE ,
00634 TRUE ,
00635 TRUE ,
00636 TRUE ,
00637 TRUE ,
00638 FALSE,
00639 TRUE ,
00640 TRUE ,
00641 TRUE ,
00642 TRUE ,
00643 TRUE ,
00644 TRUE ,
00645 TRUE ,
00646 TRUE ,
00647 TRUE ,
00648 TRUE ,
00649 TRUE ,
00650 TRUE ,
00651 TRUE ,
00652 TRUE ,
00653 TRUE ,
00654 TRUE ,
00655 TRUE ,
00656 TRUE ,
00657 TRUE ,
00658 TRUE ,
00659 TRUE ,
00660 TRUE ,
00661 TRUE ,
00662 TRUE ,
00663 TRUE ,
00664 TRUE ,
00665 FALSE,
00666 FALSE,
00667 FALSE,
00668 FALSE,
00669 TRUE ,
00670 FALSE,
00671 TRUE ,
00672 TRUE ,
00673 TRUE ,
00674 TRUE ,
00675 TRUE ,
00676 TRUE ,
00677 TRUE ,
00678 TRUE ,
00679 TRUE ,
00680 TRUE ,
00681 TRUE ,
00682 TRUE ,
00683 TRUE ,
00684 TRUE ,
00685 TRUE ,
00686 TRUE ,
00687 TRUE ,
00688 TRUE ,
00689 TRUE ,
00690 TRUE ,
00691 TRUE ,
00692 TRUE ,
00693 TRUE ,
00694 TRUE ,
00695 TRUE ,
00696 TRUE ,
00697 FALSE,
00698 FALSE,
00699 FALSE,
00700 FALSE,
00701 FALSE,
00702 FALSE,
00703 FALSE,
00704 FALSE,
00705 FALSE,
00706 FALSE,
00707 FALSE,
00708 FALSE,
00709 FALSE,
00710 FALSE,
00711 FALSE,
00712 FALSE,
00713 FALSE,
00714 FALSE,
00715 FALSE,
00716 FALSE,
00717 FALSE,
00718 FALSE,
00719 FALSE,
00720 FALSE,
00721 FALSE,
00722 FALSE,
00723 FALSE,
00724 FALSE,
00725 FALSE,
00726 FALSE,
00727 FALSE,
00728 FALSE,
00729 FALSE,
00730 FALSE,
00731 FALSE,
00732 FALSE,
00733 FALSE,
00734 FALSE,
00735 FALSE,
00736 FALSE,
00737 FALSE,
00738 FALSE,
00739 FALSE,
00740 FALSE,
00741 FALSE,
00742 FALSE,
00743 FALSE,
00744 FALSE,
00745 FALSE,
00746 FALSE,
00747 FALSE,
00748 FALSE,
00749 FALSE,
00750 FALSE,
00751 FALSE,
00752 FALSE,
00753 FALSE,
00754 FALSE,
00755 FALSE,
00756 FALSE,
00757 FALSE,
00758 FALSE,
00759 FALSE,
00760 FALSE,
00761 FALSE,
00762 FALSE,
00763 FALSE,
00764 FALSE,
00765 FALSE,
00766 FALSE,
00767 FALSE,
00768 FALSE,
00769 FALSE,
00770 FALSE,
00771 FALSE,
00772 FALSE,
00773 FALSE,
00774 FALSE,
00775 FALSE,
00776 FALSE,
00777 FALSE,
00778 FALSE,
00779 FALSE,
00780 FALSE,
00781 FALSE,
00782 FALSE,
00783 FALSE,
00784 FALSE,
00785 FALSE,
00786 FALSE,
00787 FALSE,
00788 FALSE,
00789 FALSE,
00790 FALSE,
00791 FALSE,
00792 FALSE,
00793 FALSE,
00794 FALSE,
00795 FALSE,
00796 FALSE,
00797 FALSE,
00798 FALSE,
00799 FALSE,
00800 FALSE,
00801 FALSE,
00802 FALSE,
00803 FALSE,
00804 FALSE,
00805 FALSE,
00806 FALSE,
00807 FALSE,
00808 FALSE,
00809 FALSE,
00810 FALSE,
00811 FALSE,
00812 FALSE,
00813 FALSE,
00814 FALSE,
00815 FALSE,
00816 FALSE,
00817 FALSE,
00818 FALSE,
00819 FALSE,
00820 FALSE,
00821 FALSE,
00822 FALSE,
00823 FALSE,
00824 FALSE,
00825 FALSE,
00826 FALSE,
00827 FALSE,
00828 FALSE,
00829 FALSE };
00830
00831
00832 # ifdef _DEBUG
00833 static char *line_type_str[] = {
00834 "Comment_Line",
00835 "Include_Line",
00836 "Cond_Comp_Line",
00837 "Dir_Line",
00838 "Regular_Line",
00839 "Continuation_Line",
00840 "EOF_Line"
00841 };
00842
00843 static char *ch_str[] = {
00844 "EOS", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",
00845 "BS", "TAB", "LF", "VT", "FF", "CR", "SO", "SI",
00846 "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
00847 "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US",
00848 "SP", "!", "\"", "#", "$", "%", "&", "'",
00849 "(", ")", "*", "+", ",", "-", ".", "/",
00850 "0", "1", "2", "3", "4", "5", "6", "7",
00851 "8", "9", ":", ";", "<", "=", ">", "?",
00852 "@", "A", "B", "C", "D", "E", "F", "G",
00853 "H", "I", "J", "K", "L", "M", "N", "O",
00854 "P", "Q", "R", "S", "T", "U", "V", "W",
00855 "X", "Y", "Z", "[", "\\", "]", "^", "_",
00856 "`", "a", "b", "c", "d", "e", "f", "g",
00857 "h", "i", "j", "k", "l", "m", "n", "o",
00858 "p", "q", "r", "s", "t", "u", "v", "w",
00859 "x", "y", "z", "{", "|", "}", "~", "DEL",
00860 "128", "129", "130", "131", "132", "133", "134", "135",
00861 "136", "137", "138", "139", "140", "141", "142", "143",
00862 "144", "145", "146", "147", "148", "149", "150", "151",
00863 "152", "153", "154", "155", "156", "157", "158", "159",
00864 "160", "161", "162", "163", "164", "165", "166", "167",
00865 "168", "169", "170", "171", "172", "173", "174", "175",
00866 "176", "177", "178", "179", "180", "181", "182", "183",
00867 "184", "185", "186", "187", "188", "189", "190", "191",
00868 "192", "193", "194", "195", "196", "197", "198", "199",
00869 "200", "201", "202", "203", "204", "205", "206", "207",
00870 "208", "209", "210", "211", "212", "213", "214", "215",
00871 "216", "217", "218", "219", "220", "221", "222", "223",
00872 "224", "225", "226", "227", "228", "229", "230", "231",
00873 "232", "233", "234", "235", "236", "237", "238", "239",
00874 "240", "241", "242", "243", "244", "245", "246", "247",
00875 "248", "249", "250", "251", "252", "253", "254", "EOF"
00876 };
00877 # endif
00878
00879
00880
00881
00882 extern boolean sig_blank;
00883 extern la_type stmt_EOS_la_ch;
00884
00885 static boolean havent_issued_tab_ansi;
00886 static boolean havent_issued_at_ansi;
00887 static boolean havent_issued_dollar_ansi;
00888
00889 extern boolean parse_cc_line(void);
00890 extern boolean is_par_directive (int);
00891 extern boolean is_dollar_directive (int);
00892 extern boolean is_star_directive (int);
00893
00894 extern boolean scan_fortran_stmt(void);
00895 extern boolean scan_fixed_comment(void);
00896
00897 extern void check_for_continued_macro(void);
00898
00899 FILE *dot_i_fptr;
00900
00901 boolean angle_brkt_include = FALSE;
00902
00903
00904 int save_prev_char_delim;
00905 int save_prev_char_delim_idx;
00906 int save_previous_char;
00907 boolean save_seen_lp_eq_slash;
00908 int save_char_delim;
00909 int save_digit_start;
00910 int save_format_idx;
00911 boolean save_in_format;
00912 line_type save_expected_line;
00913 boolean save_first_line;
00914
00915 boolean issue_pound_exit_line = FALSE;
00916
00917 extern char cc_stmt_buf[MAX_STMT_CHAR_SIZE];
00918 extern int cc_stmt_buf_idx;
00919 extern cc_stmt_buf_line_type cc_stmt_buf_line[200];
00920 extern long cc_stmt_buf_num_lines;
00921
00922 long previous_global_line;