" Vim syntax file " Language: BaCon " Maintainer: Peter van Eerten " Last Change: March 6, 2010 if version < 600 syntax clear elseif exists("b:current_syntax") finish endif " BACON keywords syn keyword basicStatement WHILE DO WEND REPEAT UNTIL FOR TO NEXT SELECT OFF syn keyword basicStatement IF THEN ELSE ELIF ENDIF PRINT FORMAT INPUT TRACE syn keyword basicStatement LET END OPEN READING WRITING AS STEP BREAK DEFAULT syn keyword basicStatement APPENDING READWRITE CLOSE REWIND MEMREWIND READLN syn keyword basicStatement FROM WRITELN SUB READ ENDSUB CALL IMPORT GETLINE syn keyword basicStatement DECLARE TYPE INCLUDE SYSTEM DATA RESTORE PUTLINE syn keyword basicStatement FUNCTION ENDFUNCTION RETURN POKE PUSH PULL SEEK ON syn keyword basicStatement SLEEP SEED GETBYTE CONST COPY DELETE SETENVIRON CASE syn keyword basicStatement OFFSET WHENCE RESUME START CURRENT PUTBYTE ENDWITH syn keyword basicStatement SIZE GOTO LABEL TRAP CATCH USEC WITH SPLIT BY STOP syn keyword basicStatement ENDUSEC FILE DIRECTORY GETFILE RENAME CLEAR IS EQ syn keyword basicStatement COLOR RESET INTENSE NORMAL BLACK RED GREEN RECORD ASSOC syn keyword basicStatement YELLOW BLUE MAGENTA CYAN WHITE FG BG GOTOXY NE ISNOT syn keyword basicStatement MAKEDIR CHANGEDIR LOCAL GLOBAL RESIZE ENDSELECT OPTION syn keyword basicStatement DEF FN FREE NETWORK SEND RECEIVE SERVER SORT DOWN BASE " BACON functions syn keyword basicFunction SQR POW SIN COS TAN ABS ROUND NOT ENDFILE TELL REGEX OS syn keyword basicFunction PI CONCAT LEFT RIGHT MID LEN VAL HEX MOD CHOP DIR CURDIR syn keyword basicFunction DEC ASC CHR AND OR INSTR REVERSE STR FLOOR FILL MEMTELL syn keyword basicFunction ARGUMENT EQUAL MEMORY NL PEEK TRUE FALSE UCASE INSTRREV syn keyword basicFunction GETENVIRON LCASE GETKEY ISTRUE ISFALSE NOW DAY RND EXEC syn keyword basicFunction int double float long char short void signed unsigned static syn keyword basicFunction MONTH YEAR HOUR MINUTE SECOND WEEKDAY EVEN ODD VERSION TAB syn keyword basicFunction STRING NUMBER FLOATING SEARCH MAXRANDOM WEEK TIMEVALUE REPLACE syn keyword basicFunction ADDRESS ERROR ERR FILELEN FILETYPE FILEEXISTS WAIT SPC RANDOM "integer number, or floating point number without a dot. syn match basicNumber "\<\d\+\>" "floating point number, with dot syn match basicNumber "\<\d\+\.\d*\>" "floating point number, starting with a dot syn match basicNumber "\.\d\+\>" " String and Character contstants syn match basicSpecial contained "\\\d\d\d\|\\." syn region basicString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=basicSpecial syn region basicComment start="REM" end="$" contains=basicTodo syn region basicComment start="'" end="$" contains=basicTodo syn match basicTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1 syn match basicMathsOperator "-\|=\|[:<>+\*^/\\]" if version >= 508 || !exists("did_basic_syntax_inits") if version < 508 let did_basic_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink basicStatement Statement HiLink basicFunction Identifier HiLink basicNumber Number HiLink basicString String HiLink basicComment Comment HiLink basicSpecial Special HiLink basicTodo Todo HiLink basicTypeSpecifier Type HiLink basicFilenumber basicTypeSpecifier hi basicMathsOperator term=bold cterm=bold gui=bold delcommand HiLink endif let b:current_syntax = "bacon"