| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Language:		BASIC | 
					
						
							|  |  |  | " Maintainer:		Doug Kearns <dougkearns@gmail.com> | 
					
						
							|  |  |  | " Previous Maintainer:	Allan Kelly <allan@fruitloaf.co.uk> | 
					
						
							|  |  |  | " Contributors:		Thilo Six | 
					
						
							|  |  |  | " Last Change:		2015 Jan 10 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Prelude {{{1 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-30 13:11:27 +01:00
										 |  |  | let s:cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Keywords {{{1 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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$ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Numbers {{{1 | 
					
						
							|  |  |  | " Integer number, or floating point number without a dot. | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match  basicNumber		"\<\d\+\>" | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Floating point number, with dot | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match  basicNumber		"\<\d\+\.\d*\>" | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Floating point number, starting with a dot | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match  basicNumber		"\.\d\+\>" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " String and Character constants {{{1 | 
					
						
							|  |  |  | syn match   basicSpecial	"\\\d\d\d\|\\." contained | 
					
						
							|  |  |  | syn region  basicString		start=+"+  skip=+\\\\\|\\"+  end=+"+	contains=basicSpecial | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Line numbers {{{1 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn region  basicLineNumber	start="^\d" end="\s" | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Data-type suffixes {{{1 | 
					
						
							|  |  |  | syn match   basicTypeSpecifier	"[a-zA-Z0-9][$%&!#]"ms=s+1 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Used with OPEN statement | 
					
						
							|  |  |  | syn match   basicFilenumber  "#\d\+" | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Mathematical operators {{{1 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " syn match   basicMathsOperator "[<>+\*^/\\=-]" | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | syn match   basicMathsOperator	 "-\|=\|[:<>+\*^/\\]\|AND\|OR" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Comments {{{1 | 
					
						
							|  |  |  | syn keyword basicTodo		TODO FIXME XXX NOTE contained | 
					
						
							|  |  |  | syn region  basicComment	start="^\s*\zsREM\>" start="\%(:\s*\)\@<=REM\>" end="$" contains=basicTodo | 
					
						
							|  |  |  | syn region  basicComment	start="'"					end="$" contains=basicTodo | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | "syn sync ccomment basicComment | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Default Highlighting {{{1 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link basicLabel		Label | 
					
						
							|  |  |  | hi def link basicConditional	Conditional | 
					
						
							|  |  |  | hi def link basicRepeat		Repeat | 
					
						
							|  |  |  | hi def link basicLineNumber	Comment | 
					
						
							|  |  |  | hi def link basicNumber		Number | 
					
						
							|  |  |  | hi def link basicError		Error | 
					
						
							|  |  |  | hi def link basicStatement	Statement | 
					
						
							|  |  |  | hi def link basicString		String | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | hi def link basicComment	Comment | 
					
						
							|  |  |  | hi def link basicSpecial	Special | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link basicTodo		Todo | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | hi def link basicFunction	Identifier | 
					
						
							|  |  |  | hi def link basicTypeSpecifier	Type | 
					
						
							|  |  |  | hi def link basicFilenumber	basicTypeSpecifier | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | "hi basicMathsOperator term=bold cterm=bold gui=bold | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | " Postscript {{{1 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | let b:current_syntax = "basic" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-30 13:11:27 +01:00
										 |  |  | let &cpo = s:cpo_save | 
					
						
							|  |  |  | unlet s:cpo_save | 
					
						
							| 
									
										
										
										
											2021-01-25 21:14:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | " vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: |