⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.h

📁 一个非常好的检索工具
💻 H
📖 第 1 页 / 共 3 页
字号:
extern char grm_file[],            lis_file[],            act_file[],            hact_file[],            tab_file[],            prs_file[],            sym_file[],            def_file[],            dcl_file[],            file_prefix[],            prefix[],            suffix[],            parm[],            msg_line[];extern FILE *syslis,            *sysgrm,            *sysact,            *syshact,            *systab,            *syssym,            *sysprs,            *sysdcl,            *sysprs,            *sysdef;/******************************************************//*  The variables below are global counters.          *//******************************************************/extern long num_items,            num_states,            max_la_state;extern int num_symbols,           symno_size,  /* NUM_SYMBOLS + 1 */           num_names,           num_terminals,           num_non_terminals,           num_rules,           num_conflict_elements,           num_single_productions,           gotodom_size;/******************************************************//*  The variables below are used for options setting. *//******************************************************/extern BOOLEAN list_bit,               slr_bit,               verbose_bit,               first_bit,               follow_bit,               action_bit,               edit_bit,               states_bit,               xref_bit,               nt_check_bit,               conflicts_bit,               read_reduce_bit,               goto_default_bit,               shift_default_bit,               byte_bit,               warnings_bit,               single_productions_bit,               error_maps_bit,               debug_bit,               deferred_bit,               c_bit,               cpp_bit,               java_bit,               jikes_bit, /* undocumented hack for special jikes behavior */               scopes_bit;extern int lalr_level,           default_opt,           trace_opt,           table_opt,           names_opt,           increment,           maximum_distance,           minimum_distance,           stack_size;extern char escape,            ormark,            record_format;extern char blockb[],            blocke[],            hblockb[],            hblocke[],            errmsg[],            gettok[],            smactn[],            tkactn[];/*********************************************************************//*   The variables below are used to hold information about special  *//* grammar symbols.                                                  *//*********************************************************************/extern short accept_image,             eoft_image,             eolt_image,             empty,             error_image;                       /* Miscellaneous counters. */extern int num_first_sets,           num_shift_maps,           page_no;extern long string_offset,            string_size,            num_shifts,            num_shift_reduces,            num_gotos,            num_goto_reduces,            num_reductions,            num_sr_conflicts,            num_rr_conflicts,            num_entries;extern char *string_table;extern short *rhs_sym;extern struct ruletab_type *rules;/***********************************************************************//* CLOSURE is a mapping from non-terminal to a set (linked-list) of    *//* non-terminals.  The set consists of non-terminals that are          *//* automatically introduced via closure when the original non-terminal *//* is introduced.                                                      *//* CL_ITEMS is a mapping from each non-terminal to a set (linked list) *//* of items which are the first item of the rules generated by the     *//* non-terminal in question. ADEQUATE_ITEM is a mapping from each rule *//* to the last (complete) item produced by that rule.                  *//* ITEM_TABLE is used to map each item into a number. Given that       *//* number one can retrieve the rule the item belongs to, the position  *//* of the dot,  the symbol following the dot, and FIRST of the suffix  *//* following the "dot symbol".                                         *//***********************************************************************/extern struct node **closure,                   **clitems,                   **adequate_item;extern struct itemtab{    short symbol,          rule_number,          suffix_index,          dot;} *item_table;/***********************************************************************//* SYMNO is an array that maps symbol numbers to actual symbols.       *//***********************************************************************/extern struct symno_type{    int ptr,        name_index;} *symno;/***********************************************************************//* These variables hold the number of BOOLEAN_CELLS required to form a *//* set of terminals, non-terminals and states, respectively.           *//***********************************************************************/extern int term_set_size,           non_term_set_size,           state_set_size;/***********************************************************************//* NULL_NT is a boolean vector that indicates whether or not a given   *//* non-terminal is nullable.                                           *//***********************************************************************/extern BOOLEAN *null_nt;/***********************************************************************//* FOLLOW is a mapping from non-terminals to a set of terminals that   *//* may appear immediately after the non-terminal.                      *//***********************************************************************/extern SET_PTR nt_first,               first,               follow;/***********************************************************************//* NAME is an array containing names to be associated with symbols.    *//* REDUCE is a mapping from each state to reduce actions in that state.*//* SHIFT is an array used to hold the complete set of all shift maps   *//* needed to construct the state automaton. Though its size is         *//* NUM_STATES, the actual number of elements used in it is indicated   *//* by the integer NUM_SHIFT_MAPS. NUM_STATES elements were allocated,  *//* because if the user requests that certain single productions be     *//* removed, a Shift map containing actions involving such productions  *//* cannot be shared.                                                   *//***********************************************************************/extern struct shift_header_type  *shift;extern struct reduce_header_type *reduce;extern short *gotodef,             *shiftdf,             *gd_index,             *gd_range;extern int *name;/***********************************************************************//* STATSET is a mapping from state number to state information.        *//* LASTATS is a similar mapping for look-ahead states.                 *//* IN_STAT is a mapping from each state to the set of states that have *//* a transition into the state in question.                            *//***********************************************************************/extern struct statset_type *statset;extern struct lastats_type *lastats;extern struct node **in_stat;extern int num_scopes,           scope_rhs_size,           scope_state_size,           num_error_rules;extern struct scope_type{    short prefix,          suffix,          lhs_symbol,          look_ahead,          state_set;} *scope;extern short *scope_right_side,             *scope_state;/*******************************************************************//*******************************************************************//**                                                               **//**                        OUTPUT DECLARATIONS                    **//**                                                               **//*******************************************************************//*******************************************************************//* The following external variables are used only in processing    *//* output.                                                         *//*******************************************************************/extern char *output_ptr,            *output_buffer;extern short *symbol_map,             *ordered_state,             *state_list;extern int *next,           *previous,           *state_index;extern long table_size,            action_size,            increment_size;extern short last_non_terminal,             last_terminal;extern int accept_act,           error_act,           first_index,           last_index,           last_symbol,           max_name_length;extern SET_PTR naction_symbols,               action_symbols;extern BOOLEAN byte_terminal_range;#endif /* COMMON_INCLUDED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -