📄 gfortran.h
字号:
Default is -1, the maximum line length mandated by the respective source form is used: for FORM_FREE GFC_MAX_LINE (132) else 72. If fixed_line_length or free_line_length is not 0 nor -1 then the user has requested a specific line-length. If the user requests a fixed_line_length <7 then gfc_init_options() emits a fatal error. */ int fixed_line_length; /* maximum line length in fixed-form. */ int free_line_length; /* maximum line length in free-form. */ int max_identifier_length; int verbose; int warn_aliasing; int warn_conversion; int warn_implicit_interface; int warn_line_truncation; int warn_underflow; int warn_surprising; int warn_unused_labels; int flag_default_double; int flag_default_integer; int flag_default_real; int flag_dollar_ok; int flag_underscoring; int flag_second_underscore; int flag_implicit_none; int flag_max_stack_var_size; int flag_module_access_private; int flag_no_backend; int flag_pack_derived; int flag_repack_arrays; int flag_preprocessed; int flag_f2c; int flag_automatic; int flag_backslash; int flag_cray_pointer; int flag_d_lines; int q_kind; int fpe; int warn_std; int allow_std; int warn_nonstd_intrinsics; int fshort_enums; int convert;}gfc_option_t;extern gfc_option_t gfc_option;/* Constructor nodes for array and structure constructors. */typedef struct gfc_constructor{ gfc_expr *expr; gfc_iterator *iterator; locus where; struct gfc_constructor *next; struct { mpz_t offset; /* Record the offset of array element which appears in data statement like "data a(5)/4/". */ gfc_component *component; /* Record the component being initialized. */ } n; mpz_t repeat; /* Record the repeat number of initial values in data statement like "data a/5*10/". */}gfc_constructor;typedef struct iterator_stack{ gfc_symtree *variable; mpz_t value; struct iterator_stack *prev;}iterator_stack;extern iterator_stack *iter_stack;/************************ Function prototypes *************************//* data.c */void gfc_formalize_init_value (gfc_symbol *);void gfc_get_section_index (gfc_array_ref *, mpz_t *, mpz_t *);void gfc_assign_data_value (gfc_expr *, gfc_expr *, mpz_t);void gfc_assign_data_value_range (gfc_expr *, gfc_expr *, mpz_t, mpz_t);void gfc_advance_section (mpz_t *, gfc_array_ref *, mpz_t *);/* scanner.c */void gfc_scanner_done_1 (void);void gfc_scanner_init_1 (void);void gfc_add_include_path (const char *);void gfc_release_include_path (void);FILE *gfc_open_included_file (const char *, bool);int gfc_at_end (void);int gfc_at_eof (void);int gfc_at_bol (void);int gfc_at_eol (void);void gfc_advance_line (void);int gfc_check_include (void);void gfc_skip_comments (void);int gfc_next_char_literal (int);int gfc_next_char (void);int gfc_peek_char (void);void gfc_error_recovery (void);void gfc_gobble_whitespace (void);try gfc_new_file (void);const char * gfc_read_orig_filename (const char *, const char **);extern gfc_source_form gfc_current_form;extern const char *gfc_source_file;extern locus gfc_current_locus;/* misc.c */void *gfc_getmem (size_t) ATTRIBUTE_MALLOC;void gfc_free (void *);int gfc_terminal_width(void);void gfc_clear_ts (gfc_typespec *);FILE *gfc_open_file (const char *);const char *gfc_basic_typename (bt);const char *gfc_typename (gfc_typespec *);#define gfc_op2string(OP) (OP == INTRINSIC_ASSIGN ? \ "=" : gfc_code2string (intrinsic_operators, OP))const char *gfc_code2string (const mstring *, int);int gfc_string2code (const mstring *, const char *);const char *gfc_intent_string (sym_intent);void gfc_init_1 (void);void gfc_init_2 (void);void gfc_done_1 (void);void gfc_done_2 (void);/* options.c */unsigned int gfc_init_options (unsigned int, const char **);int gfc_handle_option (size_t, const char *, int);bool gfc_post_options (const char **);/* iresolve.c */const char * gfc_get_string (const char *, ...) ATTRIBUTE_PRINTF_1;/* error.c */typedef struct gfc_error_buf{ int flag; size_t allocated, index; char *message;} gfc_error_buf;void gfc_error_init_1 (void);void gfc_buffer_error (int);void gfc_warning (const char *, ...) ATTRIBUTE_GCC_GFC(1,2);void gfc_warning_now (const char *, ...) ATTRIBUTE_GCC_GFC(1,2);void gfc_clear_warning (void);void gfc_warning_check (void);void gfc_error (const char *, ...) ATTRIBUTE_GCC_GFC(1,2);void gfc_error_now (const char *, ...) ATTRIBUTE_GCC_GFC(1,2);void gfc_fatal_error (const char *, ...) ATTRIBUTE_NORETURN ATTRIBUTE_GCC_GFC(1,2);void gfc_internal_error (const char *, ...) ATTRIBUTE_NORETURN ATTRIBUTE_GCC_GFC(1,2);void gfc_clear_error (void);int gfc_error_check (void);try gfc_notify_std (int, const char *, ...) ATTRIBUTE_GCC_GFC(2,3);/* A general purpose syntax error. */#define gfc_syntax_error(ST) \ gfc_error ("Syntax error in %s statement at %C", gfc_ascii_statement (ST));void gfc_push_error (gfc_error_buf *);void gfc_pop_error (gfc_error_buf *);void gfc_free_error (gfc_error_buf *);void gfc_status (const char *, ...) ATTRIBUTE_PRINTF_1;void gfc_status_char (char);void gfc_get_errors (int *, int *);/* arith.c */void gfc_arith_init_1 (void);void gfc_arith_done_1 (void);gfc_expr *gfc_enum_initializer (gfc_expr *, locus);arith gfc_check_integer_range (mpz_t p, int kind);/* trans-types.c */int gfc_validate_kind (bt, int, bool);extern int gfc_index_integer_kind;extern int gfc_default_integer_kind;extern int gfc_max_integer_kind;extern int gfc_default_real_kind;extern int gfc_default_double_kind;extern int gfc_default_character_kind;extern int gfc_default_logical_kind;extern int gfc_default_complex_kind;extern int gfc_c_int_kind;/* symbol.c */void gfc_clear_new_implicit (void);try gfc_add_new_implicit_range (int, int);try gfc_merge_new_implicit (gfc_typespec *);void gfc_set_implicit_none (void);gfc_typespec *gfc_get_default_type (gfc_symbol *, gfc_namespace *);try gfc_set_default_type (gfc_symbol *, int, gfc_namespace *);void gfc_set_component_attr (gfc_component *, symbol_attribute *);void gfc_get_component_attr (symbol_attribute *, gfc_component *);void gfc_set_sym_referenced (gfc_symbol * sym);try gfc_add_attribute (symbol_attribute *, locus *, uint);try gfc_add_allocatable (symbol_attribute *, locus *);try gfc_add_dimension (symbol_attribute *, const char *, locus *);try gfc_add_external (symbol_attribute *, locus *);try gfc_add_intrinsic (symbol_attribute *, locus *);try gfc_add_optional (symbol_attribute *, locus *);try gfc_add_pointer (symbol_attribute *, locus *);try gfc_add_cray_pointer (symbol_attribute *, locus *);try gfc_add_cray_pointee (symbol_attribute *, locus *);try gfc_mod_pointee_as (gfc_array_spec *as);try gfc_add_result (symbol_attribute *, const char *, locus *);try gfc_add_save (symbol_attribute *, const char *, locus *);try gfc_add_saved_common (symbol_attribute *, locus *);try gfc_add_target (symbol_attribute *, locus *);try gfc_add_dummy (symbol_attribute *, const char *, locus *);try gfc_add_generic (symbol_attribute *, const char *, locus *);try gfc_add_common (symbol_attribute *, locus *);try gfc_add_in_common (symbol_attribute *, const char *, locus *);try gfc_add_in_equivalence (symbol_attribute *, const char *, locus *);try gfc_add_data (symbol_attribute *, const char *, locus *);try gfc_add_in_namelist (symbol_attribute *, const char *, locus *);try gfc_add_sequence (symbol_attribute *, const char *, locus *);try gfc_add_elemental (symbol_attribute *, locus *);try gfc_add_pure (symbol_attribute *, locus *);try gfc_add_recursive (symbol_attribute *, locus *);try gfc_add_function (symbol_attribute *, const char *, locus *);try gfc_add_subroutine (symbol_attribute *, const char *, locus *);try gfc_add_access (symbol_attribute *, gfc_access, const char *, locus *);try gfc_add_flavor (symbol_attribute *, sym_flavor, const char *, locus *);try gfc_add_entry (symbol_attribute *, const char *, locus *);try gfc_add_procedure (symbol_attribute *, procedure_type, const char *, locus *);try gfc_add_intent (symbol_attribute *, sym_intent, locus *);try gfc_add_explicit_interface (gfc_symbol *, ifsrc, gfc_formal_arglist *, locus *);try gfc_add_type (gfc_symbol *, gfc_typespec *, locus *);void gfc_clear_attr (symbol_attribute *);try gfc_missing_attr (symbol_attribute *, locus *);try gfc_copy_attr (symbol_attribute *, symbol_attribute *, locus *);try gfc_add_component (gfc_symbol *, const char *, gfc_component **);gfc_symbol *gfc_use_derived (gfc_symbol *);gfc_symtree *gfc_use_derived_tree (gfc_symtree *);gfc_component *gfc_find_component (gfc_symbol *, const char *);gfc_st_label *gfc_get_st_label (int);void gfc_free_st_label (gfc_st_label *);void gfc_define_st_label (gfc_st_label *, gfc_sl_type, locus *);try gfc_reference_st_label (gfc_st_label *, gfc_sl_type);gfc_namespace *gfc_get_namespace (gfc_namespace *, int);gfc_symtree *gfc_new_symtree (gfc_symtree **, const char *);gfc_symtree *gfc_find_symtree (gfc_symtree *, const char *);gfc_user_op *gfc_get_uop (const char *);gfc_user_op *gfc_find_uop (const char *, gfc_namespace *);void gfc_free_symbol (gfc_symbol *);gfc_symbol *gfc_new_symbol (const char *, gfc_namespace *);int gfc_find_symbol (const char *, gfc_namespace *, int, gfc_symbol **);int gfc_find_sym_tree (const char *, gfc_namespace *, int, gfc_symtree **);int gfc_get_symbol (const char *, gfc_namespace *, gfc_symbol **);int gfc_get_sym_tree (const char *, gfc_namespace *, gfc_symtree **);int gfc_get_ha_symbol (const char *, gfc_symbol **);int gfc_get_ha_sym_tree (const char *, gfc_symtree **);int gfc_symbols_could_alias (gfc_symbol *, gfc_symbol *);void gfc_undo_symbols (void);void gfc_commit_symbols (void);void gfc_commit_symbol (gfc_symbol * sym);void gfc_free_namespace (gfc_namespace *);void gfc_symbol_init_2 (void);void gfc_symbol_done_2 (void);void gfc_traverse_symtree (gfc_symtree *, void (*)(gfc_symtree *));void gfc_traverse_ns (gfc_namespace *, void (*)(gfc_symbol *));void gfc_traverse_user_op (gfc_namespace *, void (*)(gfc_user_op *));void gfc_save_all (gfc_namespace *);void gfc_symbol_state (void);gfc_gsymbol *gfc_get_gsymbol (const char *);gfc_gsymbol *gfc_find_gsymbol (gfc_gsymbol *, const char *);/* intrinsic.c */extern int gfc_init_expr;/* Given a symbol that we have decided is intrinsic, mark it as such by placing it into a special module that is otherwise impossible to read or write. */#define gfc_intrinsic_symbol(SYM) SYM->module = gfc_get_string ("(intrinsic)")void gfc_intrinsic_init_1 (void);void gfc_intrinsic_done_1 (void);char gfc_type_letter (bt);gfc_symbol * gfc_get_intrinsic_sub_symbol (const char *);try gfc_convert_type (gfc_expr *, gfc_typespec *, int);try gfc_convert_type_warn (gfc_expr *, gfc_typespec *, int, int);int gfc_generic_intrinsic (const char *);int gfc_specific_intrinsic (const char *);int gfc_intrinsic_name (const char *, int);gfc_intrinsic_sym *gfc_find_function (const char *);match gfc_intrinsic_func_interface (gfc_expr *, int);match gfc_intrinsic_sub_interface (gfc_code *, int);/* simplify.c */void gfc_simplify_init_1 (void);/* match.c -- FIXME */void gfc_free_iterator (gfc_iterator *, int);void gfc_free_forall_iterator (gfc_forall_iterator *);void gfc_free_alloc_list (gfc_alloc *);void gfc_free_namelist (gfc_namelist *);void gfc_free_equiv (gfc_equiv *);void gfc_free_data (gfc_data *);void gfc_free_case_list (gfc_case *);/* expr.c */void gfc_free_actual_arglist (gfc_actual_arglist *);gfc_actual_arglist *gfc_copy_actual_arglist (gfc_actual_arglist *);const char *gfc_extract_int (gfc_expr *, int *);gfc_expr *gfc_build_conversion (gfc_expr *);void gfc_free_ref_list (gfc_ref *);void gfc_type_convert_binary (gfc_expr *);int gfc_is_constant_expr (gfc_expr *);try gfc_simplify_expr (gfc_expr *, int);int gfc_has_vector_index (gfc_expr *);gfc_expr *gfc_get_expr (void);void gfc_free_expr (gfc_expr *);void gfc_replace_expr (gfc_expr *, gfc_expr *);gfc_expr *gfc_int_expr (int);gfc_expr *gfc_logical_expr (int, locus *);mpz_t *gfc_copy_shape (mpz_t *, int);mpz_t *gfc_copy_shape_excluding (mpz_t *, int, gfc_expr *);gfc_expr *gfc_copy_expr (gfc_expr *);try gfc_specification_expr (gfc_expr *);int gfc_numeric_ts (gfc_typespec *);int gfc_kind_max (gfc_expr *, gfc_expr *);try gfc_check_conformance (const char *, gfc_expr *, gfc_expr *);try gfc_check_assign (gfc_expr *, gfc_expr *, int);try gfc_check_pointer_assign (gfc_expr *, gfc_expr *);try gfc_check_assign_symbol (gfc_symbol *, gfc_expr *);gfc_expr *gfc_default_initializer (gfc_typespec *);gfc_expr *gfc_get_variable_expr (gfc_symtree *);void gfc_expr_set_symbols_referenced (gfc_expr * expr);/* st.c */extern gfc_code new_st;void gfc_clear_new_st (void);gfc_code *gfc_get_code (void);gfc_code *gfc_append_code (gfc_code *, gfc_code *);void gfc_free_statement (gfc_code *);void gfc_free_statements (gfc_code *);/* resolve.c */try gfc_resolve_expr (gfc_expr *);void gfc_resolve (gfc_namespace *);int gfc_impure_variable (gfc_symbol *);int gfc_pure (gfc_symbol *);int gfc_elemental (gfc_symbol *);try gfc_resolve_iterator (gfc_iterator *, bool);try gfc_resolve_index (gfc_expr *, int);try gfc_resolve_dim_arg (gfc_expr *);int gfc_is_formal_arg (void);/* array.c */void gfc_free_array_spec (gfc_array_spec *);gfc_array_ref *gfc_copy_array_ref (gfc_array_ref *);try gfc_set_array_spec (gfc_symbol *, gfc_array_spec *, locus *);gfc_array_spec *gfc_copy_array_spec (gfc_array_spec *);try gfc_resolve_array_spec (gfc_array_spec *, int);int gfc_compare_array_spec (gfc_array_spec *, gfc_array_spec *);gfc_expr *gfc_start_constructor (bt, int, locus *);void gfc_append_constructor (gfc_expr *, gfc_expr *);void gfc_free_constructor (gfc_constructor *);void gfc_simplify_iterator_var (gfc_expr *);try gfc_expand_constructor (gfc_expr *);int gfc_constant_ac (gfc_expr *);int gfc_expanded_ac (gfc_expr *);try gfc_resolve_array_constructor (gfc_expr *);try gfc_check_constructor_type (gfc_expr *);try gfc_check_iter_variable (gfc_expr *);try gfc_check_constructor (gfc_expr *, try (*)(gfc_expr *));gfc_constructor *gfc_copy_constructor (gfc_constructor * src);gfc_expr *gfc_get_array_element (gfc_expr *, int);try gfc_array_size (gfc_expr *, mpz_t *);try gfc_array_dimen_size (gfc_expr *, int, mpz_t *);try gfc_array_ref_shape (gfc_array_ref *, mpz_t *);gfc_array_ref *gfc_find_array_ref (gfc_expr *);void gfc_insert_constructor (gfc_expr *, gfc_constructor *);gfc_constructor *gfc_get_constructor (void);tree gfc_conv_array_initializer (tree type, gfc_expr * expr);try spec_size (gfc_array_spec *, mpz_t *);int gfc_is_compile_time_shape (gfc_array_spec *);/* interface.c -- FIXME: some of these should be in symbol.c */void gfc_free_interface (gfc_interface *);int gfc_compare_derived_types (gfc_symbol *, gfc_symbol *);int gfc_compare_types (gfc_typespec *, gfc_typespec *);void gfc_check_interfaces (gfc_namespace *);void gfc_procedure_use (gfc_symbol *, gfc_actual_arglist **, locus *);gfc_symbol *gfc_search_interface (gfc_interface *, int, gfc_actual_arglist **);try gfc_extend_expr (gfc_expr *);void gfc_free_formal_arglist (gfc_formal_arglist *);try gfc_extend_assign (gfc_code *, gfc_namespace *);try gfc_add_interface (gfc_symbol * sym);/* io.c */extern gfc_st_label format_asterisk;void gfc_free_open (gfc_open *);try gfc_resolve_open (gfc_open *);void gfc_free_close (gfc_close *);try gfc_resolve_close (gfc_close *);void gfc_free_filepos (gfc_filepos *);try gfc_resolve_filepos (gfc_filepos *);void gfc_free_inquire (gfc_inquire *);try gfc_resolve_inquire (gfc_inquire *);void gfc_free_dt (gfc_dt *);try gfc_resolve_dt (gfc_dt *);/* module.c */void gfc_module_init_2 (void);void gfc_module_done_2 (void);void gfc_dump_module (const char *, int);bool gfc_check_access (gfc_access, gfc_access);/* primary.c */symbol_attribute gfc_variable_attr (gfc_expr *, gfc_typespec *);symbol_attribute gfc_expr_attr (gfc_expr *);/* trans.c */void gfc_generate_code (gfc_namespace *);void gfc_generate_module_code (gfc_namespace *);/* bbt.c */typedef int (*compare_fn) (void *, void *);void gfc_insert_bbt (void *, void *, compare_fn);void gfc_delete_bbt (void *, void *, compare_fn);/* dump-parse-tree.c */void gfc_show_namespace (gfc_namespace *);/* parse.c */try gfc_parse_file (void);void global_used (gfc_gsymbol *, locus *);/* dependency.c */int gfc_dep_compare_expr (gfc_expr *, gfc_expr *);#endif /* GCC_GFORTRAN_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -