Merge branch 'hack/autopaste'
[vim-kana.git] / runtime / syntax / basic.vim
blobee500178c97dd1a0891ea4f0477986635407bc27
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
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.
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
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$
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
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\+\>"
128 " String and Character contstants
129 syn match   basicSpecial contained "\\\d\d\d\|\\."
130 syn region  basicString           start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=basicSpecial
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"
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
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
169   delcommand HiLink
170 endif
172 let b:current_syntax = "basic"
174 " vim: ts=8