00001 /* Copyright 1991 Digital Equipment Corporation. 00002 ** All Rights Reserved. 00003 *****************************************************************/ 00004 /* $Id: token.h,v 1.3 1995/07/27 19:22:33 duchier Exp $ */ 00005 00006 extern void psi_term_error(); 00007 00008 extern long stdin_terminal; 00009 extern void stdin_cleareof(); 00010 extern void begin_terminal_io(); 00011 extern void end_terminal_io(); 00012 extern char *expand_file_name(); 00013 extern long open_input_file(); 00014 extern long open_output_file(); 00015 00016 extern long read_char(); 00017 extern long read_line(); 00018 extern void read_token(); 00019 extern void read_token_b(); 00020 extern long var_occurred; 00021 00022 extern void put_back_char(); 00023 extern void put_back_token(); 00024 00025 /* Part of global input file state */ 00026 extern long line_count; 00027 extern long start_of_line; 00028 extern long saved_char; 00029 extern long old_saved_char; 00030 extern ptr_psi_term saved_psi_term; 00031 extern ptr_psi_term old_saved_psi_term; 00032 extern long eof_flag; 00033 extern FILE *input_stream; 00034 00035 /* File state ADT */ 00036 extern ptr_psi_term input_state; 00037 extern ptr_psi_term stdin_state; 00038 extern void save_state(); 00039 extern void restore_state(); 00040 extern void new_state(); 00041 00042 /* Names of the features */ 00043 #define STREAM "stream" 00044 #define INPUT_FILE_NAME "input_file_name" 00045 #define LINE_COUNT "line_count" 00046 #define START_OF_LINE "start_of_line" 00047 #define SAVED_CHAR "saved_char" 00048 #define OLD_SAVED_CHAR "old_saved_char" 00049 #define SAVED_PSI_TERM "saved_psi_term" 00050 #define OLD_SAVED_PSI_TERM "old_saved_psi_term" 00051 #define EOF_FLAG "eof_flag" 00052 #define CURRENT_MODULE "current_module" 00053 00054 /* Psi-term utilities */ 00055 extern GENERIC get_attr(); 00056 extern void heap_add_int_attr(); 00057 extern void heap_mod_int_attr(); 00058 extern void heap_add_str_attr(); 00059 extern void heap_mod_str_attr(); 00060 extern void heap_add_psi_attr(); 00061 extern void stack_add_int_attr(); 00062 /* extern void stack_mod_int_attr(); */ 00063 extern void stack_add_str_attr(); 00064 /* extern void stack_mod_str_attr(); */ 00065 extern void stack_add_psi_attr(); 00066 extern FILE *get_stream(); 00067 00068 /* For parsing from a string */ 00069 extern long stringparse; 00070 extern char *stringinput; 00071 00072 /* Parser/tokenizer state handling */ 00073 extern void save_parse_state(); 00074 extern void restore_parse_state(); 00075 extern void init_parse_state(); 00076 00077 typedef struct wl_parse_block *ptr_parse_block; 00078 00079 typedef struct wl_parse_block { 00080 long lc; 00081 long sol; 00082 long sc; 00083 long osc; 00084 ptr_psi_term spt; 00085 ptr_psi_term ospt; 00086 long ef; 00087 } parse_block;
1.5.4