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_flex.c File Reference
#include "general.h"
#include <ctype.h>
#include "debug.h"
#include "entry.h"
#include "keyword.h"
#include "parse.h"
#include "read.h"
#include "routines.h"
#include "vstring.h"
#include "strlist.h"
Include dependency graph for geany_flex.c:

Go to the source code of this file.

Classes

struct  sTokenInfo
 

Macros

#define isType(token, t)   (bool) ((token)->type == (t))
 
#define isKeyword(token, k)   (bool) ((token)->keyword == (k))
 
#define isEOF(token)   (isType ((token), TOKEN_EOF))
 
#define isIdentChar(c)
 
#define IS_STMT_SEPARATOR(t)
 
#define IS_BINARY_OPERATOR(t)
 

Typedefs

typedef int keywordId
 
typedef enum eTokenType tokenType
 
typedef struct sTokenInfo tokenInfo
 

Enumerations

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  flexKind {
  FLEXTAG_FUNCTION , FLEXTAG_CLASS , FLEXTAG_INTERFACE , FLEXTAG_PACKAGE ,
  FLEXTAG_METHOD , FLEXTAG_PROPERTY , FLEXTAG_VARIABLE , FLEXTAG_LOCALVAR ,
  FLEXTAG_CONST , FLEXTAG_IMPORT , FLEXTAG_MXTAG , FLEXTAG_COUNT
}
 
enum  flexImportRole { FLEX_IMPORT_ROLE_IMPORTED }
 

Functions

static void parseFunction (tokenInfo *const token)
 
static bool parseBlock (tokenInfo *const token, const vString *const parentScope)
 
static bool parseLine (tokenInfo *const token)
 
static bool parseActionScript (tokenInfo *const token, bool readNext)
 
static bool parseMXML (tokenInfo *const token)
 
static tokenInfonewToken (void)
 
static void deleteToken (tokenInfo *const token)
 
static void copyToken (tokenInfo *const dest, tokenInfo *const src, bool const include_non_read_info)
 
static vStringbuildQualifiedName (const tokenInfo *const token)
 
static void makeConstTag (tokenInfo *const token, const flexKind kind)
 
static void makeFlexTag (tokenInfo *const token, flexKind kind)
 
static void makeClassTag (tokenInfo *const token)
 
static void makeMXTag (tokenInfo *const token)
 
static void makeFunctionTag (tokenInfo *const token)
 
static void parseString (vString *const string, const int delimiter)
 
static void parseIdentifier (vString *const string, const int firstChar)
 
static void readTokenFull (tokenInfo *const token, bool include_newlines)
 
static void readToken (tokenInfo *const token)
 
static void skipArgumentList (tokenInfo *const token, bool include_newlines)
 
static void skipArrayList (tokenInfo *const token, bool include_newlines)
 
static void addContext (tokenInfo *const parent, const tokenInfo *const child)
 
static void addToScope (tokenInfo *const token, const vString *const extra)
 
static bool findCmdTerm (tokenInfo *const token, bool include_newlines, bool include_commas)
 
static void parseSwitch (tokenInfo *const token)
 
static bool parseLoop (tokenInfo *const token)
 
static bool parseIf (tokenInfo *const token)
 
static bool parseImport (tokenInfo *const token)
 
static void parseMethods (tokenInfo *const token, const tokenInfo *const class)
 
static bool parseVar (tokenInfo *const token, bool is_public)
 
static void parsePackage (tokenInfo *const token)
 
static bool parseClass (tokenInfo *const token)
 
static void parseInterface (tokenInfo *const token)
 
static bool parseStatement (tokenInfo *const token)
 
static bool parseCDATA (tokenInfo *const token)
 
static bool parseNamespace (tokenInfo *const token)
 
static void parseFlexFile (tokenInfo *const token)
 
static void initialize (const langType language)
 
static void findFlexTags (void)
 
parserDefinitionFlexParser (void)
 

Variables

static stringListClassNames
 
static stringListFunctionNames
 
static tokenType LastTokenType
 
static tokenInfoNextToken
 
static langType Lang_flex
 
static roleDefinition FlexImportRoles []
 
static kindDefinition FlexKinds []
 
static const keywordTable FlexKeywordTable []
 

Macro Definition Documentation

◆ IS_BINARY_OPERATOR

