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

📄 fdsa.h

📁 使用yacc和lex编写的cmm语言的词法分析和语法分析程序.
💻 H
📖 第 1 页 / 共 3 页
字号:
extern char *oballoc ();extern char *permalloc ();extern char *savealloc ();/* Lowest level primitive for allocating a node.   The TREE_CODE is the only argument.  Contents are initialized   to zero except for a few of the common fields.  */extern tree make_node ();/* Make a copy of a node, with all the same contents except   for TREE_PERMANENT.  (The copy is permanent   iff nodes being made now are permanent.)  */extern tree copy_node ();/* Make a copy of a chain of TREE_LIST nodes.  */extern tree copy_list ();/* Make a TREE_VEC.  */extern tree make_tree_vec ();/* Return the (unique) IDENTIFIER_NODE node for a given name.   The name is supplied as a char *.  */extern tree get_identifier ();/* Construct various types of nodes.  */extern tree build_int_2 ();extern tree build_real ();extern tree build_real_from_string ();extern tree build_real_from_int_cst ();extern tree build_complex ();extern tree build_string ();extern tree build (), build1 ();extern tree build_nt (), build_parse_node ();extern tree build_tree_list (), build_decl_list ();extern tree build_op_identifier ();extern tree build_decl ();extern tree build_block ();/* Construct various nodes representing data types.  */extern tree make_signed_type ();extern tree make_unsigned_type ();extern tree signed_or_unsigned_type ();extern void fixup_unsigned_type ();extern tree build_pointer_type ();extern tree build_reference_type ();extern tree build_index_type (), build_index_2_type ();extern tree build_array_type ();extern tree build_function_type ();extern tree build_method_type ();extern tree build_offset_type ();extern tree build_complex_type ();extern tree array_type_nelts ();/* Construct expressions, performing type checking.  */extern tree build_binary_op ();extern tree build_indirect_ref ();extern tree build_unary_op ();/* Given a type node TYPE, and CONSTP and VOLATILEP, return a type   for the same kind of data as TYPE describes.   Variants point to the "main variant" (which has neither CONST nor VOLATILE)   via TYPE_MAIN_VARIANT, and it points to a chain of other variants   so that duplicate variants are never made.   Only main variants should ever appear as types of expressions.  */extern tree build_type_variant ();/* Return the mode for data of a given size SIZE and mode class CLASS.   If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE.   The value is BLKmode if no other mode is found.  */extern enum machine_mode mode_for_size ();/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT,   TYPE_ALIGN and TYPE_MODE fields.   If called more than once on one node, does nothing except   for the first time.  */extern void layout_type ();/* Given a hashcode and a ..._TYPE node (for which the hashcode was made),   return a canonicalized ..._TYPE node, so that duplicates are not made.   How the hash code is computed is up to the caller, as long as any two   callers that could hash identical-looking type nodes agree.  */extern tree type_hash_canon ();/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node,   calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE   fields.  Call this only once for any given decl node.   Second argument is the boundary that this field can be assumed to   be starting at (in bits).  Zero means it can be assumed aligned   on any boundary that may be needed.  */extern void layout_decl ();/* Fold constants as much as possible in an expression.   Returns the simplified expression.   Acts only on the top level of the expression;   if the argument itself cannot be simplified, its   subexpressions are not changed.  */extern tree fold ();/* Return an expr equal to X but certainly not valid as an lvalue.  */extern tree non_lvalue ();extern tree convert ();extern tree size_in_bytes ();extern tree size_binop ();extern tree size_int ();extern tree round_up ();extern tree get_pending_sizes ();extern tree get_permanent_types (), get_temporary_types ();/* Type for sizes of data-type.  */extern tree sizetype;/* Concatenate two lists (chains of TREE_LIST nodes) X and Y   by making the last node in X point to Y.   Returns X, except if X is 0 returns Y.  */extern tree chainon ();/* Make a new TREE_LIST node from specified PURPOSE, VALUE and CHAIN.  */extern tree tree_cons (), perm_tree_cons (), temp_tree_cons ();extern tree saveable_tree_cons (), decl_tree_cons ();/* Return the last tree node in a chain.  */extern tree tree_last ();/* Reverse the order of elements in a chain, and return the new head.  */extern tree nreverse ();/* Make a copy of a chain of tree nodes.  */extern tree copy_chain ();/* Returns the length of a chain of nodes   (number of chain pointers to follow before reaching a null pointer).  */extern int list_length ();/* integer_zerop (tree x) is nonzero if X is an integer constant of value 0 */extern int integer_zerop ();/* integer_onep (tree x) is nonzero if X is an integer constant of value 1 */extern int integer_onep ();/* integer_all_onesp (tree x) is nonzero if X is an integer constant   all of whose significant bits are 1.  */extern int integer_all_onesp ();/* integer_pow2p (tree x) is nonzero is X is an integer constant with   exactly one bit 1.  */extern int integer_pow2p ();/* type_unsigned_p (tree x) is nonzero if the type X is an unsigned type   (all of its possible values are >= 0).   If X is a pointer type, the value is 1.   If X is a real type, the value is 0.  */extern int type_unsigned_p ();/* staticp (tree x) is nonzero if X is a reference to data allocated   at a fixed address in memory.  */extern int staticp ();/* Gets an error if argument X is not an lvalue.   Also returns 1 if X is an lvalue, 0 if not.  */extern int lvalue_or_else ();/* save_expr (EXP) returns an expression equivalent to EXP   but it can be used multiple times within context CTX   and only evaluate EXP once.  */extern tree save_expr ();/* stabilize_reference (EXP) returns an reference equivalent to EXP   but it can be used multiple times   and only evaluate the subexpressions once.  */extern tree stabilize_reference ();/* Return EXP, stripped of any conversions to wider types   in such a way that the result of converting to type FOR_TYPE   is the same as if EXP were converted to FOR_TYPE.   If FOR_TYPE is 0, it signifies EXP's type.  */extern tree get_unwidened ();/* Return OP or a simpler expression for a narrower value   which can be sign-extended or zero-extended to give back OP.   Store in *UNSIGNEDP_PTR either 1 if the value should be zero-extended   or 0 if the value should be sign-extended.  */extern tree get_narrower ();/* Given MODE and UNSIGNEDP, return a suitable type-tree   with that mode.   The definition of this resides in language-specific code   as the repertoire of available types may vary.  */extern tree type_for_mode ();/* Given PRECISION and UNSIGNEDP, return a suitable type-tree   for an integer type with at least that precision.   The definition of this resides in language-specific code   as the repertoire of available types may vary.  */extern tree type_for_size ();/* Given an integer type T, return a type like T but unsigned.   If T is unsigned, the value is T.   The definition of this resides in language-specific code   as the repertoire of available types may vary.  */extern tree unsigned_type ();/* Given an integer type T, return a type like T but signed.   If T is signed, the value is T.   The definition of this resides in language-specific code   as the repertoire of available types may vary.  */extern tree signed_type ();/* This function must be defined in the language-specific files.   expand_expr calls it to build the cleanup-expression for a TARGET_EXPR.   This is defined in a language-specific file.  */extern tree maybe_build_cleanup ();/* Return the floating type node for a given floating machine mode.  */extern tree get_floating_type ();/* Given an expression EXP that may be a COMPONENT_REF or an ARRAY_REF,   look for nested component-refs or array-refs at constant positions   and find the ultimate containing object, which is returned.  */extern tree get_inner_reference ();/* Return the FUNCTION_DECL which provides this _DECL with its context,   or zero if none.  */extern tree decl_function_context ();/* Return the RECORD_TYPE or UNION_TYPE which provides this _DECL   with its context, or zero if none.  */extern tree decl_type_context ();/* Given the FUNCTION_DECL for the current function,   return zero if it is ok for this function to be inline.   Otherwise return a warning message with a single %s   for the function's name.  */extern char *function_cannot_inline_p ();/* Declare commonly used variables for tree structure.  *//* An integer constant with value 0 */extern tree integer_zero_node;/* An integer constant with value 1 */extern tree integer_one_node;/* An integer constant with value 0 whose type is sizetype.  */extern tree size_zero_node;/* An integer constant with value 1 whose type is sizetype.  */extern tree size_one_node;/* A constant of type pointer-to-int and value 0 */extern tree null_pointer_node;/* A node of type ERROR_MARK.  */extern tree error_mark_node;/* The type node for the void type.  */extern tree void_type_node;/* The type node for the ordinary (signed) integer type.  */extern tree integer_type_node;/* The type node for the unsigned integer type.  */extern tree unsigned_type_node;/* The type node for the ordinary character type.  */extern tree char_type_node;/* Points to the name of the input file from which the current input   being parsed originally came (before it went into cpp).  */extern char *input_filename;/* Current line number in input file.  */extern int lineno;/* Nonzero for -pedantic switch: warn about anything   that standard C forbids.  */extern int pedantic;/* Nonzero means can safely call expand_expr now;   otherwise layout_type puts variable sizes onto `pending_sizes' instead.  */extern int immediate_size_expand;/* Points to the FUNCTION_DECL of the function whose body we are reading. */extern tree current_function_decl;/* Nonzero if function being compiled can call setjmp.  */extern int current_function_calls_setjmp;/* Nonzero if function being compiled can call longjmp.  */extern int current_function_calls_longjmp;/* Nonzero means all ..._TYPE nodes should be allocated permanently.  */extern int all_types_permanent;/* Pointer to function to compute the name to use to print a declaration.  */extern char *(*decl_printable_name) ();/* In expmed.c */extern tree make_tree ();/* In stmt.c */extern tree expand_start_stmt_expr ();extern tree expand_end_stmt_expr ();extern void expand_expr_stmt (), clear_last_expr ();extern void expand_label (), expand_goto (), expand_asm ();extern void expand_start_cond (), expand_end_cond ();extern void expand_start_else (), expand_start_elseif ();extern struct nesting *expand_start_loop ();extern struct nesting *expand_start_loop_continue_elsewhere ();extern void expand_loop_continue_here ();extern void expand_end_loop ();extern int expand_continue_loop ();extern int expand_exit_loop (), expand_exit_loop_if_false ();extern int expand_exit_something ();extern void expand_start_delayed_expr ();extern tree expand_end_delayed_expr ();extern void expand_emit_delayed_expr ();extern void expand_null_return (), expand_return ();extern void expand_start_bindings (), expand_end_bindings ();extern tree last_cleanup_this_contour ();extern void expand_start_case (), expand_end_case ();extern int pushcase (), pushcase_range ();extern void expand_start_function (), expand_end_function ();/* In fold-const.c */extern tree invert_truthvalue ();/* The language front-end must define these functions.  *//* Function of no arguments for initializing lexical scanning.  */extern void init_lex ();/* Function of no arguments for initializing the symbol table.  */extern void init_decl_processing ();/* Functions called with no arguments at the beginning and end or processing   the input source file.  */extern void lang_init ();extern void lang_finish ();/* Function called with no arguments to parse and compile the input.  */extern int yyparse ();/* Function called with option as argument   to decode options starting with -f or -W or +.   It should return nonzero if it handles the option.  */extern int lang_decode_option ();/* Functions for processing symbol declarations.  *//* Function to enter a new lexical scope.   Takes one argument: always zero when called from outside the front end.  */extern void pushlevel ();/* Function to exit a lexical scope.  It returns a BINDING for that scope.   Takes three arguments:     KEEP -- nonzero if there were declarations in this scope.     REVERSE -- reverse the order of decls before returning them.     FUNCTIONBODY -- nonzero if this level is the body of a function.  */extern tree poplevel ();/* Function to add a decl to the current scope level.   Takes one argument, a decl to add.   Returns that decl, or, if the same symbol is already declared, may   return a different decl for that name.  */extern tree pushdecl ();/* Function to return the chain of decls so far in the current scope level.  */extern tree getdecls ();/* Function to return the chain of structure tags in the current scope level.  */extern tree gettags ();

⌨️ 快捷键说明

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