blob: 884c37ebf5611b27a173d3022fa584f658fd7b9c [file] [log] [blame]
" Vim syntax file
" Language: Focus Executable
" Maintainer: Rob Brady <robb@datatone.com>
" Last Change: $Date$
" URL: http://www.datatone.com/~robb/vim/syntax/focexec.vim
" $Revision$
" this is a very simple syntax file - I will be improving it
" one thing is how to do computes
" I don't like that &vars and FUSE() functions highlight to the same color
" I think some of these things should get different hilights -
" should MODIFY commands look different than TABLE?
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case match
" A bunch of useful keywords
syn keyword focexecTable TABLE SUM BY ACROSS END PRINT HOLD LIST NOPRINT
syn keyword focexecTable SUBFOOT SUBHEAD HEADING FOOTING PAGE-BREAK AS
syn keyword focexecTable WHERE AND OR NOSPLIT FORMAT
syn keyword focexecModify MODIFY DATA ON FIXFORM PROMPT MATCH COMPUTE
syn keyword focexecModify GOTO CASE ENDCASE TYPE NOMATCH REJECT INCLUDE
syn keyword focexecModify CONTINUE FROM
syn keyword focexecNormal CHECK FILE CREATE EX SET IF FILEDEF DEFINE
syn keyword focexecNormal REBUILD IF RECORDLIMIT FI EQ JOIN
syn keyword focexecJoin IN TO
syn keyword focexecFileDef DISK
syn keyword focexecSet MSG ALL
syn match focexecDash "-RUN"
syn match focexecDash "-PROMPT"
syn match focexecDash "-WINFORM"
" String and Character constants
syn region focexecString1 start=+"+ end=+"+
syn region focexecString2 start=+'+ end=+'+
"amper variables
syn match focexecAmperVar "&&\=[A-Z_]\+"
"fuse functions
syn keyword focexecFuse GETUSER GETUSR WHOAMI FEXERR ASIS GETTOK UPCASE LOCASE
syn keyword focexecFuse SUBSTR TODAY TODAYI POSIT HHMMSS BYTVAL EDAUT1 BITVAL
syn keyword focexecFuse BITSON FGETENV FPUTENV HEXBYT SPAWN YM YMI JULDAT
syn keyword focexecFuse JULDATI DOWK DOWKI DOWKLI CHGDAT CHGDATI FTOA ATODBL
syn keyword focexecFuse SOUNDEX RJUST REVERSE PARAG OVRLAY LJUST CTRFLD CTRAN
syn keyword focexecFuse CHKFMT ARGLEN GREGDT GREGDTI DTYMD DTYMDI DTDMY DTDMYI
syn keyword focexecFuse DTYDM DTYDMI DTMYD DTMYDI DTDYM DTDYMI DAYMD DAYMDI
syn keyword focexecFuse DAMDY DAMDYI DADMY DADMYI AYM AYMI AYMD AYMDI CHKPCK
syn keyword focexecFuse IMOD FMOD DMOD PCKOUT EXP BAR SPELLNM SPELLNUM RTCIVP
syn keyword focexecFuse PRDUNI PRDNOR RDNORM RDUNIF LCWORD ITOZ RLPHLD IBIPRO
syn keyword focexecFuse IBIPRW IBIPRC IBIPRU IBIRCP PTHDAT ITOPACK ITONUM
syn keyword focexecFuse DSMEXEC DSMEVAL DSMERRC MSMEXEC MSMEVAL MSMERRC EXTDXI
syn keyword focexecFuse BAANHASH EDAYSI DTOG GTOD HSETPT HPART HTIME HNAME
syn keyword focexecFuse HADD HDIFF HDATE HGETC HCNVRT HDTTM HMIDNT TEMPPATH
syn keyword focexecFuse DATEADD DATEDIF DATEMOV DATECVT EURHLD EURXCH FINDFOC
syn keyword focexecFuse FERRMES CNCTUSR CURRPATH USERPATH SYSTEM ASKYN
syn keyword focexecFuse FUSEMENU POPEDIT POPFILE
syn match focexecNumber "\<\d\+\>"
syn match focexecNumber "\<\d\+\.\d*\>"
syn match focexecComment "-\*.*"
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_focexec_syntax_inits")
if version < 508
let did_focexec_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink focexecString1 String
HiLink focexecString2 String
HiLink focexecNumber Number
HiLink focexecComment Comment
HiLink focexecTable Keyword
HiLink focexecModify Keyword
HiLink focexecNormal Keyword
HiLink focexecSet Keyword
HiLink focexecDash Keyword
HiLink focexecFileDef Keyword
HiLink focexecJoin Keyword
HiLink focexecAmperVar Identifier
HiLink focexecFuse Function
delcommand HiLink
endif
let b:current_syntax = "focexec"
" vim: ts=8