#define IS_BINARY_OPERATOR (   t)
Value:
((t) == TOKEN_EQUAL_SIGN || \
(t) == TOKEN_COLON || \
(t) == TOKEN_PERIOD || \
(t) == TOKEN_STAR || \
(t) == TOKEN_FORWARD_SLASH || \
(t) == TOKEN_QUESTION_MARK || \
(t) == TOKEN_LESS_THAN || \
(t) == TOKEN_GREATER_THAN || \
@ TOKEN_STAR
Definition: geany_flex.c:137
@ TOKEN_BINARY_OPERATOR
Definition: geany_flex.c:138
@ TOKEN_LESS_THAN
Definition: geany_flex.c:132
@ TOKEN_QUESTION_MARK
Definition: geany_flex.c:134
@ TOKEN_COLON
Definition: geany_flex.c:115
@ TOKEN_EQUAL_SIGN
Definition: geany_flex.c:124
@ TOKEN_PERIOD
Definition: geany_flex.c:121
@ TOKEN_FORWARD_SLASH
Definition: geany_flex.c:126
@ TOKEN_GREATER_THAN
Definition: geany_flex.c:133

◆ IS_STMT_SEPARATOR

#define IS_STMT_SEPARATOR (   t)
Value:
((t) == TOKEN_SEMICOLON || \
(t) == TOKEN_EOF || \
(t) == TOKEN_COMMA || \
@ TOKEN_OPEN_CURLY
Definition: geany_flex.c:122
@ TOKEN_COMMA
Definition: geany_flex.c:116
@ TOKEN_EOF
Definition: geany_flex.c:111
@ TOKEN_SEMICOLON
Definition: geany_flex.c:114

◆ isEOF

#define isEOF (   token)    (isType ((token), TOKEN_EOF))

Definition at line 45 of file geany_flex.c.

◆ isIdentChar

#define isIdentChar (   c)
Value:
(isalpha (c) || isdigit (c) || (c) == '$' || \
(c) == '@' || (c) == '_' || (c) == '#' || \
(c) >= 0x80)

Definition at line 46 of file geany_flex.c.

◆ isKeyword

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

Definition at line 44 of file geany_flex.c.

◆ isType

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

Definition at line 43 of file geany_flex.c.

Typedef Documentation

◆ keywordId

typedef int keywordId

Definition at line 107 of file geany_flex.c.

◆ tokenInfo

typedef struct sTokenInfo tokenInfo

◆ tokenType

typedef enum eTokenType tokenType

Enumeration Type Documentation

◆ 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 63 of file geany_flex.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 109 of file geany_flex.c.

◆ flexImportRole

Enumerator
FLEX_IMPORT_ROLE_IMPORTED 

Definition at line 176 of file geany_flex.c.

◆ flexKind

enum flexKind
Enumerator
FLEXTAG_FUNCTION 
FLEXTAG_CLASS 
FLEXTAG_INTERFACE 
FLEXTAG_PACKAGE 
FLEXTAG_METHOD 
FLEXTAG_PROPERTY 
FLEXTAG_VARIABLE 
FLEXTAG_LOCALVAR 
FLEXTAG_CONST 
FLEXTAG_IMPORT 
FLEXTAG_MXTAG 
FLEXTAG_COUNT 

Definition at line 161 of file geany_flex.c.

Function Documentation

◆ addContext()

static void addContext ( tokenInfo *const  parent,
const tokenInfo *const  child 
)
static

Definition at line 938 of file geany_flex.c.

References tokenInfo::string, vStringCat(), vStringLength, and vStringPut().

Referenced by parseStatement().

◆ addToScope()

static void addToScope ( tokenInfo *const  token,
const vString *const  extra 
)
static

◆ buildQualifiedName()

static vString * buildQualifiedName ( const tokenInfo *const  token)
static

◆ copyToken()

static void copyToken ( tokenInfo *const  dest,
tokenInfo *const  src,
bool const  include_non_read_info 
)
static

◆ deleteToken()

◆ findCmdTerm()

static bool findCmdTerm ( tokenInfo *const  token,
bool  include_newlines,
bool  include_commas 
)
static

◆ findFlexTags()

static void findFlexTags ( void  )
static

◆ FlexParser()

◆ initialize()

static void initialize ( const langType  language)
static

Definition at line 2596 of file geany_flex.c.

References ARRAY_SIZE, Assert, FlexKinds, FLEXTAG_COUNT, and Lang_flex.

Referenced by FlexParser().

◆ makeClassTag()

static void makeClassTag ( tokenInfo *const  token)
static

◆ makeConstTag()

◆ makeFlexTag()

◆ makeFunctionTag()

static void makeFunctionTag ( tokenInfo *const  token)
static

◆ makeMXTag()

static void makeMXTag ( tokenInfo *const  token)
static

Definition at line 404 of file geany_flex.c.

References FLEXTAG_MXTAG, and makeFlexTag().

Referenced by parseMXML().

◆ newToken()

◆ parseActionScript()

static bool parseActionScript ( tokenInfo *const  token,
bool  readNext 
)
static

◆ parseBlock()

◆ parseCDATA()

static bool parseCDATA ( tokenInfo *const  token)
static

◆ parseClass()

◆ parseFlexFile()

static void parseFlexFile ( tokenInfo *const  token)
static

◆ parseFunction()

◆ parseIdentifier()

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

Definition at line 454 of file geany_flex.c.

References Assert, getcFromInputFile(), isIdentChar, ungetcToInputFile(), and vStringPut().

Referenced by readTokenFull().

◆ parseIf()

static bool parseIf ( tokenInfo *const  token)
static

◆ parseImport()

◆ parseInterface()

◆ parseLine()

◆ parseLoop()

static bool parseLoop ( tokenInfo *const  token)
static

◆ parseMethods()

◆ parseMXML()

◆ parseNamespace()

static bool parseNamespace ( tokenInfo *const  token)
static

◆ parsePackage()

◆ parseStatement()

◆ parseString()

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

Definition at line 431 of file geany_flex.c.

References getcFromInputFile(), and vStringPut().

Referenced by readTokenFull().

◆ parseSwitch()

static void parseSwitch ( tokenInfo *const  token)
static

◆ parseVar()

static bool parseVar ( tokenInfo *const  token,
bool  is_public 
)
static

◆ readToken()

◆ readTokenFull()

◆ skipArgumentList()

static void skipArgumentList ( tokenInfo *const  token,
bool  include_newlines 
)
static

◆ skipArrayList()

static void skipArrayList ( tokenInfo *const  token,
bool  include_newlines 
)
static

Definition at line 913 of file geany_flex.c.

References isType, readToken(), readTokenFull(), TOKEN_CLOSE_SQUARE, TOKEN_EOF, and TOKEN_OPEN_SQUARE.

Referenced by findCmdTerm(), and parseStatement().

Variable Documentation

◆ ClassNames

stringList* ClassNames
static

Definition at line 58 of file geany_flex.c.

Referenced by findFlexTags(), makeClassTag(), and parseStatement().

◆ FlexImportRoles

roleDefinition FlexImportRoles[]
static
Initial value:
= {
{ true, "import", "imports" },
}

Definition at line 180 of file geany_flex.c.

◆ FlexKeywordTable

const keywordTable FlexKeywordTable[]
static

Definition at line 202 of file geany_flex.c.

Referenced by FlexParser().

◆ FlexKinds

kindDefinition FlexKinds[]
static
Initial value:
= {
{ true, 'f', "function", "functions" },
{ true, 'c', "class", "classes" },
{ true, 'i', "interface", "interfaces" },
{ true, 'P', "package", "packages" },
{ true, 'm', "method", "methods" },
{ true, 'p', "property", "properties" },
{ true, 'v', "variable", "global variables" },
{ true, 'l', "localvar", "local variables" },
{ true, 'C', "constant", "constants" },
{ true, 'I', "import", "imports",
.referenceOnly = true, .nRoles = (sizeof ( FlexImportRoles ) / sizeof ( FlexImportRoles [0])), .roles = FlexImportRoles },
{ true, 'x', "mxtag", "mxtags" }
}
static roleDefinition FlexImportRoles[]
Definition: geany_flex.c:180

Definition at line 184 of file geany_flex.c.

Referenced by FlexParser(), initialize(), makeConstTag(), and makeFlexTag().

◆ FunctionNames

stringList* FunctionNames
static

Definition at line 59 of file geany_flex.c.

Referenced by findFlexTags(), makeFunctionTag(), and parseStatement().

◆ Lang_flex

langType Lang_flex
static

Definition at line 159 of file geany_flex.c.

Referenced by initialize(), and readTokenFull().

◆ LastTokenType

tokenType LastTokenType
static

Definition at line 156 of file geany_flex.c.

Referenced by parseActionScript(), and readTokenFull().

◆ NextToken

tokenInfo* NextToken
static

Definition at line 157 of file geany_flex.c.

Referenced by findFlexTags(), and readTokenFull().