📄 scantab.h
字号:
////////////////////////////////////////////////////////////////////////////////// scantab.h -- Definitions for interfacing with scantab.cc which is created// by the makescan utility.// NB: All variables exported by scantab.h begin with st_.//#ifndef SCANTAB_H#define SCANTAB_H#include "scanner.h"#define HASH_TABLE_SIZE 3001 // 3001 is prime#define MAX_CHAR_CODE 127#define MAX_CHAR_CLASS 45#define MAX_SCANNER_STATE 60#define MAX_RESERVE_WORD 50#define ERROR 0#define MOVE_APPEND 1#define MOVE_NO_APPEND 2#define HALT_APPEND 3#define HALT_NO_APPEND 4#define HALT_REUSE 5typedef int hash_index_t; // 1..HASH_TABLE_SIZEtypedef char char_class_t; // 0..MAX_CHAR_CLASStypedef char scanner_state_t; // 0..MAX_SCANNER_STATEtypedef char scanner_act_t; // ERROR..HALT_REUSEtypedef char reserved_word_t; // 1..MAX_RESERVE_WORDstruct state_vector_t { scanner_act_t action; scanner_state_t next_state; // MOVE _APPEND, _NO_APPEND major_token_t major; // HALT _APPEND, _NO_APPEND, _REUSE minor_token_t minor;};struct state_info_t { bool terminal; major_token_t default_major; minor_token_t default_minor;};struct reserve_array_t { major_token_t major; minor_token_t minor; string_number_t text_handle;};extern char st_string_space[MAX_STRING_SPACE];extern string_number_t st_used_strings;extern reserve_array_t st_reserved_words[MAX_RESERVE_WORD];extern char_class_t st_char_class[MAX_CHAR_CODE + 1];extern state_vector_t st_state_matrix[MAX_SCANNER_STATE][MAX_CHAR_CLASS];extern state_info_t st_state_info[MAX_SCANNER_STATE + 1];// Keeps track of which states are terminal, and for whatextern reserved_word_t st_num_reserved_words;extern major_token_t st_end_of_file;extern major_token_t st_num_terminals;extern scanner_state_t st_start_state;extern string_number_t st_max_reserve_location;extern major_token_t st_id_major_num;extern minor_token_t st_id_minor_num;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -