geany  1.38
About: Geany is a text editor (using GTK2) with basic features of an integrated development environment (syntax highlighting, code folding, symbol name auto-completion, ...). F: office T: editor programming GTK+ IDE
  Fossies Dox: geany-1.38.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

geany_fortran.c File Reference
#include "general.h"
#include <string.h>
#include <limits.h>
#include <ctype.h>
#include <setjmp.h>
#include "debug.h"
#include "mio.h"
#include "entry.h"
#include "keyword.h"
#include "options.h"
#include "parse.h"
#include "read.h"
#include "routines.h"
#include "vstring.h"
#include "xtag.h"
Include dependency graph for geany_fortran.c:

Go to the source code of this file.

Classes

struct  sTokenInfo
 

Macros

#define isident(c)   (isalnum(c) || (c) == '_')
 
#define isBlank(c)   (bool) (c == ' ' || c == '\t')
 
#define isType(token, t)   (bool) ((token)->type == (t))
 
#define isKeyword(token, k)   (bool) ((token)->keyword == (k))
 
#define isSecondaryKeyword(token, k)
 
#define ancestorCount()   (Ancestors.count)
 

Typedefs

typedef enum eException exception_t
 
typedef enum eFortranLineType lineType
 
typedef int keywordId
 
typedef enum eTokenType tokenType
 
typedef enum eTagType tagType
 
typedef struct sTokenInfo tokenInfo
 

Enumerations

enum  eException {
  ExceptionNone , ExceptionEOF , ExceptionFormattingError , ExceptionBraceFormattingError ,
  ExceptionNone , ExceptionEOF , ExceptionFixedFormat , ExceptionLoop ,
  ExceptionNone , ExceptionEOF , ExceptionNone , ExceptionEOF ,
  ExceptionNone , ExceptionEOF
}
 
enum  eFortranLineType {
  LTYPE_UNDETERMINED , LTYPE_INVALID , LTYPE_COMMENT , LTYPE_CONTINUATION ,
  LTYPE_EOF , LTYPE_INITIAL , LTYPE_SHORT
}
 
