| 
						 
							
							
							
						 
					 | 
				
			
			 | 
			 | 
			
				@@ -1,14 +1,14 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Vim syntax file
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Language:    FreeBasic
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Maintainer:  Mark Manning <markem@sim1.us>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Updated:     10/9/2019
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Version:		7.0b
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Language:		FreeBASIC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Maintainer:		Doug Kearns <dougkearns@gmail.com>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Previous Maintainer:	Mark Manning <markem@sim1.us>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Last Change:		2022 Jun 26
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Description:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Based originally on the work done by Allan Kelly <Allan.Kelly@ed.ac.uk>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Updated by Mark Manning <markem@sim1.us>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Applied FreeBasic support to the already excellent support
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Applied FreeBASIC support to the already excellent support
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	for standard basic syntax (like QB).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	First version based on Micro$soft QBASIC circa
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -17,215 +17,595 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	not a complete implementation yet.  Send suggestions to
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	the maintainer.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	TODO: split this into separate dialect-based files, possibly with a common base
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Quit when a (custom) syntax file was already loaded (Taken from c.vim)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if exists("b:current_syntax")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  finish
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Dialect detection
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				let s:lang = freebasic#GetDialect()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Whitespace Errors
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if exists("freebasic_space_errors")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  if !exists("freebasic_no_trail_space_error")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    syn match freebasicSpaceError display excludenl "\s\+$"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  if !exists("freebasic_no_tab_space_error")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    syn match freebasicSpaceError display " \+\t"me=e-1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Be sure to turn on the "case ignore" since current versions
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	of freebasic support both upper as well as lowercase
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	letters. - MEM 10/1/2006
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn case ignore
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	This list of keywords is taken directly from the FreeBasic
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	user's guide as presented by the FreeBasic online site.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicArrays			ERASE LBOUND REDIM PRESERVE UBOUND
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicBitManipulation	BIT BITRESET BITSET HIBYTE HIWORD LOBYTE LOWORD SHL SHR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicCompilerSwitches	DEFBYTE DEFDBL DEFINT DEFLNG DEFLNGINT DEFSHORT DEFSNG DEFSTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicCompilerSwitches	DEFUBYTE DEFUINT DEFULNGINT DEFUSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicCompilerSwitches	"\<option\s+\(BASE\|BYVAL\|DYNAMIC\|ESCAPE\|EXPLICIT\|NOKEYWORD\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicCompilerSwitches	"\<option\s+\(PRIVATE\|STATIC\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicConditional		start="\son\s+" skip=".*" end="gosub"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicConditional		start="\son\s+" skip=".*" end="goto"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicConditional		"\<select\s+case\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicConditional		if iif then case else elseif with
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicConsole		"\<open\s+\(CONS\|ERR\|PIPE\|SCRN\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicConsole		BEEP CLS CSRLIN LOCATE PRINT POS SPC TAB VIEW WIDTH
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDataTypes		BYTE AS DIM CONST DOUBLE ENUM INTEGER LONG LONGINT SHARED SHORT STRING
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDataTypes		SINGLE TYPE UBYTE UINTEGER ULONGINT UNION UNSIGNED USHORT WSTRING ZSTRING
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDateTime		DATE DATEADD DATEDIFF DATEPART DATESERIAL DATEVALUE DAY HOUR MINUTE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDateTime		MONTH MONTHNAME NOW SECOND SETDATE SETTIME TIME TIMESERIAL TIMEVALUE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDateTime		TIMER YEAR WEEKDAY WEEKDAYNAME
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDebug			ASSERT STOP
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicErrorHandling		ERR ERL ERROR LOCAL RESUME
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicErrorHandling		"\<resume\s+next\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicErrorHandling		"\<on\s+error\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<get\s+#\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<input\s+#\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<line\s+input\s+#\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<put\s+#\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFiles			ACCESS APPEND BINARY BLOAD BSAVE CLOSE EOF FREEFILE INPUT LOC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFiles			LOCK LOF OPEN OUTPUT RANDOM RESET SEEK UNLOCK WRITE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFunctions		ALIAS ANY BYREF BYVAL CALL CDECL CONSTRUCTOR DESTRUCTOR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFunctions		DECLARE FUNCTION LIB OVERLOAD PASCAL STATIC SUB STDCALL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFunctions		VA_ARG VA_FIRST VA_NEXT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicGraphics		"\<palette\s+get\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		ALPHA CIRCLE CLS COLOR CUSTOM DRAW FLIP GET
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		IMAGECREATE IMAGEDESTROY LINE PAINT PALETTE PCOPY PMAP POINT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		PRESET PSET PUT RGB RGBA SCREEN SCREENCOPY SCREENINFO SCREENLIST
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		SCREENLOCK SCREENPTR SCREENRES SCREENSET SCREENSYNC SCREENUNLOCK
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		TRANS USING VIEW WINDOW
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicHardware		"\<open\s+com\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicHardware		INP OUT WAIT LPT LPOS LPRINT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicLogical		AND EQV IMP OR NOT XOR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicMath			ABS ACOS ASIN ATAN2 ATN COS EXP FIX INT LOG MOD RANDOMIZE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicMath			RND SGN SIN SQR TAN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicMemory			ALLOCATE CALLOCATE CLEAR DEALLOCATE FIELD FRE PEEK POKE REALLOCATE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicMisc			ASM DATA LET TO READ RESTORE SIZEOF SWAP OFFSETOF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicModularizing		CHAIN COMMON EXPORT EXTERN DYLIBFREE DYLIBLOAD DYLIBSYMBOL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicModularizing		PRIVATE PUBLIC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicMultithreading		MUTEXCREATE MUTEXDESTROY MUTEXLOCK MUTEXUNLOCK THREADCREATE THREADWAIT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicShell			CHDIR DIR COMMAND ENVIRON EXEC EXEPATH KILL NAME MKDIR RMDIR RUN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicEnviron		SHELL SYSTEM WINDOWTITLE POINTERS
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicLoops			FOR LOOP WHILE WEND DO CONTINUE STEP UNTIL next
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicInclude		"\<#\s*\(inclib\|include\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicInclude		"\<\$\s*include\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPointer		PROCPTR PTR SADD STRPTR VARPTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__DATE__ __FB_DOS__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_SIGNATURE__ __FB_VERSION__ __FB_WIN32__ __FB_VER_MAJOR__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_VER_MINOR__ __FB_VER_PATCH__ __FILE__ __FUNCTION__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__LINE__ __TIME__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"\<^#\s*\(define\|undef\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"\<^#\s*\(ifdef\|ifndef\|else\|elseif\|endif\|if\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"\<#\s*error\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"\<#\s*\(print\|dynamic\|static\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPreProcessor		DEFINED ONCE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicProgramFlow		END EXIT GOSUB GOTO
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicProgramFlow		IS RETURN SCOPE SLEEP
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			INSTR LCASE LEFT LEN LSET LTRIM MID RIGHT RSET RTRIM
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			SPACE STRING TRIM UCASE ASC BIN CHR CVD CVI CVL CVLONGINT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			CVS CVSHORT FORMAT HEX MKD MKI MKL MKLONGINT MKS MKSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			OCT STR VAL VALLNG VALINT VALUINT VALULNG
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicTypeCasting		CAST CBYTE CDBL CINT CLNG CLNGINT CPTR CSHORT CSIGN CSNG
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicTypeCasting		CUBYTE CUINT CULNGINT CUNSG CURDIR CUSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicUserInput		"\<line\s+input\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicUserInput		GETJOYSTICK GETKEY GETMOUSE INKEY INPUT MULTIKEY SETMOUSE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Do the Basic variables names first.  This is because it
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	is the most inclusive of the tests.  Later on we change
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	this so the identifiers are split up into the various
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	types of identifiers like functions, basic commands and
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	such. MEM 9/9/2006
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicIdentifier			"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicGenericFunction	"\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang =~# '\<\%(qb\|fblite\)\>'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn iskeyword @,48-57,_,192-255,.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicIdentifier		"\<\h\%(\w\|\.\)*\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicGenericFunction	"\<\h\%(\w\|\.\)*\>\ze\s*("
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn iskeyword @,48-57,_,192-255
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicIdentifier		"\<\h\w*\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicGenericFunction	"\<\h\w*\>\ze\s*("
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Function list
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	This list of keywords is taken directly from the FreeBASIC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	user's guide as presented by the FreeBASIC online site.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicTodo		contained TODO
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicArrays			ERASE LBOUND PRESERVE REDIM UBOUND
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" array.bi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicArrays			ARRAYLEN ARRAYSIZE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicArrays			ArrayConstDescriptorPtr ArrayDescriptorPtr FBARRAY
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicAsm			__ASM
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicAsm			"\<end\s\+__asm\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicAsm			ASM
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicAsm			"\<end\s\+asm\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicBitManipulation	__BIT __BITRESET __BITSET __HIBYTE __HIWORD __LOBYTE __LOWORD
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicBitManipulation	BIT BITRESET BITSET HIBYTE HIWORD LOBYTE LOWORD
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang != "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicCompilerSwitches	DEFDBL DEFINT DEFLNG DEFSNG DEFSTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicCompilerSwitches	__DEFBYTE __DEFLONGINT __DEFSHORT __DEFUBYTE __DEFUINT __DEFULONGINT __DEFUSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				elseif s:lang == "fblite" || s:lang == "deprecated"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicCompilerSwitches	DEFBYTE DEFLONGINT DEFSHORT DEFUBYTE DEFUINT DEFUILONGINT DEFUSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicCompilerSwitches	"\<option\s\+\%(BASE\|BYVAL\|DYNAMIC\|ESCAPE\|EXPLICIT\|GOSUB\|NOGOSUB\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicCompilerSwitches	"\<option\s\+\%(NOKEYWORD\|PRIVATE\|STATIC\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicData			DATA READ RESTORE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicProgramFlow		EXIT GOTO RETURN SLEEP
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicProgramFlow		"\<end\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicProgramFlow		__SLEEP
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fblite" || s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicProgramFlow		GOSUB
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb" || s:lang == "deprecated"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicProgramFlow		SCOPE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicProgramFlow		"\<end\s\+scope\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fblite" || s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn region	freebasicConditional		matchgroup=freebasicConditional start="\<on\>" end="\<gosub\>" transparent
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn region	freebasicConditional		matchgroup=freebasicConditional start="\<on\>" end="\<goto\>"  transparent
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicConditional		IF THEN ELSE ELSEIF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicConditional		__IIF __WITH
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicConditional		"\<end\s\+__with\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicConditional		IIF WITH
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicConditional		"\<end\s\+with\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicConditional		"\<end\s\+if\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicConditional		"\<select\s\+case\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicConditional		"\<case\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicConditional		"\<case\s\+is\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicConditional		"\<end\s\+select\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicConsole		BEEP CLS CSRLIN LOCATE PRINT POS SPC TAB USING VIEW WIDTH
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicConsole		"?"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDataTypes		SINGLE DOUBLE INTEGER LONG
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicDataTypes		"\<string\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDataTypes		AS DIM CONST ENUM SHARED TYPE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicDataTypes		"\<end\s\+enum\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicDataTypes		"\<end\s\+type\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDataTypes		__BOOLEAN __BYTE __LONGINT __SHORT __UBYTE __UINTEGER __ULONG __ULONGINT __UNSIGNED __USHORT __ZSTRING
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicDataTypes		"\<__WSTRING\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDataTypes		__EXPLICIT __EXTENDS __IMPLEMENTS __OBJECT __POINTER __PTR __SIZEOF __TYPEOF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDataTypes		__UNION
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicDataTypes		"\<end\s\+__union\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDataTypes		BOOLEAN BYTE LONGINT SHORT UBYTE UINTEGER ULONG ULONGINT UNSIGNED USHORT ZSTRING
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicDataTypes		"\<WSTRING\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDataTypes		EXPLICIT EXTENDS IMPLEMENTS OBJECT POINTER PTR SIZEOF TYPEOF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDataTypes		UNION
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicDataTypes		"\<end\s\+union\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDataTypes		BASE CLASS THIS VAR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicDateTime		"\<\%(date\|time\)\$"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				elseif s:lang == "fblite" || s:lang == "deprecated"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicDateTime		"\<\%(date\|time\)\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else " fb
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDateTime		DATE TIME
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDateTime		SETDATE SETTIME
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" datetime.bi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDateTime		DATEADD DATEDIFF DATEPART DATESERIAL DATEVALUE DAY HOUR ISDATE MINUTE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDateTime		MONTH MONTHNAME NOW SECOND TIMESERIAL TIMEVALUE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDateTime		TIMER YEAR WEEKDAY WEEKDAYNAME
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicDebug			STOP
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDebug			__ASSERT __ASSERTWARN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicDebug			ASSERT ASSERTWARN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicErrorHandling		ERR ERL ERROR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicErrorHandling		__ERFN __ERMN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicErrorHandling		"\<on\s\+error\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicErrorHandling		ERFN ERMN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicErrorHandling		"\<on\s\+\%(local\s\+\)\=error\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang != "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicErrorHandling		"\<resume\%(\s\+next\)\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<get\s\+#\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<input\s\+#\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<line\s\+input\s\+#\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<put\s\+#\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFiles			ACCESS APPEND BINARY CLOSE EOF FREEFILE INPUT LOC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFiles			LOCK LOF OUTPUT RANDOM RESET SEEK UNLOCK WRITE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFiles			"\<open\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFiles			__ENCODING
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFiles			ENCODING WINPUT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicFiles			"\<open\s\+\%(cons\|err\|pipe\|scrn\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" file.bi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFiles			FILEATTR FILECOPY FILEDATETIME FILEEXISTS FILEFLUSH FILELEN FILESETEOF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFunctions		ALIAS BYREF BYVAL CDECL DECLARE LIB NAKED PASCAL STATIC STDCALL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFunctions		"\<option\ze\s*("
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFunctions		__CVA_ARG __CVA_COPY __CVA_END __CVA_LIST __CVA_START
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFunctions		__VA_ARG __VA_FIRST __VA_NEXT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFunctions		CVA_ARG CVA_COPY CVA_END CVA_LIST CVA_START
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFunctions		VA_ARG VA_FIRST VA_NEXT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFunctions		ANY OVERLOAD
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicFunctions		FUNCTION SUB
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFunctions		"\<end\s\+function\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFunctions		"\<end\s\+sub\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFunctions		ABSTRACT OVERRIDE VIRTUAL __THISCALL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFunctions		CONSTRUCTOR DESTRUCTOR OPERATOR PROPERTY
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicFunctions		"\<end\s\+constructor\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicFunctions		"\<end\s\+destructor\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicFunctions		"\<end\s\+operator\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicFunctions		"\<end\s\+property\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicFunctions		CALL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicGraphics		"\<palette\s\+get\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		ADD ALPHA BLOAD BSAVE CIRCLE CLS COLOR DRAW GET
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		LINE PAINT PALETTE PCOPY PMAP POINT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		PRESET PSET PUT SCREEN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicGraphics		TRANS WINDOW
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		__FLIP __IMAGECONVERTROW __IMAGECREATE __IMAGEDESTROY __IMAGEINFO __POINTCOORD
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		__RGB __RGBA __SCREENCOPY __SCREENCONTROL __SCREENEVENT __SCREENGLPROC __SCREENINFO
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		__SCREENLIST __SCREENLOCK __SCREENPTR __SCREENRES __SCREENSET __SCREENSYNC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		__SCREENUNLOCK __WINDOWTITLE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		CUSTOM
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		FLIP IMAGECONVERTROW IMAGECREATE IMAGEDESTROY IMAGEINFO POINTCOORD
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		RGB RGBA SCREENCOPY SCREENCONTROL SCREENEVENT SCREENGLPROC SCREENINFO
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		SCREENLIST SCREENLOCK SCREENPTR SCREENRES SCREENSET SCREENSYNC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicGraphics		SCREENUNLOCK WINDOWTITLE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang != "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicHardware		"\<open\s\+\%(com\|lpt\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicHardware		INP OUT WAIT LPOS LPRINT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicMath			ABS ATN COS EXP FIX FRAC INT LOG MOD RANDOMIZE RND SGN SIN SQR TAN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMath			__ACOS __ASIN __ATAN2
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMath			ACOS ASIN ATAN2
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMemory			__ALLOCATE __CALLOCATE __DEALLOCATE __REALLOCATE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMemory			ALLOCATE CALLOCATE DEALLOCATE REALLOCATE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMemory			PEEK POKE CLEAR FB_MEMCOPY FB_MEMCOPYCLEAR FB_MEMMOVE SWAP SADD
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMemory			FIELD FRE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicMisc			LET TO
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword freebasicMisc			__OFFSETOF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword freebasicMisc			OFFSETOF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicModularizing		CHAIN COMMON
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicModularizing		EXTERN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicModularizing		"\<end\s\+extern\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicModularizing		PROTECTED
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicModularizing		__EXPORT __IMPORT __DYLIBFREE __DYLIBLOAD __DYLIBSYMBOL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicModularizing		EXPORT IMPORT DYLIBFREE DYLIBLOAD DYLIBSYMBOL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicModularizing		PRIVATE PUBLIC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicModularizing		NAMESPACE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicModularizing		"\<end\s\+namespace\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang != "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMultithreading		MUTEXCREATE MUTEXDESTROY MUTEXLOCK MUTEXUNLOCK THREADCREATE THREADWAIT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMultithreading		CONDBROADCAST CONDCREATE CONDDESTROY CONDSIGNAL CONDWAIT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicMultithreading		THREADCALL THREADDETACH THREADSELF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicShell			CHDIR KILL NAME MKDIR RMDIR RUN SETENVIRON
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicShell			__CURDIR __DIR __EXEC __EXEPATH
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(command\|environ\)\$"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  " fbio.bi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicShell			ISREDIRECTED
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicShell			CURDIR DIR EXEC EXEPATH
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(command\|environ\)\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicEnviron		SHELL SYSTEM
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicLoops			FOR LOOP WHILE WEND DO STEP UNTIL NEXT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicLoops			__CONTINUE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicLoops			CONTINUE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	File numbers
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFilenumber		"#\d\+"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFilenumber		"#\a[[:alpha:].]*[%&!#]\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicMetacommand		"$\s*\%(dynamic\|static\)"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicMetacommand		"$\s*include\s*\%(once\)\=\s*:\s*'[^']\+'"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicMetacommand		'$\s*include\s*\%(once\)\=\s*:\s*"[^"]\+"'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicMetacommand		'$\s*lang\s*:\s*"[^"]\+"'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Intrinsic defines
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__DATE__ __DATE_ISO__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_64BIT__ __FB_ARGC__ __FB_ARG_COUNT__ __FB_ARG_EXTRACT__ __FB_ARG_LEFTOF__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_ARG_RIGHTOF__ __FB_ARGV__ __FB_ARM__ __FB_ASM__ __FB_BACKEND__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_BIGENDIAN__ __FB_BUILD_DATE__ __FB_BUILD_DATE_ISO__ __FB_BUILD_SHA1__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_CYGWIN__ __FB_DARWIN__ __FB_DEBUG__ __FB_DOS__ __FB_ERR__ __FB_EVAL__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_FPMODE__ __FB_FPU__ __FB_FREEBSD__ __FB_GCC__ __FB_GUI__ __FB_JOIN__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_LANG__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__ __FB_MT__ __FB_NETBSD__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_OPENBSD__ __FB_OPTIMIZE__ __FB_OPTION_BYVAL__ __FB_OPTION_DYNAMIC__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_OPTION_ESCAPE__ __FB_OPTION_EXPLICIT__ __FB_OPTION_GOSUB__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_OPTION_PRIVATE__ __FB_OUT_DLL__ __FB_OUT_EXE__ __FB_OUT_LIB__ __FB_OUT_OBJ__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_PCOS__ __FB_PPC__ __FB_QUOTE__ __FB_SIGNATURE__ __FB_SSE__ __FB_UNIQUEID__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_UNIQUEID_POP__ __FB_UNIQUEID_PUSH__ __FB_UNIX__ __FB_UNQUOTE__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_VECTORIZE__ __FB_VER_MAJOR__ __FB_VER_MINOR__ __FB_VER_PATCH__ __FB_VERSION__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FB_WIN32__ __FB_X86__ __FB_XBOX__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__FILE__ __FILE_NQ__ __FUNCTION__ __FUNCTION_NQ__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPredefined		__LINE__ __PATH__ __TIME__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Preprocessor directives
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicInclude		"#\s*\%(inclib\|include\%(\s\+once\)\=\|libpath\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*assert\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*cmdline\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*\%(define\|undef\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*\%(if\|ifdef\|ifndef\|else\|elseif\|endif\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*\%(macro\|endmacro\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*error\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*lang\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*line\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*pragma\%(\s\+reserve\)\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPreProcessor		"#\s*\%(print\|dynamic\|static\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPreProcessor		DEFINED
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			LEN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			ASC
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" string.bi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			FORMAT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			VAL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			CVD CVI CVL CVS
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			INSTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicString			LSET RSET
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<string\$\ze\s*("
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<__wstring\ze\s*("
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<space\$"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			__WSPACE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<chr\$"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			__WCHR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			__WBIN __WHEX __WOCT __WSTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(bin\|hex\|oct\|str\)\$"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			__VALLNG __VALINT __VALUINT __VALULNG
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(mkd\|mki\|mkl\|mks\)\$"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			__MKLONGINT __MKSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			__CVLONGINT __CVSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(left\|mid\|right\|lcase\|ucase\|ltrim\|rtrim\)\$"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			__TRIM
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			__INSTRREV
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<string\$\=\ze\s*("
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<wstring\ze\s*("
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<space\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			WSPACE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<chr\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			WCHR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			WBIN WHEX WOCT WSTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(bin\|hex\|oct\|str\)\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			VALLNG VALINT VALUINT VALULNG
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(mkd\|mki\|mkl\|mks\)\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(mklongint\|mkshort\)\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			CVLONGINT CVSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<\%(left\|mid\|right\|lcase\|ucase\|ltrim\|rtrim\)\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicString			"\<trim\>\$\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicString			INSTRREV
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicTypeCasting		CDBL CINT CLNG CSNG
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicTypeCasting		__CAST __CBOOL __CBYTE __CLNGINT __CPTR __CSHORT __CSIGN __CYBTE __CUINT __CULNG
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicTypeCasting		__CULNGINT __CUNSG __CUSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicTypeCasting		CAST CBOOL CBYTE CLNGINT CPTR CSHORT CSIGN CUBYTE CUINT CULNG CULNGINT CUNSG CUSHORT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicUserInput		"\<line\s\+input\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicUserInput		INKEY INPUT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicUserInput		__GETJOYSTICK __GETKEY __GETMOUSE __MULTIKEY __SETMOUSE STICK STRIG
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicUserInput		GETJOYSTICK GETKEY GETMOUSE MULTIKEY SETMOUSE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Operators
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" TODO: make these context sensitive to remove the overlap of common operators
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"     : alpha operators should probably always be highlighted
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"     -- DJK 20/11/19
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicArithmeticOperator	"\<\%(MOD\|__SHL\|__SHR\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicArithmeticOperator	"\<\%(MOD\|SHL\|SHR\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicBitwiseOperator	"\<\%(AND\|EQV\|IMP\|NOT\|OR\|XOR\)\>" " freebaseLogical?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicAssignmentOperator	"\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|__SHL\|__SHR\)=\@=" " exclude trailing '='
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicAssignmentOperator	"\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|SHL\|SHR\)=\@="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicShortcircuitOperator	"\<\%(ANDALSO\|ORELSE\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicMemoryOperator		'\<\%(new\|delete\)\>'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicPointerOperator	STRPTR VARPTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicPointerOperator	__PROCPTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicPointerOperator	PROCPTR
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicTypeOperator		'\<is\>'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicTypeOperator		'\.' nextgroup=freebasicIdentifier skipwhite
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicTypeOperator		'->' nextgroup=freebasicIdentifier skipwhite
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if exists("freebasic_operators")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicAssignmentOperator	"=>\=\|[-+&/\\*^]="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  if s:lang == "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    syn match	freebasicAssignmentOperator	"\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|__SHL\|__SHR\)=" " include trailing '='
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    syn match	freebasicAssignmentOperator	"\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|SHL\|SHR\)="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicArithmeticOperator	"[-+&/\\*^]"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  " syn match	freebasicIndexingOperator	"[[\]()]" " FIXME
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicRelationalOperator	"=\|<>\|<=\|<\|>=\|>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicPreprocessorOperator	'\%(^\s*\)\@<!\%(##\|#\)\|[$!]"\@='
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicPointerOperator	'[@*]'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicTypeOperator		'\.' nextgroup=freebasicIdentifier skipwhite
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    syn match	freebasicTypeOperator		'->' nextgroup=freebasicIdentifier skipwhite
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn cluster	freebasicOperator		contains=freebasic.*Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Catch errors caused by wrong parenthesis
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicParen		transparent start='(' end=')' contains=ALLBUT,@freebasicParenGroup
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicParenError	")"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicInParen	contained "[{}]"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn cluster	freebasicParenGroup	contains=freebasicParenError,freebasicSpecial,freebasicTodo,freebasicUserCont,freebasicUserLabel,freebasicBitField
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" syn region	freebasicParen		transparent start='(' end=')' contains=ALLBUT,@freebasicParenGroup
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" syn match	freebasicParenError	")"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" syn match	freebasicInParen	contained "[{}]"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" syn cluster	freebasicParenGroup	contains=freebasicParenError,freebasicSpecial,freebasicTodo,freebasicUserCont,freebasicUserLabel,freebasicBitField
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Integer number, or floating point number without a dot and with "f".
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Integer number
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicHex			start="&h" end="\W"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicHexError		start="&h\x*[g-zG-Z]" end="\W"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicOctal			start="&o" end="\W"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicOctalError		start="&o[0-7]*[89a-zA-Z]" end="\W"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicBinary			start="&b" end="\W"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicBinaryError	start="&b[01]*[2-9a-zA-Z]" end="\W"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicInteger		"\<\d\+\(u\=l\=\|lu\|f\)\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicHexError	"&h\w*\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicOctalError	"&o\w*\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicBinaryError	"&b\w*\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicHex		"&h\x\+\%([%L&U]\|UL\|LL\|ULL\)\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicOctal		"&o\o\+\%([%L&U]\|UL\|LL\|ULL\)\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicBinary		"&b[10]\+\%([%L&U]\|UL\|LL\|ULL\)\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicInteger	"\<\d\+\%([%L&U]\|UL\|LL\|ULL\)\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Floating point number, with dot, optional exponent
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Floating point
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	See: https://www.freebasic.net/forum/viewtopic.php?t=20323
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Floating point number, with dot, optional exponent, optional suffix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Floating point number, starting with a dot, optional exponent
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFloat		"\<\d\+\.\d*\%([de][-+]\=\d*\)\=[f!#]\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Floating point number, starting with a dot, optional exponent, optional suffix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Floating point number, without dot, with exponent
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFloat		"\.\d\+\%([de][-+]\=\d*\)\=[f!#]\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Floating point number, without dot, with optional exponent, optional suffix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Octal number
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFloat		"\<\d\+\%([de][-+]\=\d*\)[f!#]\="
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn case match
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicOctal2			"\<0\o*\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicOctal2Error	"\<0\o*[89a-zA-Z]"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Floating point number, without dot, without exponent, with suffix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	String and Character contstants
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicString		start='"' end='"' contains=freebasicSpecial,freebasicTodo
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicString		start="'" end="'" contains=freebasicSpecial,freebasicTodo
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Comments
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicSpecial	contained "\\\\."
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicComment	start="^rem" end="$" contains=freebasicSpecial,freebasicTodo
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicComment	start=":\s*rem" end="$" contains=freebasicSpecial,freebasicTodo
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicComment	start="\s*'" end="$" contains=freebasicSpecial,freebasicTodo
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicComment	start="^'" end="$" contains=freebasicSpecial,freebasicTodo
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Now do the comments and labels
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicLabel		"^\d"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicLabel		"\<^\w+:\>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicLineNumber	start="^\d" end="\s"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFloat		"\<\d\+[f!#]"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Create the clusters
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn cluster	freebasicNumber		contains=freebasicHex,freebasicOctal,freebasicOctal2,freebasicBinary,freebasicInteger,freebasicFloat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn cluster	freebasicError		contains=freebasicHexError,freebasicOctalError,freebasicOctal2,freebasicBinary
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn cluster	freebasicNumber		contains=freebasicHex,freebasicOctal,freebasicBinary,freebasicInteger,freebasicFloat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn cluster	freebasicNumberError	contains=freebasicHexError,freebasicOctalError,freebasicBinaryError
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Used with OPEN statement
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Booleans
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicFilenumber		"#\d\+"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicMathOperator	"[\+\-\=\|\*\/\>\<\%\()[\]]" contains=freebasicParen
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang != "qb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn keyword	freebasicBoolean	TRUE FALSE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	String and escape sequences
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicSpecial	contained "\\."
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicSpecial	contained "\\\d\{1,3}"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicSpecial	contained "\\&h\x\{1,2}"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicSpecial	contained "\\&o\o\{1,3}"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicSpecial	contained "\\&b[01]\{1,8}"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicSpecial	contained "\\u\x\{1,4}"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicString		start='"'     end='"' " TODO: Toggle contains on Option Escape in fblite and qb? -- DJK 20/11/19
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicString		start='!\zs"' end='"' contains=freebasicSpecial
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicString		start='$\zs"' end='"'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Line labels
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang =~# '\<\%(qb\|fblite\)\>'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicLineLabel	"^\s*\zs\h\%(\w\|\.\)*\ze\s*:"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match	freebasicLineLabel	"^\s*\zs\h\w*\ze\s*:"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicLineNumber	"^\s*\zs\d\+"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Line continuations
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" syn match	freebasicLineContinuation	"\<_\>"	nextgroup=freebasicComment,freebasicPostLineContinuation skipwhite
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicLineContinuation	_	nextgroup=freebasicComment,freebasicPostLineContinuation skipwhite
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn match	freebasicPostLineContinuation	".*"	contained
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" Type suffixes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if exists("freebasic_type_suffixes") && s:lang =~# '\<\%(qb\|fblite\)\>'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn match freebasicTypeSuffix "\h\%(\w\|.\)*\zs[$%&!#]"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	Comments
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn keyword	freebasicTodo			TODO FIXME XXX NOTE      contained
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicComment		start="\<rem\>" end="$"  contains=freebasicTodo,@Spell,freebasicMetacommand
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicComment		start="'"	end="$"  contains=freebasicTodo,@Spell,freebasicMetacommand
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn region	freebasicDoubleComment		start="''"	end="$"  contains=freebasicTodo,@Spell
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if !exists("freebasic_no_comment_fold")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn region	freebasicMultilineComment	start="/'"	end="'/" contains=freebasicTodo,@Spell,freeBasicMultilineComment fold keepend extend
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn region	freebasicMultilineComment2	start="^\s*'.*\n\%(\s*'\)\@=" end="^\s*'.*\n\%(\s*'\)\@!" contains=freebasicComment,freebasicDoubleComment keepend fold
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  syn region	freebasicMultilineComment	start="/'"	end="'/" contains=freebasicTodo,@Spell,freeBasicMultilineComment
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn case match
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				syn sync linebreaks=1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"	The default methods for highlighting.  Can be overridden later
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicArrays		StorageClass
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicAsm		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicBitManipulation	Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicCompilerSwitches	PreCondit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicBoolean		Boolean
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  hi def link freebasicCompilerSwitches	freebasicUnsupportedError
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  hi def link freebasicCompilerSwitches	PreCondit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicConsole		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicData		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicDataTypes		Type
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicDateTime		Type
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicDebug		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicErrorHandling	Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicFilenumber		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicFiles		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicFunctions		Function
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicGraphics		Function
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicHardware		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicLogical		Conditional
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicLoops		Repeat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicMath		Function
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  hi def link freebasicMetacommand	freebasicUnsupportedError
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  hi def link freebasicMetacommand	SpecialComment
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicMemory		Function
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicMisc		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicModularizing	Special
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -240,18 +620,55 @@ hi def link freebasicString		String
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicTypeCasting	Type
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicUserInput		Statement
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicComment		Comment
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicDoubleComment	Comment
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicMultilineComment	Comment
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicConditional	Conditional
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicError		Error
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicIdentifier		Identifier
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicInclude		Include
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicGenericFunction	Function
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicLabel		Label
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicLineNumber		Label
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicLineContinuation	Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicLineLabel		LineNr
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if s:lang == "fb"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  hi def link freebasicLineNumber	freebasicUnsupportedError
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  hi def link freebasicLineNumber	LineNr
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicMathOperator	Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicNumber		Number
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicHex		Number
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicOctal		Number
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicBinary		Number
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicInteger		Number
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicFloat		Float
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicHexError		Error
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicOctalError		Error
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicBinaryError	Error
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicAssignmentOperator		Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicArithmeticOperator		Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicIndexingOperator		Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicRelationalOperator		Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicBitwiseOperator		Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicShortcircuitOperator	Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicPreprocessorOperator	Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicPointerOperator		Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if exists("freebasic_operators")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  hi def link freebasicTypeOperator		Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicMemoryOperator		Operator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicSpaceError			Error
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicSpecial		Special
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicTodo		Todo
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicUnsupported	freebasicUnsupportedError
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				hi def link freebasicUnsupportedError	Error
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				unlet s:lang
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				let b:current_syntax = "freebasic"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" vim: ts=8
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				" vim: ts=8 tw=132 fdm=marker
 | 
			
		
		
	
	
		
			
				
					
					| 
						 
							
							
							
						 
					 | 
				
			
			 | 
			 | 
			
				 
 |