Showing the changes to lib/vimfiles/syntax/basic.vim (1 of 1336 files). Show all
Unified · Split
| @@ -0,0 +1,174 @@ | ||
| 1 | +" Vim syntax file | |
| 2 | +" Language: BASIC | |
| 3 | +" Maintainer: Allan Kelly <allan@fruitloaf.co.uk> | |
| 4 | +" Last Change: Tue Sep 14 14:24:23 BST 1999 | |
| 5 | + | |
| 6 | +" First version based on Micro$soft QBASIC circa 1989, as documented in | |
| 7 | +" 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989. | |
| 8 | +" This syntax file not a complete implementation yet. Send suggestions to the | |
| 9 | +" maintainer. | |
| 10 | + | |
| 11 | +" For version 5.x: Clear all syntax items | |
| 12 | +" For version 6.x: Quit when a syntax file was already loaded | |
| 13 | +if version < 600 | |
| 14 | + syntax clear | |
| 15 | +elseif exists("b:current_syntax") | |
| 16 | + finish | |
| 17 | +endif | |
| 18 | + | |
| 19 | +" A bunch of useful BASIC keywords | |
| 20 | +syn keyword basicStatement BEEP beep Beep BLOAD bload Bload BSAVE bsave Bsave | |
| 21 | +syn keyword basicStatement CALL call Call ABSOLUTE absolute Absolute | |
| 22 | +syn keyword basicStatement CHAIN chain Chain CHDIR chdir Chdir | |
| 23 | +syn keyword basicStatement CIRCLE circle Circle CLEAR clear Clear | |
| 24 | +syn keyword basicStatement CLOSE close Close CLS cls Cls COLOR color Color | |
| 25 | +syn keyword basicStatement COM com Com COMMON common Common | |
| 26 | +syn keyword basicStatement CONST const Const DATA data Data | |
| 27 | +syn keyword basicStatement DECLARE declare Declare DEF def Def | |
| 28 | +syn keyword basicStatement DEFDBL defdbl Defdbl DEFINT defint Defint | |
| 29 | +syn keyword basicStatement DEFLNG deflng Deflng DEFSNG defsng Defsng | |
| 30 | +syn keyword basicStatement DEFSTR defstr Defstr DIM dim Dim | |
| 31 | +syn keyword basicStatement DO do Do LOOP loop Loop | |
| 32 | +syn keyword basicStatement DRAW draw Draw END end End | |
| 33 | +syn keyword basicStatement ENVIRON environ Environ ERASE erase Erase | |
| 34 | +syn keyword basicStatement ERROR error Error EXIT exit Exit | |
| 35 | +syn keyword basicStatement FIELD field Field FILES files Files | |
| 36 | +syn keyword basicStatement FOR for For NEXT next Next | |
| 37 | +syn keyword basicStatement FUNCTION function Function GET get Get | |
| 38 | +syn keyword basicStatement GOSUB gosub Gosub GOTO goto Goto | |
| 39 | +syn keyword basicStatement IF if If THEN then Then ELSE else Else | |
| 40 | +syn keyword basicStatement INPUT input Input INPUT# input# Input# | |
| 41 | +syn keyword basicStatement IOCTL ioctl Ioctl KEY key Key | |
| 42 | +syn keyword basicStatement KILL kill Kill LET let Let | |
| 43 | +syn keyword basicStatement LINE line Line LOCATE locate Locate | |
| 44 | +syn keyword basicStatement LOCK lock Lock UNLOCK unlock Unlock | |
| 45 | +syn keyword basicStatement LPRINT lprint Lprint USING using Using | |
| 46 | +syn keyword basicStatement LSET lset Lset MKDIR mkdir Mkdir | |
| 47 | +syn keyword basicStatement NAME name Name ON on On | |
| 48 | +syn keyword basicStatement ERROR error Error OPEN open Open | |
| 49 | +syn keyword basicStatement OPTION option Option BASE base Base | |
| 50 | +syn keyword basicStatement OUT out Out PAINT paint Paint | |
| 51 | +syn keyword basicStatement PALETTE palette Palette PCOPY pcopy Pcopy | |
| 52 | +syn keyword basicStatement PEN pen Pen PLAY play Play | |
| 53 | +syn keyword basicStatement PMAP pmap Pmap POKE poke Poke | |
| 54 | +syn keyword basicStatement PRESET preset Preset PRINT print Print | |
| 55 | +syn keyword basicStatement PRINT# print# Print# USING using Using | |
| 56 | +syn keyword basicStatement PSET pset Pset PUT put Put | |
| 57 | +syn keyword basicStatement RANDOMIZE randomize Randomize READ read Read | |
| 58 | +syn keyword basicStatement REDIM redim Redim RESET reset Reset | |
| 59 | +syn keyword basicStatement RESTORE restore Restore RESUME resume Resume | |
| 60 | +syn keyword basicStatement RETURN return Return RMDIR rmdir Rmdir | |
| 61 | +syn keyword basicStatement RSET rset Rset RUN run Run | |
| 62 | +syn keyword basicStatement SEEK seek Seek SELECT select Select | |
| 63 | +syn keyword basicStatement CASE case Case SHARED shared Shared | |
| 64 | +syn keyword basicStatement SHELL shell Shell SLEEP sleep Sleep | |
| 65 | +syn keyword basicStatement SOUND sound Sound STATIC static Static | |
| 66 | +syn keyword basicStatement STOP stop Stop STRIG strig Strig | |
| 67 | +syn keyword basicStatement SUB sub Sub SWAP swap Swap | |
| 68 | +syn keyword basicStatement SYSTEM system System TIMER timer Timer | |
| 69 | +syn keyword basicStatement TROFF troff Troff TRON tron Tron | |
| 70 | +syn keyword basicStatement TYPE type Type UNLOCK unlock Unlock | |
| 71 | +syn keyword basicStatement VIEW view View WAIT wait Wait | |
| 72 | +syn keyword basicStatement WHILE while While WEND wend Wend | |
| 73 | +syn keyword basicStatement WIDTH width Width WINDOW window Window | |
| 74 | +syn keyword basicStatement WRITE write Write DATE$ date$ Date$ | |
| 75 | +syn keyword basicStatement MID$ mid$ Mid$ TIME$ time$ Time$ | |
| 76 | + | |
| 77 | +syn keyword basicFunction ABS abs Abs ASC asc Asc | |
| 78 | +syn keyword basicFunction ATN atn Atn CDBL cdbl Cdbl | |
| 79 | +syn keyword basicFunction CINT cint Cint CLNG clng Clng | |
| 80 | +syn keyword basicFunction COS cos Cos CSNG csng Csng | |
| 81 | +syn keyword basicFunction CSRLIN csrlin Csrlin CVD cvd Cvd | |
| 82 | +syn keyword basicFunction CVDMBF cvdmbf Cvdmbf CVI cvi Cvi | |
| 83 | +syn keyword basicFunction CVL cvl Cvl CVS cvs Cvs | |
| 84 | +syn keyword basicFunction CVSMBF cvsmbf Cvsmbf EOF eof Eof | |
| 85 | +syn keyword basicFunction ERDEV erdev Erdev ERL erl Erl | |
| 86 | +syn keyword basicFunction ERR err Err EXP exp Exp | |
| 87 | +syn keyword basicFunction FILEATTR fileattr Fileattr FIX fix Fix | |
| 88 | +syn keyword basicFunction FRE fre Fre FREEFILE freefile Freefile | |
| 89 | +syn keyword basicFunction INP inp Inp INSTR instr Instr | |
| 90 | +syn keyword basicFunction INT int Int LBOUND lbound Lbound | |
| 91 | +syn keyword basicFunction LEN len Len LOC loc Loc | |
| 92 | +syn keyword basicFunction LOF lof Lof LOG log Log | |
| 93 | +syn keyword basicFunction LPOS lpos Lpos PEEK peek Peek | |
| 94 | +syn keyword basicFunction PEN pen Pen POINT point Point | |
| 95 | +syn keyword basicFunction POS pos Pos RND rnd Rnd | |
| 96 | +syn keyword basicFunction SADD sadd Sadd SCREEN screen Screen | |
| 97 | +syn keyword basicFunction SEEK seek Seek SETMEM setmem Setmem | |
| 98 | +syn keyword basicFunction SGN sgn Sgn SIN sin Sin | |
| 99 | +syn keyword basicFunction SPC spc Spc SQR sqr Sqr | |
| 100 | +syn keyword basicFunction STICK stick Stick STRIG strig Strig | |
| 101 | +syn keyword basicFunction TAB tab Tab TAN tan Tan | |
| 102 | +syn keyword basicFunction UBOUND ubound Ubound VAL val Val | |
| 103 | +syn keyword basicFunction VALPTR valptr Valptr VALSEG valseg Valseg | |
| 104 | +syn keyword basicFunction VARPTR varptr Varptr VARSEG varseg Varseg | |
| 105 | +syn keyword basicFunction CHR$ Chr$ chr$ COMMAND$ command$ Command$ | |
| 106 | +syn keyword basicFunction DATE$ date$ Date$ ENVIRON$ environ$ Environ$ | |
| 107 | +syn keyword basicFunction ERDEV$ erdev$ Erdev$ HEX$ hex$ Hex$ | |
| 108 | +syn keyword basicFunction INKEY$ inkey$ Inkey$ INPUT$ input$ Input$ | |
| 109 | +syn keyword basicFunction IOCTL$ ioctl$ Ioctl$ LCASES$ lcases$ Lcases$ | |
| 110 | +syn keyword basicFunction LAFT$ laft$ Laft$ LTRIM$ ltrim$ Ltrim$ | |
| 111 | +syn keyword basicFunction MID$ mid$ Mid$ MKDMBF$ mkdmbf$ Mkdmbf$ | |
| 112 | +syn keyword basicFunction MKD$ mkd$ Mkd$ MKI$ mki$ Mki$ | |
| 113 | +syn keyword basicFunction MKL$ mkl$ Mkl$ MKSMBF$ mksmbf$ Mksmbf$ | |
| 114 | +syn keyword basicFunction MKS$ mks$ Mks$ OCT$ oct$ Oct$ | |
| 115 | +syn keyword basicFunction RIGHT$ right$ Right$ RTRIM$ rtrim$ Rtrim$ | |
| 116 | +syn keyword basicFunction SPACE$ space$ Space$ STR$ str$ Str$ | |
| 117 | +syn keyword basicFunction STRING$ string$ String$ TIME$ time$ Time$ | |
| 118 | +syn keyword basicFunction UCASE$ ucase$ Ucase$ VARPTR$ varptr$ Varptr$ | |
| 119 | +syn keyword basicTodo contained TODO | |
| 120 | + | |
| 121 | +"integer number, or floating point number without a dot. | |
| 122 | +syn match basicNumber "\<\d\+\>" | |
| 123 | +"floating point number, with dot | |
| 124 | +syn match basicNumber "\<\d\+\.\d*\>" | |
| 125 | +"floating point number, starting with a dot | |
| 126 | +syn match basicNumber "\.\d\+\>" | |
| 127 | + | |
| 128 | +" String and Character contstants | |
| 129 | +syn match basicSpecial contained "\\\d\d\d\|\\." | |
| 130 | +syn region basicString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=basicSpecial | |
| 131 | + | |
| 132 | +syn region basicComment start="REM" end="$" contains=basicTodo | |
| 133 | +syn region basicComment start="^[ \t]*'" end="$" contains=basicTodo | |
| 134 | +syn region basicLineNumber start="^\d" end="\s" | |
| 135 | +syn match basicTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1 | |
| 136 | +" Used with OPEN statement | |
| 137 | +syn match basicFilenumber "#\d\+" | |
| 138 | +"syn sync ccomment basicComment | |
| 139 | +" syn match basicMathsOperator "[<>+\*^/\\=-]" | |
| 140 | +syn match basicMathsOperator "-\|=\|[:<>+\*^/\\]\|AND\|OR" | |
| 141 | + | |
| 142 | +" Define the default highlighting. | |
| 143 | +" For version 5.7 and earlier: only when not done already | |
| 144 | +" For version 5.8 and later: only when an item doesn't have highlighting yet | |
| 145 | +if version >= 508 || !exists("did_basic_syntax_inits") | |
| 146 | + if version < 508 | |
| 147 | + let did_basic_syntax_inits = 1 | |
| 148 | + command -nargs=+ HiLink hi link <args> | |
| 149 | + else | |
| 150 | + command -nargs=+ HiLink hi def link <args> | |
| 151 | + endif | |
| 152 | + | |
| 153 | + HiLink basicLabel Label | |
| 154 | + HiLink basicConditional Conditional | |
| 155 | + HiLink basicRepeat Repeat | |
| 156 | + HiLink basicLineNumber Comment | |
| 157 | + HiLink basicNumber Number | |
| 158 | + HiLink basicError Error | |
| 159 | + HiLink basicStatement Statement | |
| 160 | + HiLink basicString String | |
| 161 | + HiLink basicComment Comment | |
| 162 | + HiLink basicSpecial Special | |
| 163 | + HiLink basicTodo Todo | |
| 164 | + HiLink basicFunction Identifier | |
| 165 | + HiLink basicTypeSpecifier Type | |
| 166 | + HiLink basicFilenumber basicTypeSpecifier | |
| 167 | + "hi basicMathsOperator term=bold cterm=bold gui=bold | |
| 168 | + | |
| 169 | + delcommand HiLink | |
| 170 | +endif | |
| 171 | + | |
| 172 | +let b:current_syntax = "basic" | |
| 173 | + | |
| 174 | +" vim: ts=8 | |