enum  eKeywordId {
  KEYWORD_article , KEYWORD_book , KEYWORD_booklet , KEYWORD_conference ,
  KEYWORD_inbook , KEYWORD_incollection , KEYWORD_inproceedings , KEYWORD_manual ,
  KEYWORD_mastersthesis , KEYWORD_misc , KEYWORD_phdthesis , KEYWORD_proceedings ,
  KEYWORD_string , KEYWORD_techreport , KEYWORD_unpublished , KEYWORD_ATTRIBUTE ,
  KEYWORD_ABSTRACT , KEYWORD_ALIAS , KEYWORD_BOOLEAN , KEYWORD_BYTE ,
  KEYWORD_BAD_STATE , KEYWORD_BAD_TRANS , KEYWORD_BIND , KEYWORD_BIND_VAR ,
  KEYWORD_BIT , KEYWORD_BODY , KEYWORD_CASE , KEYWORD_CATCH ,
  KEYWORD_CHAR , KEYWORD_CLASS , KEYWORD_CONST , KEYWORD_CONSTRAINT ,
  KEYWORD_COVERAGE_BLOCK , KEYWORD_COVERAGE_DEF , KEYWORD_DEFAULT , KEYWORD_DELEGATE ,
  KEYWORD_DELETE , KEYWORD_DO , KEYWORD_DOUBLE , KEYWORD_ELSE ,
  KEYWORD_ENUM , KEYWORD_EXPLICIT , KEYWORD_EXTERN , KEYWORD_EXTENDS ,
  KEYWORD_EVENT , KEYWORD_FINAL , KEYWORD_FINALLY , KEYWORD_FLOAT ,
  KEYWORD_FOR , KEYWORD_FRIEND , KEYWORD_FUNCTION , KEYWORD_GET ,
  KEYWORD_GOTO , KEYWORD_IF , KEYWORD_IMPLEMENTS , KEYWORD_IMPORT ,
  KEYWORD_IN , KEYWORD_INLINE , KEYWORD_INT , KEYWORD_INOUT ,
  KEYWORD_INPUT , KEYWORD_INTEGER , KEYWORD_INTERFACE , KEYWORD_INTERNAL ,
  KEYWORD_LOCAL , KEYWORD_LONG , KEYWORD_M_BAD_STATE , KEYWORD_M_BAD_TRANS ,
  KEYWORD_M_STATE , KEYWORD_M_TRANS , KEYWORD_MODULE , KEYWORD_MUTABLE ,
  KEYWORD_NAMESPACE , KEYWORD_NEW , KEYWORD_NEWCOV , KEYWORD_NATIVE ,
  KEYWORD_NOEXCEPT , KEYWORD_OPERATOR , KEYWORD_OUT , KEYWORD_OUTPUT ,
  KEYWORD_OVERLOAD , KEYWORD_OVERRIDE , KEYWORD_PACKED , KEYWORD_PORT ,
  KEYWORD_PACKAGE , KEYWORD_PRIVATE , KEYWORD_PROGRAM , KEYWORD_PROTECTED ,
  KEYWORD_PUBLIC , KEYWORD_REF , KEYWORD_REGISTER , KEYWORD_RETURN ,
  KEYWORD_SHADOW , KEYWORD_STATE , KEYWORD_SET , KEYWORD_SHORT ,
  KEYWORD_SIGNAL , KEYWORD_SIGNED , KEYWORD_SIZE_T , KEYWORD_STATIC ,
  KEYWORD_STATIC_ASSERT , KEYWORD_STRING , KEYWORD_STRUCT , KEYWORD_SWITCH ,
  KEYWORD_SYNCHRONIZED , KEYWORD_TASK , KEYWORD_TEMPLATE , KEYWORD_THIS ,
  KEYWORD_THROW , KEYWORD_THROWS , KEYWORD_TRANSIENT , KEYWORD_TRANS ,
  KEYWORD_TRANSITION , KEYWORD_TRY , KEYWORD_TYPEDEF , KEYWORD_TYPENAME ,
  KEYWORD_UINT , KEYWORD_ULONG , KEYWORD_UNION , KEYWORD_UNSIGNED ,
  KEYWORD_USHORT , KEYWORD_USING , KEYWORD_VIRTUAL , KEYWORD_VOID ,
  KEYWORD_VOLATILE , KEYWORD_WCHAR_T , KEYWORD_WEAK , KEYWORD_WHILE ,
  KEYWORD_function , KEYWORD_capital_function , KEYWORD_object , KEYWORD_capital_object ,
  KEYWORD_prototype , KEYWORD_var , KEYWORD_const , KEYWORD_new ,
  KEYWORD_this , KEYWORD_for , KEYWORD_while , KEYWORD_do ,
  KEYWORD_if , KEYWORD_else , KEYWORD_switch , KEYWORD_try ,
  KEYWORD_catch , KEYWORD_finally , KEYWORD_return , KEYWORD_public ,
  KEYWORD_private , KEYWORD_protected , KEYWORD_internal , KEYWORD_final ,
  KEYWORD_native , KEYWORD_dynamic , KEYWORD_class , KEYWORD_interface ,
  KEYWORD_package , KEYWORD_extends , KEYWORD_static , KEYWORD_implements ,
  KEYWORD_get , KEYWORD_set , KEYWORD_import , KEYWORD_id ,
  KEYWORD_name , KEYWORD_script , KEYWORD_cdata , KEYWORD_mx ,
  KEYWORD_fx , KEYWORD_override , KEYWORD_allocatable , KEYWORD_assignment ,
  KEYWORD_associate , KEYWORD_automatic , KEYWORD_bind , KEYWORD_block ,
  KEYWORD_byte , KEYWORD_cexternal , KEYWORD_cglobal , KEYWORD_character ,
  KEYWORD_codimension , KEYWORD_common , KEYWORD_complex , KEYWORD_contains ,
  KEYWORD_data , KEYWORD_dimension , KEYWORD_dllexport , KEYWORD_dllimport ,
  KEYWORD_do , KEYWORD_double , KEYWORD_elemental , KEYWORD_end ,
  KEYWORD_entry , KEYWORD_enum , KEYWORD_enumerator , KEYWORD_equivalence ,
  KEYWORD_extends , KEYWORD_external , KEYWORD_forall , KEYWORD_format ,
  KEYWORD_function , KEYWORD_if , KEYWORD_implicit , KEYWORD_include ,
  KEYWORD_inline , KEYWORD_integer , KEYWORD_intent , KEYWORD_interface ,
  KEYWORD_intrinsic , KEYWORD_kind , KEYWORD_len , KEYWORD_logical ,
  KEYWORD_map , KEYWORD_module , KEYWORD_namelist , KEYWORD_operator ,
  KEYWORD_optional , KEYWORD_parameter , KEYWORD_pascal , KEYWORD_pexternal ,
  KEYWORD_pglobal , KEYWORD_pointer , KEYWORD_precision , KEYWORD_private ,
  KEYWORD_procedure , KEYWORD_program , KEYWORD_public , KEYWORD_pure ,
  KEYWORD_real , KEYWORD_record , KEYWORD_recursive , KEYWORD_save ,
  KEYWORD_select , KEYWORD_sequence , KEYWORD_static , KEYWORD_stdcall ,
  KEYWORD_structure , KEYWORD_subroutine , KEYWORD_target , KEYWORD_then ,
  KEYWORD_type , KEYWORD_union , KEYWORD_use , KEYWORD_value ,
  KEYWORD_virtual , KEYWORD_volatile , KEYWORD_where , KEYWORD_while ,
  KEYWORD_package , KEYWORD_import , KEYWORD_const , KEYWORD_type ,
  KEYWORD_var , KEYWORD_func , KEYWORD_struct , KEYWORD_interface ,
  KEYWORD_map , KEYWORD_chan , KEYWORD_function , KEYWORD_capital_function ,
  KEYWORD_capital_object , KEYWORD_prototype , KEYWORD_var , KEYWORD_let ,
  KEYWORD_const , KEYWORD_new , KEYWORD_this , KEYWORD_for ,
  KEYWORD_while , KEYWORD_do , KEYWORD_if , KEYWORD_else ,
  KEYWORD_switch , KEYWORD_try , KEYWORD_catch , KEYWORD_finally ,
  KEYWORD_sap , KEYWORD_return , KEYWORD_class , KEYWORD_extends ,
  KEYWORD_static , KEYWORD_default , KEYWORD_export , KEYWORD_async ,
  KEYWORD_is , KEYWORD_begin , KEYWORD_body , KEYWORD_cursor ,
  KEYWORD_declare , KEYWORD_end , KEYWORD_function , KEYWORD_if ,
  KEYWORD_else , KEYWORD_elseif , KEYWORD_endif , KEYWORD_loop ,
  KEYWORD_while , KEYWORD_case , KEYWORD_for , KEYWORD_do ,
  KEYWORD_call , KEYWORD_package , KEYWORD_pragma , KEYWORD_procedure ,
  KEYWORD_record , KEYWORD_object , KEYWORD_ref , KEYWORD_rem ,
  KEYWORD_return , KEYWORD_returns , KEYWORD_subtype , KEYWORD_table ,
  KEYWORD_trigger , KEYWORD_type , KEYWORD_index , KEYWORD_event ,
  KEYWORD_publication , KEYWORD_service , KEYWORD_domain , KEYWORD_datatype ,
  KEYWORD_result , KEYWORD_url , KEYWORD_internal , KEYWORD_external ,
  KEYWORD_when , KEYWORD_then , KEYWORD_variable , KEYWORD_exception ,
  KEYWORD_at , KEYWORD_on , KEYWORD_primary , KEYWORD_references ,
  KEYWORD_unique , KEYWORD_check , KEYWORD_constraint , KEYWORD_foreign ,
  KEYWORD_ml_table , KEYWORD_ml_table_lang , KEYWORD_ml_table_dnet , KEYWORD_ml_table_java ,
  KEYWORD_ml_table_chk , KEYWORD_ml_conn , KEYWORD_ml_conn_lang , KEYWORD_ml_conn_dnet ,
  KEYWORD_ml_conn_java , KEYWORD_ml_conn_chk , KEYWORD_ml_prop , KEYWORD_local ,
  KEYWORD_temporary , KEYWORD_drop , KEYWORD_view , KEYWORD_synonym ,
  KEYWORD_handler , KEYWORD_comment , KEYWORD_create , KEYWORD_go
}
 
