📄 metreint.h
字号:
/************************************************************* Copyright (c) 1993-1995 by Paul Long All rights reserved.**************************************************************//************************************************************* metreint.h - This header file contains #defines, typedefs, and externs that are used exclusively by the parser. The rules code does not need access to these.**************************************************************/#ifndef METREINT_H_#define METREINT_H_#include <string.h>#include <stddef.h>#include "metre.h"#define metre_version "2.3"#define DEFAULT_COMMAND_NAME "METRE"/* Sets the object, x, to 0. */#define ZERO(x) memset((void *)&x, 0, sizeof x)/* Add defines for new internal error messages here. NOTE: 0 is reserved for yyerror() and error messages that YACC generates.*/#define E_NO_HEAP 1, "Out of heap space"#define E_LINE_TYPE 2, "Invalid line type"#define E_CANT_OPEN_LISTING_FILE 3, "Cannot open listing file"#define E_CANT_OPEN_COMMAND_FILE 4, "Cannot open command file"#define E_OVERRAN_INPUT_BUFFER 5, "Overran input buffer"/* Add defines for new internal warning messages here. */#define W_CANNOT_OPEN_FILE 0, "Cannot open %s"#define W_OPTIONS_IGNORED 1, "Extra command-line options ignored"/* Number of typedef symbols that each typedef-symbol block can hold. New blocks are allocated on an as-needed basis so that the symbol table is not a fixed size.*/#define TYPEDEF_SYMBOLS_PER_BLOCK 1000/* Characters used to identify command-line options. */#define DEFINE_OPT_CHAR 'D' /* Translate this identifier. */#define LISTING_OPT_CHAR 'o' /* Name of listing file to contain output.*/#define COPY_INPUT_OPT_CHAR 'C' /* Copy input to standard out. */#define SUBST_FILE_OPT_CHAR 'S' /* Substitute file name. */#define NO_WARNINGS_OPT_CHAR 'w' /* Suppress warnings. */#define HELP_OPT_CHAR 'h' /* Display brief help. */#define SCRIPT_FILE_OPT_CHAR 'f' /* Also get options from file. *//* (Lex's maximum lexeme length--YYLMAX.) */#define MAX_DECLARATOR_NAME_LEN 100/* typedef for IDENTIFIER array. */typedef char IDENTIFIER[MAX_DECLARATOR_NAME_LEN];/* NOTE: External names that are intended to only be used within the parser are mangled somewhat by prepending "mtr_" to reduce the possibility of collision between names in rules code and parser code. These #defines could all be removed if this is not a concern.*/#define mod_decisions mtr_mod_decisions#define mod_functions mtr_mod_functionsextern unsigned mod_decisions;extern unsigned mod_functions;#define cmd_line_argc mtr_cmd_line_argc#define cmd_line_argv mtr_cmd_line_argv#define input_file mtr_input_file#define input_file_orig_name mtr_input_file_orig_name#define next_cmd_line_file mtr_next_cmd_line_file#define next_cmd_line_file_orig_n mtr_next_cmd_line_file_orig_n#define column mtr_column#define display_input mtr_display_input#define looking_for_tag mtr_looking_for_tagextern int cmd_line_argc;extern char **cmd_line_argv;extern FILE *yyin;extern int yylineno;extern FILE *yyout;extern char *input_file;extern char *input_file_orig_name;extern unsigned next_cmd_line_file;extern unsigned next_cmd_line_file_orig_n;extern BOOLEAN display_input;extern BOOLEAN looking_for_tag;#define int_prj mtr_int_prj#define int_mod mtr_int_mod#define int_lin mtr_int_lin#define int_lex mtr_int_lexextern PRJ int_prj;extern MOD int_mod;extern LIN int_lin;extern LEX int_lex;#define get_next_input_file mtr_get_next_input_file#define get_next_input_file_orig_name mtr_get_next_input_file_orig_name#define typedef_symbol_table_find mtr_typedef_symbol_table_find#define init_lex mtr_init_lex#define init_yacc mtr_init_yacc#define fire_prj mtr_fire_prj#define fire_mod mtr_fire_mod#define fire_lin mtr_fire_lin#define fire_lex mtr_fire_lex#define fire_grm mtr_fire_grm#define int_fatal mtr_int_fatalextern char *get_next_input_file(unsigned *p_i);extern char *get_next_input_file_orig_name(unsigned *p_i);extern BOOLEAN typedef_symbol_table_find(char *);extern void init_lex(void);extern void init_yacc(void);extern void fire_prj(void);extern void fire_mod(void);extern void fire_lin(void);extern void fire_lex(void);extern void fire_grm(void);extern void int_fatal(int, char *, ...);#ifdef DEBUG_TYPEDEFextern void typedef_symbol_table_dump(void);#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -