" Vim syntax file " Language: BaCon " Maintainer: Peter van Eerten " Last Change: June 21, 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 LOOKUP syn keyword basicStatement IF THEN ELSE ELIF ENDIF PRINT FORMAT INPUT TRACE STOP syn keyword basicStatement LET END OPEN READING WRITING AS STEP BREAK DEFAULT ALIAS syn keyword basicStatement APPENDING READWRITE CLOSE REWIND MEMREWIND READLN CURSOR syn keyword basicStatement FROM WRITELN SUB READ ENDSUB CALL IMPORT GETLINE INCR syn keyword basicStatement DECLARE TYPE INCLUDE SYSTEM DATA RESTORE PUTLINE DECR syn keyword basicStatement FUNCTION ENDFUNCTION RETURN POKE PUSH PULL SEEK ON ALARM syn keyword basicStatement SLEEP SEED GETBYTE CONST COPY DELETE SETENVIRON CASE RELATE syn keyword basicStatement OFFSET WHENCE RESUME START CURRENT PUTBYTE ENDWITH SOCKET syn keyword basicStatement SIZE GOTO LABEL TRAP CATCH USEC WITH SPLIT BY COMPARE syn keyword basicStatement ENDUSEC FILE DIRECTORY GETFILE RENAME CLEAR IS EQ PROTO 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 match basicstrFunction "ARGUMENT\$\|CHOP\$\|CHR\$\|CONCAT\$\|CURDIR\$\|ERR\$\|EXEC\$\|FILL\$" syn match basicstrFunction "GETENVIRON\$\|HEX\$\|LCASE\$\|LEFT\$\|MID\$\|MONTH\$\|NL\$\|OS\$\|REPLACE\$" syn match basicstrFunction "REVERSE\$\|RIGHT\$\|SPC\$\|STR\$\|TAB\$\|UCASE\$\|VERSION\$\|WEEKDAY\$" syn keyword basicFunction SQR POW SIN COS TAN ABS ROUND NOT ENDFILE TELL REGEX ISTRUE syn keyword basicFunction PI LEN VAL MOD DIR DEC ASC AND OR INSTR FLOOR ISFALSE NOW syn keyword basicFunction MEMORY PEEK TRUE FALSE INSTRREV GETX GETY DAY RND EVEN ODD syn keyword basicFunction int double float long char short void signed unsigned static syn keyword basicFunction STRING NUMBER FLOATING SEARCH MAXRANDOM WEEK MONTH YEAR INT syn keyword basicFunction HOUR MINUTE SECOND ADDRESS ERROR FILELEN FILETYPE FILEEXISTS syn keyword basicFunction COLUMNS ROWS WAIT TIMEVALUE RANDOM EQUAL MEMTELL GETKEY "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 basicstrFunction Identifier 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"