enum  eTokenType {
  TOKEN_OPEN_CURLY = '{' , TOKEN_UNDEFINED = 256 , TOKEN_KEYWORD , TOKEN_IDENTIFIER ,
  TOKEN_NONE , TOKEN_ARGS , TOKEN_BRACE_CLOSE , TOKEN_BRACE_OPEN ,
  TOKEN_COMMA , TOKEN_DOUBLE_COLON , TOKEN_KEYWORD , TOKEN_NAME ,
  TOKEN_PACKAGE , TOKEN_PAREN_NAME , TOKEN_SEMICOLON , TOKEN_SPEC ,
  TOKEN_STAR , TOKEN_ARRAY , TOKEN_COUNT , TOKEN_UNDEFINED ,
  TOKEN_EOF , TOKEN_CHARACTER , TOKEN_CLOSE_PAREN , TOKEN_SEMICOLON ,
  TOKEN_COLON , TOKEN_COMMA , TOKEN_KEYWORD , TOKEN_OPEN_PAREN ,
  TOKEN_IDENTIFIER , TOKEN_STRING , TOKEN_PERIOD , TOKEN_OPEN_CURLY ,
  TOKEN_CLOSE_CURLY , TOKEN_EQUAL_SIGN , TOKEN_EXCLAMATION , TOKEN_FORWARD_SLASH ,
  TOKEN_OPEN_SQUARE , TOKEN_CLOSE_SQUARE , TOKEN_OPEN_MXML , TOKEN_CLOSE_MXML ,
  TOKEN_CLOSE_SGML , TOKEN_LESS_THAN , TOKEN_GREATER_THAN , TOKEN_QUESTION_MARK ,
  TOKEN_OPEN_NAMESPACE , TOKEN_POSTFIX_OPERATOR , TOKEN_STAR , TOKEN_BINARY_OPERATOR ,
  TOKEN_UNDEFINED , TOKEN_COMMA , TOKEN_DOUBLE_COLON , TOKEN_IDENTIFIER ,
  TOKEN_KEYWORD , TOKEN_LABEL , TOKEN_NUMERIC , TOKEN_OPERATOR ,
  TOKEN_PAREN_CLOSE , TOKEN_PAREN_OPEN , TOKEN_SQUARE_CLOSE , TOKEN_SQUARE_OPEN ,
  TOKEN_PERCENT , TOKEN_STATEMENT_END , TOKEN_STRING , TOKEN_NONE = -1 ,
  TOKEN_OTHER , TOKEN_KEYWORD , TOKEN_IDENTIFIER , TOKEN_STRING ,
  TOKEN_OPEN_PAREN , TOKEN_CLOSE_PAREN , TOKEN_OPEN_CURLY , TOKEN_CLOSE_CURLY ,
  TOKEN_OPEN_SQUARE , TOKEN_CLOSE_SQUARE , TOKEN_SEMICOLON , TOKEN_STAR ,
  TOKEN_LEFT_ARROW , TOKEN_DOT , TOKEN_COMMA , TOKEN_EOF ,
  TOKEN_UNDEFINED , TOKEN_EOF , TOKEN_CHARACTER , TOKEN_CLOSE_PAREN ,
  TOKEN_SEMICOLON , TOKEN_COLON , TOKEN_COMMA , TOKEN_KEYWORD ,
  TOKEN_OPEN_PAREN , TOKEN_IDENTIFIER , TOKEN_STRING , TOKEN_TEMPLATE_STRING ,
  TOKEN_PERIOD , TOKEN_OPEN_CURLY , TOKEN_CLOSE_CURLY , TOKEN_EQUAL_SIGN ,
  TOKEN_OPEN_SQUARE , TOKEN_CLOSE_SQUARE , TOKEN_REGEXP , TOKEN_POSTFIX_OPERATOR ,
  TOKEN_STAR , TOKEN_BINARY_OPERATOR , TOKEN_UNDEFINED , TOKEN_EOF ,
  TOKEN_CHARACTER , TOKEN_CLOSE_PAREN , TOKEN_SEMICOLON , TOKEN_COLON ,
  TOKEN_COMMA , TOKEN_KEYWORD , TOKEN_OPEN_PAREN , TOKEN_OPERATOR ,
  TOKEN_IDENTIFIER , TOKEN_STRING , TOKEN_PERIOD , TOKEN_OPEN_CURLY ,
  TOKEN_CLOSE_CURLY , TOKEN_EQUAL_SIGN , TOKEN_OPEN_SQUARE , TOKEN_CLOSE_SQUARE ,
  TOKEN_VARIABLE , TOKEN_AMPERSAND , TOKEN_UNDEFINED , TOKEN_EOF ,
  TOKEN_CLOSE_PAREN , TOKEN_SEMICOLON , TOKEN_COLON , TOKEN_COMMA ,
  TOKEN_KEYWORD , TOKEN_OPEN_PAREN , TOKEN_OPERATOR , TOKEN_IDENTIFIER ,
  TOKEN_STRING , TOKEN_PERIOD , TOKEN_OPEN_CURLY , TOKEN_CLOSE_CURLY ,
  TOKEN_EQUAL_SIGN , TOKEN_OPEN_SQUARE , TOKEN_CLOSE_SQUARE , TOKEN_VARIABLE ,
  TOKEN_UNDEFINED , TOKEN_BLOCK_LABEL_BEGIN , TOKEN_BLOCK_LABEL_END , TOKEN_CHARACTER ,
  TOKEN_CLOSE_PAREN , TOKEN_COLON , TOKEN_SEMICOLON , TOKEN_COMMA ,
  TOKEN_IDENTIFIER , TOKEN_KEYWORD , TOKEN_OPEN_PAREN , TOKEN_OPERATOR ,
  TOKEN_OTHER , TOKEN_STRING , TOKEN_PERIOD , TOKEN_OPEN_CURLY ,
  TOKEN_CLOSE_CURLY , TOKEN_OPEN_SQUARE , TOKEN_CLOSE_SQUARE , TOKEN_TILDE ,
  TOKEN_FORWARD_SLASH , TOKEN_EQUAL
}
 
enum  eTagType {
  TAG_UNDEFINED , TAG_CLASS , TAG_ENUM , TAG_ENUMERATOR ,
  TAG_FIELD , TAG_FUNCTION , TAG_INTERFACE , TAG_MEMBER ,
  TAG_METHOD , TAG_NAMESPACE , TAG_PACKAGE , TAG_PROTOTYPE ,
  TAG_STRUCT , TAG_TYPEDEF , TAG_UNION , TAG_VARIABLE ,
  TAG_EXTERN_VAR , TAG_MACRO , TAG_EVENT , TAG_SIGNAL ,
  TAG_LOCAL , TAG_PROPERTY , TAG_COUNT , TAG_UNDEFINED = -1 ,
  TAG_BLOCK_DATA , TAG_COMMON_BLOCK , TAG_ENTRY_POINT , TAG_FUNCTION ,
  TAG_INTERFACE , TAG_COMPONENT , TAG_LABEL , TAG_LOCAL ,
  TAG_MODULE , TAG_NAMELIST , TAG_PROGRAM , TAG_SUBROUTINE ,
  TAG_DERIVED_TYPE , TAG_VARIABLE , TAG_ENUM , TAG_ENUMERATOR ,
  TAG_COUNT
}
 

Functions

static void parseStructureStmt (tokenInfo *const token)
 
static void parseUnionStmt (tokenInfo *const token)
 
static void parseDerivedTypeDef (tokenInfo *const token)
 
static void parseFunctionSubprogram (tokenInfo *const token)
 
static void parseSubroutineSubprogram (tokenInfo *const token)
 
static void ancestorPush (tokenInfo *const token)
 
static void ancestorPop (void)
 
static const tokenInfoancestorScope (void)
 
static const tokenInfoancestorTop (void)
 
static void ancestorClear (void)
 
static bool insideInterface (void)
 
static tokenInfonewToken (void)
 
static tokenInfonewTokenFrom (tokenInfo *const token)
 
static tokenInfonewAnonTokenFrom (tokenInfo *const token, const char *type)
 
static void deleteToken (tokenInfo *const token)
 
static bool isFileScope (const tagType type)
 
static bool includeTag (const tagType type)
 
static void makeFortranTag (tokenInfo *const token, tagType tag)
 
static int skipLine (void)
 
static void makeLabelTag (vString *const label)
 
static lineType getLineType (void)
 
static int getFixedFormChar (void)
 
static int skipToNextLine (void)
 
static int getFreeFormChar (bool inComment)
 
static int getChar (void)
 
static void ungetChar (const int c)
 
static vStringparseInteger (int c)
 
static vStringparseNumeric (int c)
 
static void parseString (vString *const string, const int delimiter)
 
static void parseIdentifier (vString *const string, const int firstChar)
 
static void checkForLabel (void)
 
static keywordId analyzeToken (vString *const name, langType language)
 
static void readIdentifier (tokenInfo *const token, const int c)
 
static void readToken (tokenInfo *const token)
 
static void readSubToken (tokenInfo *const token)
 
