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

Go to the source code of this file.

Classes

struct  sTokenInfoSQL
 

Macros

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

Typedefs

typedef enum eException exception_t
 
typedef int keywordId
 
typedef enum eTokenType tokenType
 
typedef struct sTokenInfoSQL tokenInfo
 

Enumerations

enum  eException {
  ExceptionNone , ExceptionEOF , ExceptionFormattingError , ExceptionBraceFormattingError ,
  ExceptionNone , ExceptionEOF , ExceptionFixedFormat , ExceptionLoop ,
  ExceptionNone , ExceptionEOF , ExceptionNone , ExceptionEOF ,
  ExceptionNone , ExceptionEOF
}
 
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  sqlKind {
  SQLTAG_CURSOR , SQLTAG_PROTOTYPE , SQLTAG_FUNCTION , SQLTAG_FIELD ,
  SQLTAG_LOCAL_VARIABLE , SQLTAG_BLOCK_LABEL , SQLTAG_PACKAGE , SQLTAG_PROCEDURE ,
  SQLTAG_RECORD , SQLTAG_SUBTYPE , SQLTAG_TABLE , SQLTAG_TRIGGER ,
  SQLTAG_VARIABLE , SQLTAG_INDEX , SQLTAG_EVENT , SQLTAG_PUBLICATION ,
  SQLTAG_SERVICE , SQLTAG_DOMAIN , SQLTAG_VIEW , SQLTAG_SYNONYM ,
  SQLTAG_MLTABLE , SQLTAG_MLCONN , SQLTAG_MLPROP , SQLTAG_COUNT
}
 

Functions

static void parseBlock (tokenInfo *const token, const bool local)
 
static void parseDeclare (tokenInfo *const token, const bool local)
 
static void parseKeywords (tokenInfo *const token)
 
static void parseSqlFile (tokenInfo *const token)
 
static bool isIdentChar1 (const int c)
 
static bool isIdentChar (const int c)
 
static bool isCmdTerm (tokenInfo *const token)
 
static bool isMatchedEnd (tokenInfo *const token, int nest_lvl)
 
static tokenInfonewToken (void)
 
static void deleteToken (tokenInfo *const token)
 
static int analyzeToken (vString *const name, langType language)
 
static void makeSqlTag (tokenInfo *const token, const sqlKind kind)
 
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 void readIdentifier (tokenInfo *const token)
 
static void addToScope (tokenInfo *const token, vString *const extra, sqlKind kind)
 
static void findToken (tokenInfo *const token, const tokenType type)
 
static void findCmdTerm (tokenInfo *const token, const bool check_first)
 
static void skipToMatched (tokenInfo *const token)
 
static void copyToken (tokenInfo *const dest, tokenInfo *const src)
 
static void skipArgumentList (tokenInfo *const token)
 
static void parseSubProgram (tokenInfo *const token)
 
static void parseRecord (tokenInfo *const token)
 
static void parseType (tokenInfo *const token)
 
static void parseSimple (tokenInfo *const token, const sqlKind kind)
 
static void parseDeclareANSI (tokenInfo *const token, const bool local)
 
static void parseLabel (tokenInfo *const token)
 
static void parseStatements (tokenInfo *const token, const bool exit_on_endif)
 
static void parsePackage (tokenInfo *const token)
 
static void parseTable (tokenInfo *const token)
 
static void parseIndex (tokenInfo *const token)
 
static void parseEvent (tokenInfo *const token)
 
static void parseTrigger (tokenInfo *const token)
 
static void parsePublication (tokenInfo *const token)
 
static void parseService (tokenInfo *const token)
 
static void parseDomain (tokenInfo *const token)
 
static void parseDrop (tokenInfo *const token)
 
static void parseVariable (tokenInfo *const token)
 
static void parseSynonym (tokenInfo *const token)
 
static void parseView (tokenInfo *const token)
 
