1" Vim syntax file
2" Language:	Focus Executable
3" Maintainer:	Rob Brady <robb@datatone.com>
4" Last Change:	$Date: 2004/06/13 15:38:04 $
5" URL:		http://www.datatone.com/~robb/vim/syntax/focexec.vim
6" $Revision: 1.1 $
7
8" this is a very simple syntax file - I will be improving it
9" one thing is how to do computes
10" I don't like that &vars and FUSE() functions highlight to the same color
11" I think some of these things should get different hilights -
12"  should MODIFY commands look different than TABLE?
13
14" For version 5.x: Clear all syntax items
15" For version 6.x: Quit when a syntax file was already loaded
16if version < 600
17  syntax clear
18elseif exists("b:current_syntax")
19  finish
20endif
21
22syn case match
23
24" A bunch of useful keywords
25syn keyword focexecTable	TABLE SUM BY ACROSS END PRINT HOLD LIST NOPRINT
26syn keyword focexecTable	SUBFOOT SUBHEAD HEADING FOOTING PAGE-BREAK AS
27syn keyword focexecTable	WHERE AND OR NOSPLIT FORMAT
28syn keyword focexecModify	MODIFY DATA ON FIXFORM PROMPT MATCH COMPUTE
29syn keyword focexecModify	GOTO CASE ENDCASE TYPE NOMATCH REJECT INCLUDE
30syn keyword focexecModify	CONTINUE FROM
31syn keyword focexecNormal	CHECK FILE CREATE EX SET IF FILEDEF DEFINE
32syn keyword focexecNormal	REBUILD IF RECORDLIMIT FI EQ JOIN
33syn keyword focexecJoin		IN TO
34syn keyword focexecFileDef	DISK
35syn keyword focexecSet		MSG ALL
36syn match   focexecDash		"-RUN"
37syn match   focexecDash		"-PROMPT"
38syn match   focexecDash		"-WINFORM"
39
40" String and Character constants
41syn region  focexecString1	start=+"+ end=+"+
42syn region  focexecString2	start=+'+ end=+'+
43
44"amper variables
45syn match   focexecAmperVar	"&&\=[A-Z_]\+"
46
47"fuse functions
48syn keyword focexecFuse GETUSER GETUSR WHOAMI FEXERR ASIS GETTOK UPCASE LOCASE
49syn keyword focexecFuse SUBSTR TODAY TODAYI POSIT HHMMSS BYTVAL EDAUT1 BITVAL
50syn keyword focexecFuse BITSON FGETENV FPUTENV HEXBYT SPAWN YM YMI JULDAT
51syn keyword focexecFuse JULDATI DOWK DOWKI DOWKLI CHGDAT CHGDATI FTOA ATODBL
52syn keyword focexecFuse SOUNDEX RJUST REVERSE PARAG OVRLAY LJUST CTRFLD CTRAN
53syn keyword focexecFuse CHKFMT ARGLEN GREGDT GREGDTI DTYMD DTYMDI DTDMY DTDMYI
54syn keyword focexecFuse DTYDM DTYDMI DTMYD DTMYDI DTDYM DTDYMI DAYMD DAYMDI
55syn keyword focexecFuse DAMDY DAMDYI DADMY DADMYI AYM AYMI AYMD AYMDI CHKPCK
56syn keyword focexecFuse IMOD FMOD DMOD PCKOUT EXP BAR SPELLNM SPELLNUM RTCIVP
57syn keyword focexecFuse PRDUNI PRDNOR RDNORM RDUNIF LCWORD ITOZ RLPHLD IBIPRO
58syn keyword focexecFuse IBIPRW IBIPRC IBIPRU IBIRCP PTHDAT ITOPACK ITONUM
59syn keyword focexecFuse DSMEXEC DSMEVAL DSMERRC MSMEXEC MSMEVAL MSMERRC EXTDXI
60syn keyword focexecFuse BAANHASH EDAYSI DTOG GTOD HSETPT HPART HTIME HNAME
61syn keyword focexecFuse HADD HDIFF HDATE HGETC HCNVRT HDTTM HMIDNT TEMPPATH
62syn keyword focexecFuse DATEADD DATEDIF DATEMOV DATECVT EURHLD EURXCH FINDFOC
63syn keyword focexecFuse FERRMES CNCTUSR CURRPATH USERPATH SYSTEM ASKYN
64syn keyword focexecFuse FUSEMENU POPEDIT POPFILE
65
66syn match   focexecNumber	"\<\d\+\>"
67syn match   focexecNumber	"\<\d\+\.\d*\>"
68
69syn match   focexecComment	"-\*.*"
70
71" Define the default highlighting.
72" For version 5.7 and earlier: only when not done already
73" For version 5.8 and later: only when an item doesn't have highlighting yet
74if version >= 508 || !exists("did_focexec_syntax_inits")
75  if version < 508
76    let did_focexec_syntax_inits = 1
77    command -nargs=+ HiLink hi link <args>
78  else
79    command -nargs=+ HiLink hi def link <args>
80  endif
81
82  HiLink focexecString1		String
83  HiLink focexecString2		String
84  HiLink focexecNumber		Number
85  HiLink focexecComment		Comment
86  HiLink focexecTable		Keyword
87  HiLink focexecModify		Keyword
88  HiLink focexecNormal		Keyword
89  HiLink focexecSet		Keyword
90  HiLink focexecDash		Keyword
91  HiLink focexecFileDef		Keyword
92  HiLink focexecJoin		Keyword
93  HiLink focexecAmperVar	Identifier
94  HiLink focexecFuse		Function
95
96  delcommand HiLink
97endif
98
99let b:current_syntax = "focexec"
100
101" vim: ts=8
102