2 " Language: Focus Executable
3 " Maintainer: Rob Brady <robb@datatone.com>
4 " Last Change: $Date: 2001/06/07 21:35:10 $
5 " URL: http://www.datatone.com/~robb/vim/syntax/focexec.vim
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?
14 " For version 5.x: Clear all syntax items
15 " For version 6.x: Quit when a syntax file was already loaded
18 elseif exists("b:current_syntax")
24 " A bunch of useful keywords
25 syn keyword focexecTable TABLE SUM BY ACROSS END PRINT HOLD LIST NOPRINT
26 syn keyword focexecTable SUBFOOT SUBHEAD HEADING FOOTING PAGE-BREAK AS
27 syn keyword focexecTable WHERE AND OR NOSPLIT FORMAT
28 syn keyword focexecModify MODIFY DATA ON FIXFORM PROMPT MATCH COMPUTE
29 syn keyword focexecModify GOTO CASE ENDCASE TYPE NOMATCH REJECT INCLUDE
30 syn keyword focexecModify CONTINUE FROM
31 syn keyword focexecNormal CHECK FILE CREATE EX SET IF FILEDEF DEFINE
32 syn keyword focexecNormal REBUILD IF RECORDLIMIT FI EQ JOIN
33 syn keyword focexecJoin IN TO
34 syn keyword focexecFileDef DISK
35 syn keyword focexecSet MSG ALL
36 syn match focexecDash "-RUN"
37 syn match focexecDash "-PROMPT"
38 syn match focexecDash "-WINFORM"
40 " String and Character constants
41 syn region focexecString1 start=+"+ end=+"+
42 syn region focexecString2 start=+'+ end=+'+
45 syn match focexecAmperVar "&&\=[A-Z_]\+"
48 syn keyword focexecFuse GETUSER GETUSR WHOAMI FEXERR ASIS GETTOK UPCASE LOCASE
49 syn keyword focexecFuse SUBSTR TODAY TODAYI POSIT HHMMSS BYTVAL EDAUT1 BITVAL
50 syn keyword focexecFuse BITSON FGETENV FPUTENV HEXBYT SPAWN YM YMI JULDAT
51 syn keyword focexecFuse JULDATI DOWK DOWKI DOWKLI CHGDAT CHGDATI FTOA ATODBL
52 syn keyword focexecFuse SOUNDEX RJUST REVERSE PARAG OVRLAY LJUST CTRFLD CTRAN
53 syn keyword focexecFuse CHKFMT ARGLEN GREGDT GREGDTI DTYMD DTYMDI DTDMY DTDMYI
54 syn keyword focexecFuse DTYDM DTYDMI DTMYD DTMYDI DTDYM DTDYMI DAYMD DAYMDI
55 syn keyword focexecFuse DAMDY DAMDYI DADMY DADMYI AYM AYMI AYMD AYMDI CHKPCK
56 syn keyword focexecFuse IMOD FMOD DMOD PCKOUT EXP BAR SPELLNM SPELLNUM RTCIVP
57 syn keyword focexecFuse PRDUNI PRDNOR RDNORM RDUNIF LCWORD ITOZ RLPHLD IBIPRO
58 syn keyword focexecFuse IBIPRW IBIPRC IBIPRU IBIRCP PTHDAT ITOPACK ITONUM
59 syn keyword focexecFuse DSMEXEC DSMEVAL DSMERRC MSMEXEC MSMEVAL MSMERRC EXTDXI
60 syn keyword focexecFuse BAANHASH EDAYSI DTOG GTOD HSETPT HPART HTIME HNAME
61 syn keyword focexecFuse HADD HDIFF HDATE HGETC HCNVRT HDTTM HMIDNT TEMPPATH
62 syn keyword focexecFuse DATEADD DATEDIF DATEMOV DATECVT EURHLD EURXCH FINDFOC
63 syn keyword focexecFuse FERRMES CNCTUSR CURRPATH USERPATH SYSTEM ASKYN
64 syn keyword focexecFuse FUSEMENU POPEDIT POPFILE
66 syn match focexecNumber "\<\d\+\>"
67 syn match focexecNumber "\<\d\+\.\d*\>"
69 syn match focexecComment "-\*.*"
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
74 if version >= 508 || !exists("did_focexec_syntax_inits")
76 let did_focexec_syntax_inits = 1
77 command -nargs=+ HiLink hi link <args>
79 command -nargs=+ HiLink hi def link <args>
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
99 let b:current_syntax = "focexec"