static void parseMLTable (tokenInfo *const token)
 
static void parseMLConn (tokenInfo *const token)
 
static void parseMLProp (tokenInfo *const token)
 
static void parseComment (tokenInfo *const token)
 
static void initialize (const langType language)
 
static void findSqlTags (void)
 
parserDefinitionSqlParser (void)
 

Variables

static langType Lang_sql
 
static jmp_buf Exception
 
static kindDefinition SqlKinds []
 
static const keywordTable SqlKeywordTable []
 

Macro Definition Documentation

◆ isKeyword

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

Definition at line 45 of file geany_sql.c.

◆ isType

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

Definition at line 44 of file geany_sql.c.

Typedef Documentation

◆ exception_t

typedef enum eException exception_t

◆ keywordId

typedef int keywordId

Definition at line 130 of file geany_sql.c.

◆ tokenInfo

typedef struct sTokenInfoSQL 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 51 of file geany_sql.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 56 of file geany_sql.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 132 of file geany_sql.c.

◆ sqlKind

enum sqlKind
Enumerator
SQLTAG_CURSOR 
SQLTAG_PROTOTYPE 
SQLTAG_FUNCTION 
SQLTAG_FIELD 
SQLTAG_LOCAL_VARIABLE 
SQLTAG_BLOCK_LABEL 
SQLTAG_PACKAGE 
SQLTAG_PROCEDURE 
SQLTAG_RECORD 
SQLTAG_SUBTYPE 
SQLTAG_TABLE 
SQLTAG_TRIGGER 
SQLTAG_VARIABLE 
SQLTAG_INDEX 
SQLTAG_EVENT 
SQLTAG_PUBLICATION 
SQLTAG_SERVICE 
SQLTAG_DOMAIN 
SQLTAG_VIEW 
SQLTAG_SYNONYM 
SQLTAG_MLTABLE 
SQLTAG_MLCONN 
SQLTAG_MLPROP 
SQLTAG_COUNT 

Definition at line 176 of file geany_sql.c.

Function Documentation

◆ addToScope()

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

◆ analyzeToken()

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

Definition at line 420 of file geany_sql.c.

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

Referenced by readToken().

◆ copyToken()

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

◆ deleteToken()

◆ findCmdTerm()

◆ findSqlTags()

static void findSqlTags ( void  )
static

Definition at line 2327 of file geany_sql.c.

References deleteToken(), Exception, ExceptionNone, newToken(), and parseSqlFile().

Referenced by SqlParser().

◆ findToken()

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

Definition at line 697 of file geany_sql.c.

References isType, and readToken().

Referenced by parseComment(), parseDeclare(), parseDeclareANSI(), parseMLConn(), parseMLProp(), and parseMLTable().

◆ initialize()

static void initialize ( const langType  language)
static

Definition at line 2321 of file geany_sql.c.

References ARRAY_SIZE, Assert, Lang_sql, SqlKinds, and SQLTAG_COUNT.

Referenced by SqlParser().

◆ isCmdTerm()

◆ isIdentChar()

static bool isIdentChar ( const int  c)
static

Definition at line 332 of file geany_sql.c.

Referenced by parseIdentifier().

◆ isIdentChar1()

static bool isIdentChar1 ( const int  c)
static

Definition at line 320 of file geany_sql.c.

Referenced by parseIdentifier(), and readToken().

◆ isMatchedEnd()

static bool isMatchedEnd ( tokenInfo *const  token,
int  nest_lvl 
)
static

Definition at line 368 of file geany_sql.c.

References isKeyword, and KEYWORD_end.

Referenced by findCmdTerm().

◆ makeSqlTag()

◆ newToken()

◆ parseBlock()

◆ parseComment()

static void parseComment ( tokenInfo *const  token)
static

◆ parseDeclare()

◆ parseDeclareANSI()

◆ parseDomain()

static void parseDomain ( tokenInfo *const  token)
static