static void skipToToken (tokenInfo *const token, tokenType type)
 
static void skipPast (tokenInfo *const token, tokenType type)
 
static void skipToNextStatement (tokenInfo *const token)
 
static void skipOverPair (tokenInfo *const token, tokenType topen, tokenType tclose)
 
static void skipOverParens (tokenInfo *const token)
 
static void skipOverSquares (tokenInfo *const token)
 
static bool isTypeSpec (tokenInfo *const token)
 
static bool isSubprogramPrefix (tokenInfo *const token)
 
static void parseKindSelector (tokenInfo *const token)
 
static void parseTypeSpec (tokenInfo *const token)
 
static bool skipStatementIfKeyword (tokenInfo *const token, keywordId keyword)
 
static void parseQualifierSpecList (tokenInfo *const token)
 
static tagType variableTagType (void)
 
static void parseEntityDecl (tokenInfo *const token)
 
static void parseEntityDeclList (tokenInfo *const token)
 
static void parseTypeDeclarationStmt (tokenInfo *const token)
 
static void parseCommonNamelistStmt (tokenInfo *const token, tagType type)
 
static void parseFieldDefinition (tokenInfo *const token)
 
static void parseMap (tokenInfo *const token)
 
static bool parseSpecificationStmt (tokenInfo *const token)
 
static void parseComponentDefStmt (tokenInfo *const token)
 
static void parseInterfaceBlock (tokenInfo *const token)
 
static void parseEnumBlock (tokenInfo *const token)
 
static void parseEntryStmt (tokenInfo *const token)
 
static bool parseStmtFunctionStmt (tokenInfo *const token)
 
static bool isIgnoredDeclaration (tokenInfo *const token)
 
static bool parseDeclarationConstruct (tokenInfo *const token)
 
static bool parseImplicitPartStmt (tokenInfo *const token)
 
static bool parseSpecificationPart (tokenInfo *const token)
 
static void parseBlockData (tokenInfo *const token)
 
static void parseInternalSubprogramPart (tokenInfo *const token)
 
static void parseModule (tokenInfo *const token)
 
static bool parseExecutionPart (tokenInfo *const token)
 
static void parseSubprogram (tokenInfo *const token, const tagType tag)
 
static void parseMainProgram (tokenInfo *const token)
 
static void parseProgramUnit (tokenInfo *const token)
 
static rescanReason findFortranTags (const unsigned int passCount)
 
static void initializeFortran (const langType language)
 
static void initializeF77 (const langType language)
 
parserDefinitionFortranParser (void)
 
parserDefinitionF77Parser (void)
 

Variables

static langType Lang_fortran
 
static langType Lang_f77
 
static jmp_buf Exception
 
static int Ungetc = '\0'
 
static unsigned int Column = 0
 
static bool FreeSourceForm = false
 
static bool ParsingString
 
static tokenInfoParent = NULL
 
static bool NewLine = true
 
static unsigned int contextual_fake_count = 0
 
static kindDefinition FortranKinds [TAG_COUNT]
 
static const keywordTable FortranKeywordTable []
 
struct {
   unsigned int   count
 
   unsigned int   max
 
   tokenInfo *   list
 
Ancestors = { 0, 0, NULL }
 

Macro Definition Documentation

◆ ancestorCount

#define ancestorCount ( )    (Ancestors.count)

Definition at line 393 of file geany_fortran.c.

◆ isBlank

#define isBlank (   c)    (bool) (c == ' ' || c == '\t')

Definition at line 36 of file geany_fortran.c.

◆ isident

#define isident (   c)    (isalnum(c) || (c) == '_')

Definition at line 35 of file geany_fortran.c.

◆ isKeyword

#define isKeyword (   token,
 
)    (bool) ((token)->keyword == (k))

Definition at line 38 of file geany_fortran.c.

◆ isSecondaryKeyword

#define isSecondaryKeyword (   token,
 
)
Value:
(bool) ((token)->secondary == NULL ? \
false : (token)->secondary->keyword == (k))
#define NULL
Definition: rbtree.h:150

Definition at line 39 of file geany_fortran.c.

◆ isType

#define isType (   token,
 
)    (bool) ((token)->type == (t))

Definition at line 37 of file geany_fortran.c.

Typedef Documentation

◆ exception_t

typedef enum eException exception_t

◆ keywordId

typedef int keywordId

Definition at line 144 of file geany_fortran.c.

◆ lineType

typedef enum eFortranLineType lineType

◆ tagType

typedef enum eTagType tagType

◆ tokenInfo

typedef struct sTokenInfo tokenInfo

◆ tokenType

typedef enum eTokenType tokenType

Enumeration Type Documentation

◆ eException

enum eException
Enumerator
ExceptionNone 
ExceptionEOF 
ExceptionFormattingError 
ExceptionBraceFormattingError 
ExceptionNone 
ExceptionEOF 
ExceptionFixedFormat 
ExceptionLoop 
ExceptionNone 
ExceptionEOF 
ExceptionNone 
ExceptionEOF 
ExceptionNone 
ExceptionEOF 

Definition at line 46 of file geany_fortran.c.

◆ eFortranLineType

Enumerator
LTYPE_UNDETERMINED 
LTYPE_INVALID 
LTYPE_COMMENT 
LTYPE_CONTINUATION 
LTYPE_EOF 
LTYPE_INITIAL 
LTYPE_SHORT 

Definition at line 52 of file geany_fortran.c.

◆ eKeywordId

