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_go.c File Reference
#include "general.h"
#include "debug.h"
#include "entry.h"
#include "keyword.h"
#include "read.h"
#include "parse.h"
#include "routines.h"
#include "vstring.h"
#include "options.h"
#include "xtag.h"
Include dependency graph for geany_go.c:

Go to the source code of this file.

Classes

struct  sTokenInfo
 

Macros

#define MAX_SIGNATURE_LENGTH   512
 
#define isType(token, t)   (bool) ((token)->type == (t))
 
#define isKeyword(token, k)   (bool) ((token)->keyword == (k))
 

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  goKind {
  GOTAG_UNDEFINED = -1 , GOTAG_PACKAGE , GOTAG_FUNCTION , GOTAG_CONST ,
  GOTAG_TYPE , GOTAG_VAR , GOTAG_STRUCT , GOTAG_INTERFACE ,
  GOTAG_MEMBER
}
 

Functions

static bool isStartIdentChar (const int c)
 
static bool isIdentChar (const int c)
 
static void initialize (const langType language)
 
static tokenInfonewToken (void)
 
static tokenInfocopyToken (tokenInfo *other)
 
static void deleteToken (tokenInfo *const token)
 
static void parseString (vString *const string, const int delimiter)
 
static void parseIdentifier (vString *const string, const int firstChar)
 
static void readToken (tokenInfo *const token)
 
static bool skipToMatchedNoRead (tokenInfo *const token)
 
static void skipToMatched (tokenInfo *const token)
 
static bool skipType (tokenInfo *const token)
 
static void makeTag (tokenInfo *const token, const goKind kind, tokenInfo *const parent_token, const goKind parent_kind, const char *argList, const char *varType)
 
static void parsePackage (tokenInfo *const token)
 
static void parseFunctionOrMethod (tokenInfo *const token)
 
static void parseStructMembers (tokenInfo *const token, tokenInfo *const parent_token)
 
static void parseConstTypeVar (tokenInfo *const token, goKind kind)
 
static void parseGoFile (tokenInfo *const token)
 
static void findGoTags (void)
 
parserDefinitionGoParser (void)
 

Variables

static int Lang_go
 
static vStringscope
 
static vStringsignature = NULL
 
static kindDefinition GoKinds []
 
static const keywordTable GoKeywordTable []
 

Macro Definition Documentation

◆ isKeyword

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

Definition at line 24 of file geany_go.c.

◆ isType

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

Definition at line 23 of file geany_go.c.

◆ MAX_SIGNATURE_LENGTH

#define MAX_SIGNATURE_LENGTH   512

Definition at line 22 of file geany_go.c.

Typedef Documentation

◆ keywordId

typedef int keywordId

Definition at line 42 of file geany_go.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 30 of file geany_go.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 44 of file geany_go.c.

◆ goKind

enum goKind
Enumerator
GOTAG_UNDEFINED 
GOTAG_PACKAGE 
GOTAG_FUNCTION 
GOTAG_CONST 
GOTAG_TYPE 
GOTAG_VAR 
GOTAG_STRUCT 
GOTAG_INTERFACE 
GOTAG_MEMBER 

Definition at line 81 of file geany_go.c.

Function Documentation

◆ copyToken()

◆ deleteToken()

static void deleteToken ( tokenInfo *const  token)
static

◆ findGoTags()

static void findGoTags ( void  )
static

Definition at line 808 of file geany_go.c.

References deleteToken(), newToken(), NULL, parseGoFile(), scope, and vStringDelete().

Referenced by GoParser().

◆ GoParser()

◆ initialize()

static void initialize ( const langType  language)
static

Definition at line 134 of file geany_go.c.

References Lang_go.

Referenced by GoParser().

◆ isIdentChar()

static bool isIdentChar ( const int  c)
static

Definition at line 128 of file geany_go.c.

References isStartIdentChar().

Referenced by parseIdentifier().

◆ isStartIdentChar()

static bool isStartIdentChar ( const int  c)
static

Definition at line 122 of file geany_go.c.

Referenced by isIdentChar(), and readToken().

◆ makeTag()

◆ newToken()

◆ parseConstTypeVar()

◆ parseFunctionOrMethod()

◆ parseGoFile()

◆ parseIdentifier()

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

Definition at line 196 of file geany_go.c.

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

Referenced by readToken().

◆ parsePackage()

static void parsePackage ( tokenInfo *const  token)
static

◆ parseString()

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

Definition at line 174 of file geany_go.c.

References getcFromInputFile(), and vStringPut().

Referenced by readToken().

◆ parseStructMembers()

static void parseStructMembers ( tokenInfo *const  token,
tokenInfo *const  parent_token 
)
static

◆ readToken()

◆ skipToMatched()

static void skipToMatched ( tokenInfo *const  token)
static

◆ skipToMatchedNoRead()

static bool skipToMatchedNoRead ( tokenInfo *const  token)
static

◆ skipType()

Variable Documentation

◆ GoKeywordTable

const keywordTable GoKeywordTable[]
static
Initial value:
= {
{"package", KEYWORD_package},
{"import", KEYWORD_import},
{"const", KEYWORD_const},
{"type", KEYWORD_type},
{"var", KEYWORD_var},
{"func", KEYWORD_func},
{"struct", KEYWORD_struct},
{"interface", KEYWORD_interface},
{"map", KEYWORD_map},
{"chan", KEYWORD_chan}
}
@ KEYWORD_func
Definition: geany_go.c:36
@ KEYWORD_var
Definition: geany_go.c:35
@ KEYWORD_interface
Definition: geany_go.c:38
@ KEYWORD_package
Definition: geany_go.c:31
@ KEYWORD_type
Definition: geany_go.c:34
@ KEYWORD_const
Definition: geany_go.c:33
@ KEYWORD_map
Definition: geany_go.c:39
@ KEYWORD_chan
Definition: geany_go.c:40
@ KEYWORD_import
Definition: geany_go.c:32
@ KEYWORD_struct
Definition: geany_go.c:37

Definition at line 104 of file geany_go.c.

Referenced by GoParser().

◆ GoKinds

kindDefinition GoKinds[]
static
Initial value:
= {
{true, 'p', "package", "packages"},
{true, 'f', "func", "functions"},
{true, 'c', "const", "constants"},
{true, 't', "type", "types"},
{true, 'v', "var", "variables"},
{true, 's', "struct", "structs"},
{true, 'i', "interface", "interfaces"},
{true, 'm', "member", "struct members"}
}

Definition at line 93 of file geany_go.c.

Referenced by GoParser(), and makeTag().

◆ Lang_go

int Lang_go
static

Definition at line 77 of file geany_go.c.

Referenced by initialize(), and readToken().

◆ scope

◆ signature