1" Vim syntax file
2" Language:	Informix 4GL
3" Maintainer:	Rafal M. Sulejman <rms@poczta.onet.pl>
4" Update:	26 Sep 2002
5" Changes:
6" - Dynamic 4GL/FourJs/4GL 7.30 pseudo comment directives (Julian Bridle)
7" - Conditionally allow case insensitive keywords (Julian Bridle)
8"
9
10" For version 5.x: Clear all syntax items
11" For version 6.x: Quit when a syntax file was already loaded
12if version < 600
13  syntax clear
14elseif exists("b:current_syntax")
15  finish
16endif
17
18if exists("fgl_ignore_case")
19  syntax case ignore
20else
21  syntax case match
22endif
23syn keyword fglKeyword ABORT ABS ABSOLUTE ACCEPT ACCESS ACOS ADD AFTER ALL
24syn keyword fglKeyword ALLOCATE ALTER AND ANSI ANY APPEND ARG_VAL ARRAY ARR_COUNT
25syn keyword fglKeyword ARR_CURR AS ASC ASCENDING ASCII ASIN AT ATAN ATAN2 ATTACH
26syn keyword fglKeyword ATTRIBUTE ATTRIBUTES AUDIT AUTHORIZATION AUTO AUTONEXT AVERAGE AVG
27syn keyword fglKeyword BEFORE BEGIN BETWEEN BLACK BLINK BLUE BOLD BORDER BOTH BOTTOM
28syn keyword fglKeyword BREAK BUFFERED BY BYTE
29syn keyword fglKeyword CALL CASCADE CASE CHAR CHARACTER CHARACTER_LENGTH CHAR_LENGTH
30syn keyword fglKeyword CHECK CLASS_ORIGIN CLEAR CLIPPED CLOSE CLUSTER COLOR
31syn keyword fglKeyword COLUMN COLUMNS COMMAND COMMENT COMMENTS COMMIT COMMITTED
32syn keyword fglKeyword COMPOSITES COMPRESS CONCURRENT CONNECT CONNECTION
33syn keyword fglKeyword CONNECTION_ALIAS CONSTRAINED CONSTRAINT CONSTRAINTS CONSTRUCT
34syn keyword fglKeyword CONTINUE CONTROL COS COUNT CREATE CURRENT CURSOR CYAN
35syn keyword fglKeyword DATA DATABASE DATASKIP DATE DATETIME DAY DBA DBINFO DBSERVERNAME
36syn keyword fglKeyword DEALLOCATE DEBUG DEC DECIMAL DECLARE DEFAULT DEFAULTS DEFER
37syn keyword fglKeyword DEFERRED DEFINE DELETE DELIMITER DELIMITERS DESC DESCENDING
38syn keyword fglKeyword DESCRIBE DESCRIPTOR DETACH DIAGNOSTICS DIM DIRTY DISABLED
39syn keyword fglKeyword DISCONNECT DISPLAY DISTINCT DISTRIBUTIONS DO DORMANT DOUBLE
40syn keyword fglKeyword DOWN DOWNSHIFT DROP
41syn keyword fglKeyword EACH ELIF ELSE ENABLED END ENTRY ERROR ERRORLOG ERR_GET
42syn keyword fglKeyword ERR_PRINT ERR_QUIT ESC ESCAPE EVERY EXCEPTION EXCLUSIVE
43syn keyword fglKeyword EXEC EXECUTE EXISTS EXIT EXP EXPLAIN EXPRESSION EXTEND EXTENT
44syn keyword fglKeyword EXTERN EXTERNAL
45syn keyword fglKeyword F1 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F2 F20 F21 F22 F23
46syn keyword fglKeyword F24 F25 F26 F27 F28 F29 F3 F30 F31 F32 F33 F34 F35 F36 F37 F38
47syn keyword fglKeyword F39 F4 F40 F41 F42 F43 F44 F45 F46 F47 F48 F49 F5 F50 F51 F52
48syn keyword fglKeyword F53 F54 F55 F56 F57 F58 F59 F6 F60 F61 F62 F63 F64 F7 F8 F9
49syn keyword fglKeyword FALSE FETCH FGL_GETENV FGL_KEYVAL FGL_LASTKEY FIELD FIELD_TOUCHED
50syn keyword fglKeyword FILE FILLFACTOR FILTERING FINISH FIRST FLOAT FLUSH FOR
51syn keyword fglKeyword FOREACH FOREIGN FORM FORMAT FORMONLY FORTRAN FOUND FRACTION
52syn keyword fglKeyword FRAGMENT FREE FROM FUNCTION GET_FLDBUF GLOBAL GLOBALS GO GOTO
53syn keyword fglKeyword GRANT GREEN GROUP HAVING HEADER HELP HEX HIDE HIGH HOLD HOUR
54syn keyword fglKeyword IDATA IF ILENGTH IMMEDIATE IN INCLUDE INDEX INDEXES INDICATOR
55syn keyword fglKeyword INFIELD INIT INITIALIZE INPUT INSERT INSTRUCTIONS INT INTEGER
56syn keyword fglKeyword INTERRUPT INTERVAL INTO INT_FLAG INVISIBLE IS ISAM ISOLATION
57syn keyword fglKeyword ITYPE
58syn keyword fglKeyword KEY LABEL
59syn keyword fglKeyword LANGUAGE LAST LEADING LEFT LENGTH LET LIKE LINE
60syn keyword fglKeyword LINENO LINES LOAD LOCATE LOCK LOG LOG10 LOGN LONG LOW
61syn keyword fglKeyword MAGENTA MAIN MARGIN MATCHES MAX MDY MEDIUM MEMORY MENU MESSAGE
62syn keyword fglKeyword MESSAGE_LENGTH MESSAGE_TEXT MIN MINUTE MOD MODE MODIFY MODULE
63syn keyword fglKeyword MONEY MONTH MORE
64syn keyword fglKeyword NAME NCHAR NEED NEW NEXT NEXTPAGE NO NOCR NOENTRY NONE NORMAL
65syn keyword fglKeyword NOT NOTFOUND NULL NULLABLE NUMBER NUMERIC NUM_ARGS NVARCHAR
66syn keyword fglKeyword OCTET_LENGTH OF OFF OLD ON ONLY OPEN OPTIMIZATION OPTION OPTIONS
67syn keyword fglKeyword OR ORDER OTHERWISE OUTER OUTPUT
68syn keyword fglKeyword PAGE PAGENO PAUSE PDQPRIORITY PERCENT PICTURE PIPE POW PRECISION
69syn keyword fglKeyword PREPARE PREVIOUS PREVPAGE PRIMARY PRINT PRINTER PRIOR PRIVATE
70syn keyword fglKeyword PRIVILEGES PROCEDURE PROGRAM PROMPT PUBLIC PUT
71syn keyword fglKeyword QUIT QUIT_FLAG
72syn keyword fglKeyword RAISE RANGE READ READONLY REAL RECORD RECOVER RED REFERENCES
73syn keyword fglKeyword REFERENCING REGISTER RELATIVE REMAINDER REMOVE RENAME REOPTIMIZATION
74syn keyword fglKeyword REPEATABLE REPORT REQUIRED RESOLUTION RESOURCE RESTRICT
75syn keyword fglKeyword RESUME RETURN RETURNED_SQLSTATE RETURNING REVERSE REVOKE RIGHT
76syn keyword fglKeyword ROBIN ROLE ROLLBACK ROLLFORWARD ROOT ROUND ROW ROWID ROWIDS
77syn keyword fglKeyword ROWS ROW_COUNT RUN
78syn keyword fglKeyword SCALE SCHEMA SCREEN SCROLL SCR_LINE SECOND SECTION SELECT
79syn keyword fglKeyword SERIAL SERIALIZABLE SERVER_NAME SESSION SET SET_COUNT SHARE
80syn keyword fglKeyword SHORT SHOW SITENAME SIZE SIZEOF SKIP SLEEP SMALLFLOAT SMALLINT
81syn keyword fglKeyword SOME SPACE SPACES SQL SQLAWARN SQLCA SQLCODE SQLERRD SQLERRM
82syn keyword fglKeyword SQLERROR SQLERRP SQLSTATE SQLWARNING SQRT STABILITY START
83syn keyword fglKeyword STARTLOG STATIC STATISTICS STATUS STDEV STEP STOP STRING STRUCT
84syn keyword fglKeyword SUBCLASS_ORIGIN SUM SWITCH SYNONYM SYSTEM
85syn keyword fglKeyword SysBlobs SysChecks SysColAuth SysColDepend SysColumns
86syn keyword fglKeyword SysConstraints SysDefaults SysDepend SysDistrib SysFragAuth
87syn keyword fglKeyword SysFragments SysIndexes SysObjState SysOpClstr SysProcAuth
88syn keyword fglKeyword SysProcBody SysProcPlan SysProcedures SysReferences SysRoleAuth
89syn keyword fglKeyword SysSynTable SysSynonyms SysTabAuth SysTables SysTrigBody
90syn keyword fglKeyword SysTriggers SysUsers SysViews SysViolations
91syn keyword fglKeyword TAB TABLE TABLES TAN TEMP TEXT THEN THROUGH THRU TIME TO
92syn keyword fglKeyword TODAY TOP TOTAL TRACE TRAILER TRAILING TRANSACTION TRIGGER
93syn keyword fglKeyword TRIGGERS TRIM TRUE TRUNC TYPE TYPEDEF
94syn keyword fglKeyword UNCOMMITTED UNCONSTRAINED UNDERLINE UNION UNIQUE UNITS UNLOAD
95syn keyword fglKeyword UNLOCK UNSIGNED UP UPDATE UPSHIFT USER USING
96syn keyword fglKeyword VALIDATE VALUE VALUES VARCHAR VARIABLES VARIANCE VARYING
97syn keyword fglKeyword VERIFY VIEW VIOLATIONS
98syn keyword fglKeyword WAIT WAITING WARNING WEEKDAY WHEN WHENEVER WHERE WHILE WHITE
99syn keyword fglKeyword WINDOW WITH WITHOUT WORDWRAP WORK WRAP WRITE
100syn keyword fglKeyword YEAR YELLOW
101syn keyword fglKeyword ZEROFILL
102
103" Strings and characters:
104syn region fglString		start=+"+  skip=+\\\\\|\\"+  end=+"+
105syn region fglString		start=+'+  skip=+\\\\\|\\"+  end=+'+
106
107" Numbers:
108syn match fglNumber		"-\=\<[0-9]*\.\=[0-9_]\>"
109
110" Comments:
111syn region fglComment    start="{"  end="}"
112syn match fglComment	"--.*"
113syn match fglComment	"#.*"
114
115" Not a comment even though it looks like one (Dynamic 4GL/FourJs directive)
116syn match fglSpecial	"--#"
117syn match fglSpecial	"--@"
118
119syn sync ccomment fglComment
120
121" Define the default highlighting.
122" For version 5.7 and earlier: only when not done already
123" For version 5.8 and later: only when an item doesn't have highlighting yet
124if version >= 508 || !exists("did_fgl_syntax_inits")
125  if version < 508
126    let did_fgl_syntax_inits = 1
127    command -nargs=+ HiLink hi link <args>
128  else
129    command -nargs=+ HiLink hi def link <args>
130  endif
131
132  HiLink fglComment	Comment
133  "HiLink fglKeyword	fglSpecial
134  HiLink fglKeyword	fglStatement
135  HiLink fglNumber	Number
136  HiLink fglOperator	fglStatement
137  HiLink fglSpecial	Special
138  HiLink fglStatement	Statement
139  HiLink fglString	String
140  HiLink fglType	Type
141
142  delcommand HiLink
143endif
144
145let b:current_syntax = "fgl"
146
147" vim: ts=8
148