◆ parseDrop()

static void parseDrop ( tokenInfo *const  token)
static

Definition at line 1959 of file geany_sql.c.

References findCmdTerm().

Referenced by parseKeywords().

◆ parseEvent()

◆ parseIdentifier()

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

Definition at line 484 of file geany_sql.c.

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

Referenced by readToken().

◆ parseIndex()

◆ parseKeywords()

◆ parseLabel()

static void parseLabel ( tokenInfo *const  token)
static

◆ parseMLConn()

◆ parseMLProp()

◆ parseMLTable()

◆ parsePackage()

◆ parsePublication()

static void parsePublication ( tokenInfo *const  token)
static

◆ parseRecord()

◆ parseService()

static void parseService ( tokenInfo *const  token)
static

◆ parseSimple()

static void parseSimple ( tokenInfo *const  token,
const sqlKind  kind 
)
static

Definition at line 1099 of file geany_sql.c.

References isType, makeSqlTag(), readToken(), TOKEN_IDENTIFIER, and TOKEN_STRING.

Referenced by parseDeclare(), and parseKeywords().

◆ parseSqlFile()

static void parseSqlFile ( tokenInfo *const  token)
static

◆ parseStatements()

◆ parseString()

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

Definition at line 460 of file geany_sql.c.

References getcFromInputFile(), and vStringPut().

Referenced by readToken().

◆ parseSubProgram()

◆ parseSynonym()

static void parseSynonym ( tokenInfo *const  token)
static

◆ parseTable()

◆ parseTrigger()

◆ parseType()

◆ parseVariable()

static void parseVariable ( tokenInfo *const  token)
static

◆ parseView()

◆ readIdentifier()

◆ readToken()

◆ skipArgumentList()

static void skipArgumentList ( tokenInfo *const  token)
static

Definition at line 783 of file geany_sql.c.

References isType, skipToMatched(), and TOKEN_OPEN_PAREN.

Referenced by parseRecord(), parseSubProgram(), and parseView().

◆ skipToMatched()

static void skipToMatched ( tokenInfo *const  token)
static

◆ SqlParser()

Variable Documentation

◆ Exception

jmp_buf Exception
static

Definition at line 174 of file geany_sql.c.

Referenced by findSqlTags(), and readToken().

◆ Lang_sql

langType Lang_sql
static

Definition at line 172 of file geany_sql.c.

Referenced by initialize(), and readToken().

◆ SqlKeywordTable

const keywordTable SqlKeywordTable[]
static

Definition at line 229 of file geany_sql.c.

Referenced by SqlParser().

◆ SqlKinds

kindDefinition SqlKinds[]
static
Initial value:
= {
{ true, 'c', "cursor", "cursors" },
{ false, 'd', "prototype", "prototypes" },
{ true, 'f', "function", "functions" },
{ true, 'E', "field", "record fields" },
{ false, 'l', "local", "local variables" },
{ true, 'L', "label", "block label" },
{ true, 'P', "package", "packages" },
{ true, 'p', "procedure", "procedures" },
{ false, 'r', "record", "records" },
{ true, 's', "subtype", "subtypes" },
{ true, 't', "table", "tables" },
{ true, 'T', "trigger", "triggers" },
{ true, 'v', "variable", "variables" },
{ true, 'i', "index", "indexes" },
{ true, 'e', "event", "events" },
{ true, 'U', "publication", "publications" },
{ true, 'R', "service", "services" },
{ true, 'D', "domain", "domains" },
{ true, 'V', "view", "views" },
{ true, 'n', "synonym", "synonyms" },
{ true, 'x', "mltable", "MobiLink Table Scripts" },
{ true, 'y', "mlconn", "MobiLink Conn Scripts" },
{ true, 'z', "mlprop", "MobiLink Properties " }
}

Definition at line 203 of file geany_sql.c.

Referenced by initialize(), makeSqlTag(), and SqlParser().