enum eKeywordId
Enumerator
KEYWORD_article 
KEYWORD_book 
KEYWORD_booklet 
KEYWORD_conference 
KEYWORD_inbook 
KEYWORD_incollection 
KEYWORD_inproceedings 
KEYWORD_manual 
KEYWORD_mastersthesis 
KEYWORD_misc 
KEYWORD_phdthesis 
KEYWORD_proceedings 
KEYWORD_string 
KEYWORD_techreport 
KEYWORD_unpublished 
KEYWORD_ATTRIBUTE 
KEYWORD_ABSTRACT 
KEYWORD_ALIAS 
KEYWORD_BOOLEAN 
KEYWORD_BYTE 
KEYWORD_BAD_STATE 
KEYWORD_BAD_TRANS 
KEYWORD_BIND 
KEYWORD_BIND_VAR 
KEYWORD_BIT 
KEYWORD_BODY 
KEYWORD_CASE 
KEYWORD_CATCH 
KEYWORD_CHAR 
KEYWORD_CLASS 
KEYWORD_CONST 
KEYWORD_CONSTRAINT 
KEYWORD_COVERAGE_BLOCK 
KEYWORD_COVERAGE_DEF 
KEYWORD_DEFAULT 
KEYWORD_DELEGATE 
KEYWORD_DELETE 
KEYWORD_DO 
KEYWORD_DOUBLE 
KEYWORD_ELSE 
KEYWORD_ENUM 
KEYWORD_EXPLICIT 
KEYWORD_EXTERN 
KEYWORD_EXTENDS 
KEYWORD_EVENT 
KEYWORD_FINAL 
KEYWORD_FINALLY 
KEYWORD_FLOAT 
KEYWORD_FOR 
KEYWORD_FRIEND 
KEYWORD_FUNCTION 
KEYWORD_GET 
KEYWORD_GOTO 
KEYWORD_IF 
KEYWORD_IMPLEMENTS 
KEYWORD_IMPORT 
KEYWORD_IN 
KEYWORD_INLINE 
KEYWORD_INT 
KEYWORD_INOUT 
KEYWORD_INPUT 
KEYWORD_INTEGER 
KEYWORD_INTERFACE 
KEYWORD_INTERNAL 
KEYWORD_LOCAL 
KEYWORD_LONG 
KEYWORD_M_BAD_STATE 
KEYWORD_M_BAD_TRANS 
KEYWORD_M_STATE 
KEYWORD_M_TRANS 
KEYWORD_MODULE 
KEYWORD_MUTABLE 
KEYWORD_NAMESPACE 
KEYWORD_NEW 
KEYWORD_NEWCOV 
KEYWORD_NATIVE 
KEYWORD_NOEXCEPT 
KEYWORD_OPERATOR 
KEYWORD_OUT 
KEYWORD_OUTPUT 
KEYWORD_OVERLOAD 
KEYWORD_OVERRIDE 
KEYWORD_PACKED 
KEYWORD_PORT 
KEYWORD_PACKAGE 
KEYWORD_PRIVATE 
KEYWORD_PROGRAM 
KEYWORD_PROTECTED 
KEYWORD_PUBLIC 
KEYWORD_REF 
KEYWORD_REGISTER 
KEYWORD_RETURN 
KEYWORD_SHADOW 
KEYWORD_STATE 
KEYWORD_SET 
KEYWORD_SHORT 
KEYWORD_SIGNAL 
KEYWORD_SIGNED 
KEYWORD_SIZE_T 
KEYWORD_STATIC 
KEYWORD_STATIC_ASSERT 
KEYWORD_STRING 
KEYWORD_STRUCT 
KEYWORD_SWITCH 
KEYWORD_SYNCHRONIZED 
KEYWORD_TASK 
KEYWORD_TEMPLATE 
KEYWORD_THIS 
KEYWORD_THROW 
KEYWORD_THROWS 
KEYWORD_TRANSIENT 
KEYWORD_TRANS 
KEYWORD_TRANSITION 
KEYWORD_TRY 
KEYWORD_TYPEDEF 
KEYWORD_TYPENAME 
KEYWORD_UINT 
KEYWORD_ULONG 
KEYWORD_UNION 
KEYWORD_UNSIGNED 
KEYWORD_USHORT 
KEYWORD_USING 
KEYWORD_VIRTUAL 
KEYWORD_VOID 
KEYWORD_VOLATILE 
KEYWORD_WCHAR_T 
KEYWORD_WEAK 
KEYWORD_WHILE 
KEYWORD_function 
KEYWORD_capital_function 
KEYWORD_object 
KEYWORD_capital_object 
KEYWORD_prototype 
KEYWORD_var 
KEYWORD_const 
KEYWORD_new 
KEYWORD_this 
KEYWORD_for 
KEYWORD_while 
KEYWORD_do 
KEYWORD_if 
KEYWORD_else 
KEYWORD_switch 
KEYWORD_try 
KEYWORD_catch 
KEYWORD_finally 
KEYWORD_return 
KEYWORD_public 
KEYWORD_private 
KEYWORD_protected 
KEYWORD_internal 
KEYWORD_final 
KEYWORD_native 
KEYWORD_dynamic 
KEYWORD_class 
KEYWORD_interface 
KEYWORD_package 
KEYWORD_extends 
KEYWORD_static 
KEYWORD_implements 
KEYWORD_get 
KEYWORD_set 
KEYWORD_import 
KEYWORD_id 
KEYWORD_name 
KEYWORD_script 
KEYWORD_cdata 
KEYWORD_mx 
KEYWORD_fx 
KEYWORD_override 
KEYWORD_allocatable 
KEYWORD_assignment 
KEYWORD_associate 
KEYWORD_automatic 
KEYWORD_bind 
KEYWORD_block 
KEYWORD_byte 
KEYWORD_cexternal 
KEYWORD_cglobal 
KEYWORD_character 
KEYWORD_codimension 
KEYWORD_common 
KEYWORD_complex 
KEYWORD_contains 
KEYWORD_data 
KEYWORD_dimension 
KEYWORD_dllexport 
KEYWORD_dllimport 
KEYWORD_do 
KEYWORD_double 
KEYWORD_elemental 
KEYWORD_end 
KEYWORD_entry 
KEYWORD_enum 
KEYWORD_enumerator 
KEYWORD_equivalence 
KEYWORD_extends 
KEYWORD_external 
KEYWORD_forall 
KEYWORD_format 
KEYWORD_function 
KEYWORD_if 
KEYWORD_implicit 
KEYWORD_include 
KEYWORD_inline 
KEYWORD_integer 
KEYWORD_intent 
KEYWORD_interface 
KEYWORD_intrinsic 
KEYWORD_kind 
KEYWORD_len 
KEYWORD_logical 
KEYWORD_map 
KEYWORD_module 
KEYWORD_namelist 
KEYWORD_operator 
KEYWORD_optional 
KEYWORD_parameter 
KEYWORD_pascal 
KEYWORD_pexternal 
KEYWORD_pglobal 
KEYWORD_pointer 
KEYWORD_precision 
KEYWORD_private 
KEYWORD_procedure 
KEYWORD_program 
KEYWORD_public 
KEYWORD_pure 
KEYWORD_real 
KEYWORD_record 
KEYWORD_recursive 
KEYWORD_save 
KEYWORD_select 
KEYWORD_sequence 
KEYWORD_static 
KEYWORD_stdcall 
KEYWORD_structure 
KEYWORD_subroutine 
KEYWORD_target 
KEYWORD_then 
KEYWORD_type 
KEYWORD_union 
KEYWORD_use 
KEYWORD_value 
KEYWORD_virtual 
KEYWORD_volatile 
KEYWORD_where 
KEYWORD_while 
KEYWORD_package 
KEYWORD_import 
KEYWORD_const 
KEYWORD_type 
KEYWORD_var 
KEYWORD_func 
KEYWORD_struct 
KEYWORD_interface 
KEYWORD_map 
KEYWORD_chan 
KEYWORD_function 
KEYWORD_capital_function 
KEYWORD_capital_object 
KEYWORD_prototype 
KEYWORD_var 
KEYWORD_let 
KEYWORD_const 
KEYWORD_new 
KEYWORD_this 
KEYWORD_for 
KEYWORD_while 
KEYWORD_do 
KEYWORD_if 
KEYWORD_else 
KEYWORD_switch 
KEYWORD_try 
KEYWORD_catch 
KEYWORD_finally 
KEYWORD_sap 
KEYWORD_return 
KEYWORD_class 
KEYWORD_extends 
KEYWORD_static 
KEYWORD_default 
KEYWORD_export 
KEYWORD_async 
KEYWORD_is 
KEYWORD_begin 
KEYWORD_body 
KEYWORD_cursor 
KEYWORD_declare 
KEYWORD_end 
KEYWORD_function 
KEYWORD_if 
KEYWORD_else 
KEYWORD_elseif 
KEYWORD_endif 
KEYWORD_loop 
KEYWORD_while 
KEYWORD_case 
KEYWORD_for 
KEYWORD_do 
KEYWORD_call 
KEYWORD_package 
KEYWORD_pragma 
KEYWORD_procedure 
KEYWORD_record 
KEYWORD_object 
KEYWORD_ref 
KEYWORD_rem 
KEYWORD_return 
KEYWORD_returns 
KEYWORD_subtype 
KEYWORD_table 
KEYWORD_trigger 
KEYWORD_type 
KEYWORD_index 
KEYWORD_event 
KEYWORD_publication 
KEYWORD_service 
KEYWORD_domain 
KEYWORD_datatype 
KEYWORD_result 
KEYWORD_url 
KEYWORD_internal 
KEYWORD_external 
KEYWORD_when 
KEYWORD_then 
KEYWORD_variable 
KEYWORD_exception 
KEYWORD_at 
KEYWORD_on 
KEYWORD_primary 
KEYWORD_references 
KEYWORD_unique 
KEYWORD_check 
KEYWORD_constraint 
KEYWORD_foreign 
KEYWORD_ml_table 
KEYWORD_ml_table_lang 
KEYWORD_ml_table_dnet 
KEYWORD_ml_table_java 
KEYWORD_ml_table_chk 
KEYWORD_ml_conn 
KEYWORD_ml_conn_lang 
KEYWORD_ml_conn_dnet 
KEYWORD_ml_conn_java 
KEYWORD_ml_conn_chk 
KEYWORD_ml_prop 
KEYWORD_local 
KEYWORD_temporary 
KEYWORD_drop 
KEYWORD_view 
KEYWORD_synonym 
KEYWORD_handler 
KEYWORD_comment 
KEYWORD_create 
KEYWORD_go 

