📄 info.h
字号:
/* info.h -- Public #include File (module.h template V1.0) Copyright (C) 1995 Free Software Foundation, Inc. Contributed by James Craig Burley.This file is part of GNU Fortran.GNU Fortran is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU Fortran is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Fortran; see the file COPYING. If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA02111-1307, USA. Owning Modules: info.c Modifications: 30-Aug-90 JCB 2.0 Extensive rewrite for new cleaner approach.*//* Allow multiple inclusion to work. */#ifndef _H_f_info#define _H_f_info/* Simple definitions and enumerations. */typedef enum {#define FFEINFO_BASICTYPE(KWD,LNAM,SNAM) KWD,#include "info-b.def"#undef FFEINFO_BASICTYPE FFEINFO_basictype } ffeinfoBasictype;typedef enum { /* If these kindtypes aren't in size order, change _kindtype_max. */ FFEINFO_kindtypeNONE, FFEINFO_kindtypeINTEGER1, FFEINFO_kindtypeINTEGER2, FFEINFO_kindtypeINTEGER3, FFEINFO_kindtypeINTEGER4, FFEINFO_kindtypeINTEGER5, FFEINFO_kindtypeINTEGER6, FFEINFO_kindtypeINTEGER7, FFEINFO_kindtypeINTEGER8, FFEINFO_kindtypeLOGICAL1 = 1, /* Ok to omit, but ok to overlap. */ FFEINFO_kindtypeLOGICAL2, FFEINFO_kindtypeLOGICAL3, FFEINFO_kindtypeLOGICAL4, FFEINFO_kindtypeLOGICAL5, FFEINFO_kindtypeLOGICAL6, FFEINFO_kindtypeLOGICAL7, FFEINFO_kindtypeLOGICAL8, FFEINFO_kindtypeREAL1 = 1, /* Ok to omit, but ok to overlap. */ FFEINFO_kindtypeREAL2, FFEINFO_kindtypeREAL3, FFEINFO_kindtypeREAL4, FFEINFO_kindtypeREAL5, FFEINFO_kindtypeREAL6, FFEINFO_kindtypeREAL7, FFEINFO_kindtypeREAL8, FFEINFO_kindtypeCHARACTER1 = 1, /* Ok to omit, but ok to overlap. */ FFEINFO_kindtypeCHARACTER2, FFEINFO_kindtypeCHARACTER3, FFEINFO_kindtypeCHARACTER4, FFEINFO_kindtypeCHARACTER5, FFEINFO_kindtypeCHARACTER6, FFEINFO_kindtypeCHARACTER7, FFEINFO_kindtypeCHARACTER8, FFEINFO_kindtypeANY, FFEINFO_kindtype } ffeinfoKindtype;typedef enum {#define FFEINFO_KIND(KWD,LNAM,SNAM) KWD,#include "info-k.def"#undef FFEINFO_KIND FFEINFO_kind } ffeinfoKind;typedef enum {#define FFEINFO_WHERE(KWD,LNAM,SNAM) KWD,#include "info-w.def"#undef FFEINFO_WHERE FFEINFO_where } ffeinfoWhere;/* Typedefs. */typedef struct _ffeinfo_ ffeinfo;typedef char ffeinfoRank;/* Include files needed by this one. */#include "target.h"#include "type.h"/* Structure definitions. */struct _ffeinfo_ { ffeinfoBasictype basictype; ffeinfoKindtype kindtype; ffeinfoRank rank; ffeinfoKind kind; ffeinfoWhere where; ffetargetCharacterSize size; };/* Global objects accessed by users of this module. *//* Declare functions with prototypes. */ffeinfoBasictype ffeinfo_basictype_combine (ffeinfoBasictype l, ffeinfoBasictype r);const char *ffeinfo_basictype_string (ffeinfoBasictype basictype);void ffeinfo_init_0 (void);const char *ffeinfo_kind_message (ffeinfoKind kind);const char *ffeinfo_kind_string (ffeinfoKind kind);ffeinfoKindtype ffeinfo_kindtype_max(ffeinfoBasictype bt, ffeinfoKindtype k1, ffeinfoKindtype k2);const char *ffeinfo_kindtype_string (ffeinfoKindtype kind_type);const char *ffeinfo_where_string (ffeinfoWhere where);ffeinfo ffeinfo_new (ffeinfoBasictype basictype, ffeinfoKindtype kindtype, ffeinfoRank rank, ffeinfoKind kind, ffeinfoWhere where, ffetargetCharacterSize size);void ffeinfo_set_type (ffeinfoBasictype basictype, ffeinfoKindtype kindtype, ffetype type);ffetype ffeinfo_type (ffeinfoBasictype basictype, ffeinfoKindtype kindtype);/* Define macros. */#define ffeinfo_basictype(i) (i.basictype)#define ffeinfo_init_1()#define ffeinfo_init_2()#define ffeinfo_init_3()#define ffeinfo_init_4()#define ffeinfo_kind(i) (i.kind)#define ffeinfo_kindtype(i) (i.kindtype)#ifdef __GNUC__#define ffeinfo_new(bt,kt,r,k,w,sz) \ ((ffeinfo) {(bt), (kt), (r), (k), (w), (sz)})#endif#define ffeinfo_new_any() \ ffeinfo_new (FFEINFO_basictypeANY, FFEINFO_kindtypeANY, 0, \ FFEINFO_kindANY, FFEINFO_whereANY, \ FFETARGET_charactersizeNONE)#define ffeinfo_new_null() \ ffeinfo_new (FFEINFO_basictypeNONE, FFEINFO_kindtypeNONE, 0, \ FFEINFO_kindNONE, FFEINFO_whereNONE, \ FFETARGET_charactersizeNONE)#define ffeinfo_rank(i) (i.rank)#define ffeinfo_size(i) (i.size)#define ffeinfo_terminate_0()#define ffeinfo_terminate_1()#define ffeinfo_terminate_2()#define ffeinfo_terminate_3()#define ffeinfo_terminate_4()#define ffeinfo_use(i) i#define ffeinfo_where(i) (i.where)#define FFEINFO_kindtypeINTEGERDEFAULT FFEINFO_kindtypeINTEGER1#define FFEINFO_kindtypeLOGICALDEFAULT FFEINFO_kindtypeLOGICAL1#define FFEINFO_kindtypeREALDEFAULT FFEINFO_kindtypeREAL1#define FFEINFO_kindtypeREALDOUBLE FFEINFO_kindtypeREAL2#define FFEINFO_kindtypeREALQUAD FFEINFO_kindtypeREAL3#define FFEINFO_kindtypeCHARACTERDEFAULT FFEINFO_kindtypeCHARACTER1/* End of #include file. */#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -