| " Vim syntax file |
| " Language: BASIC |
| " Maintainer: Allan Kelly <allan@fruitloaf.co.uk> |
| " Last Change: Tue Sep 14 14:24:23 BST 1999 |
| |
| " First version based on Micro$soft QBASIC circa 1989, as documented in |
| " 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989. |
| " This syntax file not a complete implementation yet. Send suggestions to the |
| " maintainer. |
| |
| " 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 |
| |
| " A bunch of useful BASIC keywords |
| syn keyword basicStatement BEEP beep Beep BLOAD bload Bload BSAVE bsave Bsave |
| syn keyword basicStatement CALL call Call ABSOLUTE absolute Absolute |
| syn keyword basicStatement CHAIN chain Chain CHDIR chdir Chdir |
| syn keyword basicStatement CIRCLE circle Circle CLEAR clear Clear |
| syn keyword basicStatement CLOSE close Close CLS cls Cls COLOR color Color |
| syn keyword basicStatement COM com Com COMMON common Common |
| syn keyword basicStatement CONST const Const DATA data Data |
| syn keyword basicStatement DECLARE declare Declare DEF def Def |
| syn keyword basicStatement DEFDBL defdbl Defdbl DEFINT defint Defint |
| syn keyword basicStatement DEFLNG deflng Deflng DEFSNG defsng Defsng |
| syn keyword basicStatement DEFSTR defstr Defstr DIM dim Dim |
| syn keyword basicStatement DO do Do LOOP loop Loop |
| syn keyword basicStatement DRAW draw Draw END end End |
| syn keyword basicStatement ENVIRON environ Environ ERASE erase Erase |
| syn keyword basicStatement ERROR error Error EXIT exit Exit |
| syn keyword basicStatement FIELD field Field FILES files Files |
| syn keyword basicStatement FOR for For NEXT next Next |
| syn keyword basicStatement FUNCTION function Function GET get Get |
| syn keyword basicStatement GOSUB gosub Gosub GOTO goto Goto |
| syn keyword basicStatement IF if If THEN then Then ELSE else Else |
| syn keyword basicStatement INPUT input Input INPUT# input# Input# |
| syn keyword basicStatement IOCTL ioctl Ioctl KEY key Key |
| syn keyword basicStatement KILL kill Kill LET let Let |
| syn keyword basicStatement LINE line Line LOCATE locate Locate |
| syn keyword basicStatement LOCK lock Lock UNLOCK unlock Unlock |
| syn keyword basicStatement LPRINT lprint Lprint USING using Using |
| syn keyword basicStatement LSET lset Lset MKDIR mkdir Mkdir |
| syn keyword basicStatement NAME name Name ON on On |
| syn keyword basicStatement ERROR error Error OPEN open Open |
| syn keyword basicStatement OPTION option Option BASE base Base |
| syn keyword basicStatement OUT out Out PAINT paint Paint |
| syn keyword basicStatement PALETTE palette Palette PCOPY pcopy Pcopy |
| syn keyword basicStatement PEN pen Pen PLAY play Play |
| syn keyword basicStatement PMAP pmap Pmap POKE poke Poke |
| syn keyword basicStatement PRESET preset Preset PRINT print Print |
| syn keyword basicStatement PRINT# print# Print# USING using Using |
| syn keyword basicStatement PSET pset Pset PUT put Put |
| syn keyword basicStatement RANDOMIZE randomize Randomize READ read Read |
| syn keyword basicStatement REDIM redim Redim RESET reset Reset |
| syn keyword basicStatement RESTORE restore Restore RESUME resume Resume |
| syn keyword basicStatement RETURN return Return RMDIR rmdir Rmdir |
| syn keyword basicStatement RSET rset Rset RUN run Run |
| syn keyword basicStatement SEEK seek Seek SELECT select Select |
| syn keyword basicStatement CASE case Case SHARED shared Shared |
| syn keyword basicStatement SHELL shell Shell SLEEP sleep Sleep |
| syn keyword basicStatement SOUND sound Sound STATIC static Static |
| syn keyword basicStatement STOP stop Stop STRIG strig Strig |
| syn keyword basicStatement SUB sub Sub SWAP swap Swap |
| syn keyword basicStatement SYSTEM system System TIMER timer Timer |
| syn keyword basicStatement TROFF troff Troff TRON tron Tron |
| syn keyword basicStatement TYPE type Type UNLOCK unlock Unlock |
| syn keyword basicStatement VIEW view View WAIT wait Wait |
| syn keyword basicStatement WHILE while While WEND wend Wend |
| syn keyword basicStatement WIDTH width Width WINDOW window Window |
| syn keyword basicStatement WRITE write Write DATE$ date$ Date$ |
| syn keyword basicStatement MID$ mid$ Mid$ TIME$ time$ Time$ |
| |
| syn keyword basicFunction ABS abs Abs ASC asc Asc |
| syn keyword basicFunction ATN atn Atn CDBL cdbl Cdbl |
| syn keyword basicFunction CINT cint Cint CLNG clng Clng |
| syn keyword basicFunction COS cos Cos CSNG csng Csng |
| syn keyword basicFunction CSRLIN csrlin Csrlin CVD cvd Cvd |
| syn keyword basicFunction CVDMBF cvdmbf Cvdmbf CVI cvi Cvi |
| syn keyword basicFunction CVL cvl Cvl CVS cvs Cvs |
| syn keyword basicFunction CVSMBF cvsmbf Cvsmbf EOF eof Eof |
| syn keyword basicFunction ERDEV erdev Erdev ERL erl Erl |
| syn keyword basicFunction ERR err Err EXP exp Exp |
| syn keyword basicFunction FILEATTR fileattr Fileattr FIX fix Fix |
| syn keyword basicFunction FRE fre Fre FREEFILE freefile Freefile |
| syn keyword basicFunction INP inp Inp INSTR instr Instr |
| syn keyword basicFunction INT int Int LBOUND lbound Lbound |
| syn keyword basicFunction LEN len Len LOC loc Loc |
| syn keyword basicFunction LOF lof Lof LOG log Log |
| syn keyword basicFunction LPOS lpos Lpos PEEK peek Peek |
| syn keyword basicFunction PEN pen Pen POINT point Point |
| syn keyword basicFunction POS pos Pos RND rnd Rnd |
| syn keyword basicFunction SADD sadd Sadd SCREEN screen Screen |
| syn keyword basicFunction SEEK seek Seek SETMEM setmem Setmem |
| syn keyword basicFunction SGN sgn Sgn SIN sin Sin |
| syn keyword basicFunction SPC spc Spc SQR sqr Sqr |
| syn keyword basicFunction STICK stick Stick STRIG strig Strig |
| syn keyword basicFunction TAB tab Tab TAN tan Tan |
| syn keyword basicFunction UBOUND ubound Ubound VAL val Val |
| syn keyword basicFunction VALPTR valptr Valptr VALSEG valseg Valseg |
| syn keyword basicFunction VARPTR varptr Varptr VARSEG varseg Varseg |
| syn keyword basicFunction CHR$ Chr$ chr$ COMMAND$ command$ Command$ |
| syn keyword basicFunction DATE$ date$ Date$ ENVIRON$ environ$ Environ$ |
| syn keyword basicFunction ERDEV$ erdev$ Erdev$ HEX$ hex$ Hex$ |
| syn keyword basicFunction INKEY$ inkey$ Inkey$ INPUT$ input$ Input$ |
| syn keyword basicFunction IOCTL$ ioctl$ Ioctl$ LCASES$ lcases$ Lcases$ |
| syn keyword basicFunction LAFT$ laft$ Laft$ LTRIM$ ltrim$ Ltrim$ |
| syn keyword basicFunction MID$ mid$ Mid$ MKDMBF$ mkdmbf$ Mkdmbf$ |
| syn keyword basicFunction MKD$ mkd$ Mkd$ MKI$ mki$ Mki$ |
| syn keyword basicFunction MKL$ mkl$ Mkl$ MKSMBF$ mksmbf$ Mksmbf$ |
| syn keyword basicFunction MKS$ mks$ Mks$ OCT$ oct$ Oct$ |
| syn keyword basicFunction RIGHT$ right$ Right$ RTRIM$ rtrim$ Rtrim$ |
| syn keyword basicFunction SPACE$ space$ Space$ STR$ str$ Str$ |
| syn keyword basicFunction STRING$ string$ String$ TIME$ time$ Time$ |
| syn keyword basicFunction UCASE$ ucase$ Ucase$ VARPTR$ varptr$ Varptr$ |
| syn keyword basicTodo contained TODO |
| |
| "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="^[ \t]*'" end="$" contains=basicTodo |
| syn region basicLineNumber start="^\d" end="\s" |
| syn match basicTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1 |
| " Used with OPEN statement |
| syn match basicFilenumber "#\d\+" |
| "syn sync ccomment basicComment |
| " syn match basicMathsOperator "[<>+\*^/\\=-]" |
| syn match basicMathsOperator "-\|=\|[:<>+\*^/\\]\|AND\|OR" |
| |
| " 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_basic_syntax_inits") |
| if version < 508 |
| let did_basic_syntax_inits = 1 |
| command -nargs=+ HiLink hi link <args> |
| else |
| command -nargs=+ HiLink hi def link <args> |
| endif |
| |
| HiLink basicLabel Label |
| HiLink basicConditional Conditional |
| HiLink basicRepeat Repeat |
| HiLink basicLineNumber Comment |
| HiLink basicNumber Number |
| HiLink basicError Error |
| HiLink basicStatement Statement |
| HiLink basicString String |
| HiLink basicComment Comment |
| HiLink basicSpecial Special |
| HiLink basicTodo Todo |
| HiLink basicFunction Identifier |
| HiLink basicTypeSpecifier Type |
| HiLink basicFilenumber basicTypeSpecifier |
| "hi basicMathsOperator term=bold cterm=bold gui=bold |
| |
| delcommand HiLink |
| endif |
| |
| let b:current_syntax = "basic" |
| |
| " vim: ts=8 |