Definition at line 64 of file geany_fortran.c.

◆ eTagType

enum eTagType
Enumerator
TAG_UNDEFINED 
TAG_CLASS 
TAG_ENUM 
TAG_ENUMERATOR 
TAG_FIELD 
TAG_FUNCTION 
TAG_INTERFACE 
TAG_MEMBER 
TAG_METHOD 
TAG_NAMESPACE 
TAG_PACKAGE 
TAG_PROTOTYPE 
TAG_STRUCT 
TAG_TYPEDEF 
TAG_UNION 
TAG_VARIABLE 
TAG_EXTERN_VAR 
TAG_MACRO 
TAG_EVENT 
TAG_SIGNAL 
TAG_LOCAL 
TAG_PROPERTY 
TAG_COUNT 
TAG_UNDEFINED 
TAG_BLOCK_DATA 
TAG_COMMON_BLOCK 
TAG_ENTRY_POINT 
TAG_FUNCTION 
TAG_INTERFACE 
TAG_COMPONENT 
TAG_LABEL 
TAG_LOCAL 
TAG_MODULE 
TAG_NAMELIST 
TAG_PROGRAM 
TAG_SUBROUTINE 
TAG_DERIVED_TYPE 
TAG_VARIABLE 
TAG_ENUM 
TAG_ENUMERATOR 
TAG_COUNT 

Definition at line 164 of file geany_fortran.c.

◆ eTokenType

enum eTokenType
Enumerator
TOKEN_OPEN_CURLY 
TOKEN_UNDEFINED 
TOKEN_KEYWORD 
TOKEN_IDENTIFIER 
TOKEN_NONE 
TOKEN_ARGS 
TOKEN_BRACE_CLOSE 
TOKEN_BRACE_OPEN 
TOKEN_COMMA 
TOKEN_DOUBLE_COLON 
TOKEN_KEYWORD 
TOKEN_NAME 
TOKEN_PACKAGE 
TOKEN_PAREN_NAME 
TOKEN_SEMICOLON 
TOKEN_SPEC 
TOKEN_STAR 
TOKEN_ARRAY 
TOKEN_COUNT 
TOKEN_UNDEFINED 
TOKEN_EOF 
TOKEN_CHARACTER 
TOKEN_CLOSE_PAREN 
TOKEN_SEMICOLON 
TOKEN_COLON 
TOKEN_COMMA 
TOKEN_KEYWORD 
TOKEN_OPEN_PAREN 
TOKEN_IDENTIFIER 
TOKEN_STRING 
TOKEN_PERIOD 
TOKEN_OPEN_CURLY 
TOKEN_CLOSE_CURLY 
TOKEN_EQUAL_SIGN 
TOKEN_EXCLAMATION 
TOKEN_FORWARD_SLASH 
TOKEN_OPEN_SQUARE 
TOKEN_CLOSE_SQUARE 
TOKEN_OPEN_MXML 
TOKEN_CLOSE_MXML 
TOKEN_CLOSE_SGML 
TOKEN_LESS_THAN 
TOKEN_GREATER_THAN 
TOKEN_QUESTION_MARK 
TOKEN_OPEN_NAMESPACE 
TOKEN_POSTFIX_OPERATOR 
TOKEN_STAR 
TOKEN_BINARY_OPERATOR 
TOKEN_UNDEFINED 
TOKEN_COMMA 
TOKEN_DOUBLE_COLON 
TOKEN_IDENTIFIER 
TOKEN_KEYWORD 
TOKEN_LABEL 
TOKEN_NUMERIC 
TOKEN_OPERATOR 
TOKEN_PAREN_CLOSE 
TOKEN_PAREN_OPEN 
TOKEN_SQUARE_CLOSE 
TOKEN_SQUARE_OPEN 
TOKEN_PERCENT 
TOKEN_STATEMENT_END 
TOKEN_STRING 
TOKEN_NONE 
TOKEN_OTHER 
TOKEN_KEYWORD 
TOKEN_IDENTIFIER 
TOKEN_STRING 
TOKEN_OPEN_PAREN 
TOKEN_CLOSE_PAREN 
TOKEN_OPEN_CURLY 
TOKEN_CLOSE_CURLY 
TOKEN_OPEN_SQUARE 
TOKEN_CLOSE_SQUARE 
TOKEN_SEMICOLON 
TOKEN_STAR 
TOKEN_LEFT_ARROW 
TOKEN_DOT 
TOKEN_COMMA 
TOKEN_EOF 
TOKEN_UNDEFINED 
TOKEN_EOF 
TOKEN_CHARACTER 
TOKEN_CLOSE_PAREN 
TOKEN_SEMICOLON 
TOKEN_COLON 
TOKEN_COMMA 
TOKEN_KEYWORD 
TOKEN_OPEN_PAREN 
TOKEN_IDENTIFIER 
TOKEN_STRING 
TOKEN_TEMPLATE_STRING 
TOKEN_PERIOD 
TOKEN_OPEN_CURLY 
TOKEN_CLOSE_CURLY 
TOKEN_EQUAL_SIGN 
TOKEN_OPEN_SQUARE 
TOKEN_CLOSE_SQUARE 
TOKEN_REGEXP 
TOKEN_POSTFIX_OPERATOR 
TOKEN_STAR 
TOKEN_BINARY_OPERATOR 
TOKEN_UNDEFINED 
TOKEN_EOF 
TOKEN_CHARACTER 
TOKEN_CLOSE_PAREN 
TOKEN_SEMICOLON 
TOKEN_COLON 
TOKEN_COMMA 
TOKEN_KEYWORD 
TOKEN_OPEN_PAREN 
TOKEN_OPERATOR 
TOKEN_IDENTIFIER 
TOKEN_STRING 
TOKEN_PERIOD 
TOKEN_OPEN_CURLY 
TOKEN_CLOSE_CURLY 
TOKEN_EQUAL_SIGN 
TOKEN_OPEN_SQUARE 
TOKEN_CLOSE_SQUARE 
TOKEN_VARIABLE 
TOKEN_AMPERSAND 
TOKEN_UNDEFINED 
TOKEN_EOF 
TOKEN_CLOSE_PAREN 
TOKEN_SEMICOLON 
TOKEN_COLON 
TOKEN_COMMA 
TOKEN_KEYWORD 
TOKEN_OPEN_PAREN 
TOKEN_OPERATOR 
TOKEN_IDENTIFIER 
TOKEN_STRING 
TOKEN_PERIOD 
TOKEN_OPEN_CURLY 
TOKEN_CLOSE_CURLY 
TOKEN_EQUAL_SIGN 
TOKEN_OPEN_SQUARE 
TOKEN_CLOSE_SQUARE 
TOKEN_VARIABLE 
TOKEN_UNDEFINED 
TOKEN_BLOCK_LABEL_BEGIN 
TOKEN_BLOCK_LABEL_END 
TOKEN_CHARACTER 
TOKEN_CLOSE_PAREN 
TOKEN_COLON 
TOKEN_SEMICOLON 
TOKEN_COMMA 
TOKEN_IDENTIFIER 
TOKEN_KEYWORD 
TOKEN_OPEN_PAREN 
TOKEN_OPERATOR 
TOKEN_OTHER 
TOKEN_STRING 
TOKEN_PERIOD 
TOKEN_OPEN_CURLY 
TOKEN_CLOSE_CURLY 
TOKEN_OPEN_SQUARE 
TOKEN_CLOSE_SQUARE 
TOKEN_TILDE 
TOKEN_FORWARD_SLASH 
TOKEN_EQUAL 

