mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			175 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			175 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " 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 |