Definition at line 146 of file geany_fortran.c.

Function Documentation

◆ analyzeToken()

static keywordId analyzeToken ( vString *const  name,
langType  language 
)
static

Definition at line 907 of file geany_fortran.c.

References lookupKeyword(), name, NULL, vStringCopyToLower(), vStringNew(), and vStringValue.

Referenced by readIdentifier().

◆ ancestorClear()

static void ancestorClear ( void  )
static

Definition at line 395 of file geany_fortran.c.

References ancestorPop(), Ancestors, eFree(), and NULL.

Referenced by findFortranTags().

◆ ancestorPop()

◆ ancestorPush()

◆ ancestorScope()

static const tokenInfo * ancestorScope ( void  )
static

Definition at line 373 of file geany_fortran.c.

References Ancestors, NULL, TAG_UNDEFINED, TOKEN_IDENTIFIER, and tokenInfo::type.

Referenced by makeFortranTag().

◆ ancestorTop()

static const tokenInfo * ancestorTop ( void  )
static

Definition at line 387 of file geany_fortran.c.

References Ancestors, and Assert.

Referenced by variableTagType().

◆ checkForLabel()

static void checkForLabel ( void  )
static

◆ deleteToken()

static void deleteToken ( tokenInfo *const  token)
static

◆ F77Parser()

◆ findFortranTags()

◆ FortranParser()

◆ getChar()

static int getChar ( void  )
static

◆ getFixedFormChar()

◆ getFreeFormChar()

static int getFreeFormChar ( bool  inComment)
static

Definition at line 708 of file geany_fortran.c.

References getcFromInputFile(), NewLine, skipToNextLine(), and ungetcToInputFile().

Referenced by getChar(), and readToken().

◆ getLineType()

◆ includeTag()

static bool includeTag ( const tagType  type)
static

◆ initializeF77()

static void initializeF77 ( const langType  language)
static

Definition at line 2310 of file geany_fortran.c.

References Lang_f77.

Referenced by F77Parser().

◆ initializeFortran()

static void initializeFortran ( const langType  language)
static

Definition at line 2305 of file geany_fortran.c.

References Lang_fortran.

Referenced by FortranParser().

◆ insideInterface()

static bool insideInterface ( void  )
static

Definition at line 406 of file geany_fortran.c.

References Ancestors, and TAG_INTERFACE.

Referenced by makeFortranTag().

◆ isFileScope()

static bool isFileScope ( const tagType  type)
static

Definition at line 467 of file geany_fortran.c.

References TAG_LABEL, and TAG_LOCAL.

Referenced by includeTag(), makeDefineTag(), makeFortranTag(), makeTag(), and qualifyFunctionTag().

◆ isIgnoredDeclaration()

◆ isSubprogramPrefix()

static bool isSubprogramPrefix ( tokenInfo *const  token)
static

◆ isTypeSpec()

◆ makeFortranTag()

◆ makeLabelTag()

static void makeLabelTag ( vString *const  label)
static

◆ newAnonTokenFrom()

static tokenInfo * newAnonTokenFrom ( tokenInfo *const  token,
const char *  type 
)
static

◆ newToken()

◆ newTokenFrom()

static tokenInfo * newTokenFrom ( tokenInfo *const  token)
static

◆ parseBlockData()

◆ parseCommonNamelistStmt()

◆ parseComponentDefStmt()

static void parseComponentDefStmt ( tokenInfo *const  token)
static

◆ parseDeclarationConstruct()

◆ parseDerivedTypeDef()

◆ parseEntityDecl()

◆ parseEntityDeclList()

◆ parseEntryStmt()

static void parseEntryStmt ( tokenInfo *const  token)
static

◆ parseEnumBlock()

◆ parseExecutionPart()

◆ parseFieldDefinition()

static void parseFieldDefinition ( tokenInfo *const  token)
static

◆ parseFunctionSubprogram()

static void parseFunctionSubprogram ( tokenInfo *const  token)
static

◆ parseIdentifier()

static void parseIdentifier ( vString *const  string,
const int  firstChar 
)
static

Definition at line 862 of file geany_fortran.c.

References getChar(), isident, ungetChar(), and vStringPut().

Referenced by readIdentifier(), and readToken().

◆ parseImplicitPartStmt()

static bool parseImplicitPartStmt ( tokenInfo *const  token)
static

◆ parseInteger()

static vString * parseInteger ( int  c)
static

Definition at line 780 of file geany_fortran.c.

References getChar(), ungetChar(), vStringNew(), and vStringPut().

Referenced by parseNumeric().

◆ parseInterfaceBlock()

◆ parseInternalSubprogramPart()

◆ parseKindSelector()

static void parseKindSelector ( tokenInfo *const  token)
static

◆ parseMainProgram()

static void parseMainProgram ( tokenInfo *const  token)
static

Definition at line 2229 of file geany_fortran.c.

References parseSubprogram(), and TAG_PROGRAM.

Referenced by parseProgramUnit().

◆ parseMap()

static void parseMap ( tokenInfo *const  token)
static

◆ parseModule()

◆ parseNumeric()

static vString * parseNumeric ( int  c)
static

◆ parseProgramUnit()

◆ parseQualifierSpecList()

◆ parseSpecificationPart()

static bool parseSpecificationPart ( tokenInfo *const  token)
static

◆ parseSpecificationStmt()

◆ parseStmtFunctionStmt()

static bool parseStmtFunctionStmt ( tokenInfo *const  token)
static

◆ parseString()

static void parseString ( vString *const  string,
const int  delimiter 
)
static

◆ parseStructureStmt()

◆ parseSubprogram()

◆ parseSubroutineSubprogram()

static void parseSubroutineSubprogram ( tokenInfo *const  token)
static

◆ parseTypeDeclarationStmt()

◆ parseTypeSpec()

◆ parseUnionStmt()

static void parseUnionStmt ( tokenInfo *const  token)
static

◆ readIdentifier()

◆ readSubToken()

◆ readToken()

◆ skipLine()

static int skipLine ( void  )
static

◆ skipOverPair()

static void skipOverPair ( tokenInfo *const  token,
tokenType  topen,
tokenType  tclose 
)
static

Definition at line 1102 of file geany_fortran.c.

References isType, readToken(), and TOKEN_STATEMENT_END.

Referenced by skipOverParens(), and skipOverSquares().

◆ skipOverParens()

◆ skipOverSquares()

static void skipOverSquares ( tokenInfo *const  token)
static

Definition at line 1121 of file geany_fortran.c.

References skipOverPair(), TOKEN_SQUARE_CLOSE, and TOKEN_SQUARE_OPEN.

Referenced by parseEntityDecl(), and parseQualifierSpecList().

◆ skipPast()

static void skipPast ( tokenInfo *const  token,
tokenType  type 
)
static

◆ skipStatementIfKeyword()

static bool skipStatementIfKeyword ( tokenInfo *const  token,
keywordId  keyword 
)
static

Definition at line 1262 of file geany_fortran.c.

References isKeyword, and skipToNextStatement().

Referenced by parseSpecificationPart().

◆ skipToNextLine()

static int skipToNextLine ( void  )
static

Definition at line 700 of file geany_fortran.c.

References getcFromInputFile(), and skipLine().

Referenced by getFreeFormChar().

◆ skipToNextStatement()

◆ skipToToken()

static void skipToToken ( tokenInfo *const  token,
tokenType  type 
)
static

◆ ungetChar()

static void ungetChar ( const int  c)
static

Definition at line 772 of file geany_fortran.c.

References Ungetc.

Referenced by checkForLabel(), parseIdentifier(), parseInteger(), parseNumeric(), and readToken().

◆ variableTagType()

static tagType variableTagType ( void  )
static

Variable Documentation

◆ 

◆ Column

unsigned int Column = 0
static

Definition at line 203 of file geany_fortran.c.

Referenced by findFortranTags(), getFixedFormChar(), and readToken().

◆ contextual_fake_count

unsigned int contextual_fake_count = 0
static

Definition at line 208 of file geany_fortran.c.

Referenced by findFortranTags(), and newAnonTokenFrom().

◆ count

unsigned int count

Definition at line 321 of file geany_fortran.c.

Referenced by add_stock_icons(), aliasColprintAddLanguage(), anyKindsEntryInScope(), anyKindsEntryInScopeRecursive(), Scintilla::RGBAImage::BGRAFromRGBA(), build_save_menu_grp(), build_set_group_count(), buildKeywordHash(), Scintilla::CallTip::CallTipStart(), count_indent_size(), CountBits(), Scintilla::Document::CountCharacters(), Scintilla::Document::CountUTF16(), detect_indent_width(), detect_tabs_and_spaces(), document_replace_all(), document_replace_range(), document_replace_sel(), eCalloc(), editor_do_comment(), editor_do_uncomment(), editor_indentation_by_one_space(), fill_find_tags_array_prefix(), find_document_usage(), get_brace_indent(), get_style(), get_tag_count(), Scintilla::CharClassify::GetCharsOfClass(), handle_radio_buttons(), initialize(), isPodWord(), IsValidHrule(), keybindings_set_group(), kindColprintFillLine(), load_plugins_from_path(), mapColprintAddLanguage(), matchCallbackPattern(), Scintilla::AutoComplete::Move(), nominateLanguageCandidates(), nominateLanguageCandidatesForPattern(), on_find_dialog_response(), on_save_all1_activate(), plugin_set_key_group(), plugin_set_key_group_full(), processBooleanOption(), processParametricOption(), search_find_usage(), search_finished(), search_mark_all(), search_replace_range(), ListBoxX::SetList(), show_replace_summary(), skipToEndOfChar(), stash_group_add_radio_buttons(), Scintilla::StringCopy(), tm_tags_prune(), update_active_plugins_pref(), utils_string_replace_all(), and uwiClearMarker().

◆ Exception

jmp_buf Exception
static

Definition at line 201 of file geany_fortran.c.

Referenced by findFortranTags(), getFixedFormChar(), parseString(), and readToken().

◆ FortranKeywordTable

const keywordTable FortranKeywordTable[]
static

Definition at line 238 of file geany_fortran.c.

Referenced by F77Parser(), and FortranParser().

◆ FortranKinds

kindDefinition FortranKinds[TAG_COUNT]
static
Initial value:
= {
{ true, 'b', "blockData", "block data"},
{ true, 'c', "common", "common blocks"},
{ true, 'e', "entry", "entry points"},
{ true, 'f', "function", "functions"},
{ true, 'i', "interface", "interface contents, generic names, and operators"},
{ true, 'k', "component", "type and structure components"},
{ true, 'l', "label", "labels"},
{ false, 'L', "local", "local, common block, and namelist variables"},
{ true, 'm', "module", "modules"},
{ true, 'n', "namelist", "namelists"},
{ true, 'p', "program", "programs"},
{ true, 's', "subroutine", "subroutines"},
{ true, 't', "type", "derived types and structures"},
{ true, 'v', "variable", "program (global) and module variables"},
{ true, 'E', "enum", "enumerations"},
{ true, 'N', "enumerator", "enumeration values"},
}

Definition at line 211 of file geany_fortran.c.

Referenced by F77Parser(), FortranParser(), and includeTag().

◆ FreeSourceForm

bool FreeSourceForm = false
static

Definition at line 204 of file geany_fortran.c.

Referenced by findFortranTags(), getChar(), parseString(), and readToken().

◆ Lang_f77

langType Lang_f77
static

Definition at line 200 of file geany_fortran.c.

Referenced by initializeF77().

◆ Lang_fortran

langType Lang_fortran
static

Definition at line 199 of file geany_fortran.c.

Referenced by initializeFortran(), and readIdentifier().

◆ list

◆ max

◆ NewLine

bool NewLine = true
static

Definition at line 207 of file geany_fortran.c.

Referenced by findFortranTags(), and getFreeFormChar().

◆ Parent

tokenInfo* Parent = NULL
static

Definition at line 206 of file geany_fortran.c.

Referenced by findFortranTags().

◆ ParsingString

bool ParsingString
static

Definition at line 205 of file geany_fortran.c.

Referenced by getFixedFormChar(), and parseString().

◆ Ungetc

int Ungetc = '\0'
static

Definition at line 202 of file geany_fortran.c.

Referenced by getChar(), and ungetChar().