mirror of
				https://github.com/vim/vim.git
				synced 2025-10-28 09:27:14 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			385 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			385 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:		Pascal
 | |
| " Maintainer:		Doug Kearns <dougkearns@gmail.com>
 | |
| " Previous Maintainers:	Xavier Crégut <xavier.cregut@enseeiht.fr>
 | |
| "			Mario Eusebio <bio@dq.fct.unl.pt>
 | |
| " Last Change:		2021 May 20
 | |
| 
 | |
| " Contributors: Tim Chase <tchase@csc.com>,
 | |
| "		Stas Grabois <stsi@vtrails.com>,
 | |
| "		Mazen NEIFER <mazen.neifer.2001@supaero.fr>,
 | |
| "		Klaus Hast <Klaus.Hast@arcor.net>,
 | |
| "		Austin Ziegler <austin@halostatue.ca>,
 | |
| "		Markus Koenig <markus@stber-koenig.de>
 | |
| 
 | |
| " quit when a syntax file was already loaded
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| 
 | |
| syn case ignore
 | |
| syn sync lines=250
 | |
| 
 | |
| syn keyword pascalBoolean	true false
 | |
| syn keyword pascalConditional	if else then
 | |
| syn keyword pascalConstant	nil maxint
 | |
| syn keyword pascalLabel		case goto label
 | |
| syn keyword pascalOperator	and div downto in mod not of or packed
 | |
| syn keyword pascalRepeat	do for do repeat while to until
 | |
| syn keyword pascalStatement	procedure function
 | |
| syn keyword pascalStatement	program begin end const var type with
 | |
| syn keyword pascalStruct	record
 | |
| syn keyword pascalType		array boolean char integer file pointer real set
 | |
| syn keyword pascalType		string text variant
 | |
| 
 | |
| 
 | |
|     " 20011222az: Added new items.
 | |
| syn keyword pascalTodo contained	TODO FIXME XXX DEBUG NOTE
 | |
| 
 | |
|     " 20010723az: When wanted, highlight the trailing whitespace -- this is
 | |
|     " based on c_space_errors; to enable, use "pascal_space_errors".
 | |
| if exists("pascal_space_errors")
 | |
|   if !exists("pascal_no_trail_space_error")
 | |
|     syn match pascalSpaceError "\s\+$"
 | |
|   endif
 | |
|   if !exists("pascal_no_tab_space_error")
 | |
|     syn match pascalSpaceError " \+\t"me=e-1
 | |
|   endif
 | |
| endif
 | |
| 
 | |
| 
 | |
| 
 | |
| " String
 | |
| if !exists("pascal_one_line_string")
 | |
|   syn region  pascalString matchgroup=pascalString start=+'+ end=+'+ contains=pascalStringEscape
 | |
|   if exists("pascal_gpc")
 | |
|     syn region  pascalString matchgroup=pascalString start=+"+ end=+"+ contains=pascalStringEscapeGPC
 | |
|   else
 | |
|     syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ contains=pascalStringEscape
 | |
|   endif
 | |
| else
 | |
|   "wrong strings
 | |
|   syn region  pascalStringError matchgroup=pascalStringError start=+'+ end=+'+ end=+$+ contains=pascalStringEscape
 | |
|   if exists("pascal_gpc")
 | |
|     syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscapeGPC
 | |
|   else
 | |
|     syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscape
 | |
|   endif
 | |
| 
 | |
|   "right strings
 | |
|   syn region  pascalString matchgroup=pascalString start=+'+ end=+'+ oneline contains=pascalStringEscape
 | |
|   " To see the start and end of strings:
 | |
|   " syn region  pascalString matchgroup=pascalStringError start=+'+ end=+'+ oneline contains=pascalStringEscape
 | |
|   if exists("pascal_gpc")
 | |
|     syn region  pascalString matchgroup=pascalString start=+"+ end=+"+ oneline contains=pascalStringEscapeGPC
 | |
|   else
 | |
|     syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ oneline contains=pascalStringEscape
 | |
|   endif
 | |
| end
 | |
| syn match   pascalStringEscape		contained "''"
 | |
| syn match   pascalStringEscapeGPC	contained '""'
 | |
| 
 | |
| 
 | |
| " syn match   pascalIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
 | |
| 
 | |
| 
 | |
| if exists("pascal_symbol_operator")
 | |
|   syn match   pascalSymbolOperator      "[+\-/*=]"
 | |
|   syn match   pascalSymbolOperator      "[<>]=\="
 | |
|   syn match   pascalSymbolOperator      "<>"
 | |
|   syn match   pascalSymbolOperator      ":="
 | |
|   syn match   pascalSymbolOperator      "[()]"
 | |
|   syn match   pascalSymbolOperator      "\.\."
 | |
|   syn match   pascalSymbolOperator       "[\^.]"
 | |
|   syn match   pascalMatrixDelimiter	"[][]"
 | |
|   "if you prefer you can highlight the range
 | |
|   "syn match  pascalMatrixDelimiter	"[\d\+\.\.\d\+]"
 | |
| endif
 | |
| 
 | |
| syn match  pascalNumber		"-\=\<\d\+\>"
 | |
| if !exists("pascal_traditional")
 | |
|   syn match  pascalHexNumber	"\$\x\+\>"
 | |
| endif
 | |
| if exists("pascal_fpc")
 | |
|   syn match	pascalOctNumber "&\o\+\>"
 | |
|   syn match	pascalBinNumber	"%[01]\+\>"
 | |
| endif
 | |
| if exists("pascal_gpc")
 | |
|   syn match  pascalExtendedNumber	"\%([2-9]\|[12]\d\|3[0-6]\)#[[:alnum:]]\+\>"
 | |
| endif
 | |
| 
 | |
| syn match  pascalFloat		"-\=\<\d\+\.\d\+\>"
 | |
| syn match  pascalFloat		"-\=\<\d\+\.\d\+[eE]-\=\d\+\>"
 | |
| 
 | |
| if !exists("pascal_traditional")
 | |
|   " allow leading zeros
 | |
|   syn match pascalControlCharacter	"#\%([01]\=\d\=\d\|2[0-4]\d\|25[0-5]\)\>"
 | |
| endif
 | |
| 
 | |
| if exists("pascal_no_tabs")
 | |
|   syn match pascalShowTab "\t"
 | |
| endif
 | |
| 
 | |
| syn region pascalComment	start="(\*\|{"  end="\*)\|}" contains=pascalTodo,pascalSpaceError
 | |
| 
 | |
| 
 | |
| if !exists("pascal_no_functions")
 | |
|   " array functions
 | |
|   syn keyword pascalFunction	pack unpack
 | |
| 
 | |
|   " memory function
 | |
|   syn keyword pascalFunction	Dispose New
 | |
| 
 | |
|   " math functions
 | |
|   syn keyword pascalFunction	Abs Arctan Cos Exp Ln Sin Sqr Sqrt
 | |
| 
 | |
|   " file functions
 | |
|   syn keyword pascalFunction	Eof Eoln Write Writeln
 | |
|   syn keyword pascalPredefined	Input Output
 | |
| 
 | |
|   if exists("pascal_traditional")
 | |
|     " These functions do not seem to be defined in Turbo Pascal
 | |
|     syn keyword pascalFunction	Get Page Put 
 | |
|   endif
 | |
| 
 | |
|   " ordinal functions
 | |
|   syn keyword pascalFunction	Odd Pred Succ
 | |
| 
 | |
|   " transfert functions
 | |
|   syn keyword pascalFunction	Chr Ord Round Trunc
 | |
| endif
 | |
| 
 | |
| 
 | |
| if !exists("pascal_traditional")
 | |
| 
 | |
|   syn keyword pascalStatement	constructor destructor implementation inherited
 | |
|   syn keyword pascalStatement	interface unit uses
 | |
|   syn keyword pascalModifier	absolute assembler external far forward inline
 | |
|   syn keyword pascalModifier	interrupt near virtual 
 | |
|   syn keyword pascalAccess	private public strict
 | |
|   syn keyword pascalStruct	object 
 | |
|   syn keyword pascalOperator	shl shr xor
 | |
| 
 | |
|   syn region pascalPreProc	start="(\*\$"  end="\*)" contains=pascalTodo
 | |
|   syn region pascalPreProc	start="{\$"  end="}"
 | |
| 
 | |
|   syn region  pascalAsm		matchgroup=pascalAsmKey start="\<asm\>" end="\<end\>" contains=pascalComment,pascalPreProc
 | |
| 
 | |
|   syn keyword pascalType	ShortInt LongInt Byte Word
 | |
|   syn keyword pascalType	ByteBool WordBool LongBool
 | |
|   syn keyword pascalType	Cardinal LongWord
 | |
|   syn keyword pascalType	Single Double Extended Comp
 | |
|   syn keyword pascalType	PChar
 | |
| 
 | |
|   syn keyword pascalPredefined	self
 | |
| 
 | |
|   if !exists ("pascal_fpc")
 | |
|     syn keyword pascalPredefined	Result
 | |
|   endif
 | |
| 
 | |
|   if exists("pascal_fpc")
 | |
|     syn region pascalComment        start="//" end="$" contains=pascalTodo,pascalSpaceError
 | |
|     syn keyword pascalStatement	fail otherwise operator
 | |
|     syn keyword pascalDirective	popstack
 | |
|     syn keyword pascalType	ShortString AnsiString WideString
 | |
|   endif
 | |
| 
 | |
|   if exists("pascal_gpc")
 | |
|     syn region pascalComment        start="//" end="$" contains=pascalTodo,pascalSpaceError
 | |
|     syn keyword pascalType	SmallInt
 | |
|     syn keyword pascalType	AnsiChar
 | |
|     syn keyword pascalType	PAnsiChar
 | |
|   endif
 | |
| 
 | |
|   if exists("pascal_delphi")
 | |
|     syn region pascalComment	start="//"  end="$" contains=pascalTodo,pascalSpaceError
 | |
|     syn region pascalDocumentation	start="///" end="$" contains=pascalTodo,pascalSpaceError
 | |
|     syn region pascalDocumentation	start="{!"  end="}" contains=pascalTodo,pascalSpaceError
 | |
|     syn keyword pascalType	SmallInt Int64
 | |
|     syn keyword pascalType	Real48 Currency
 | |
|     syn keyword pascalType	AnsiChar WideChar
 | |
|     syn keyword pascalType	ShortString AnsiString WideString
 | |
|     syn keyword pascalType	PAnsiChar PWideChar
 | |
|     syn match  pascalFloat	"-\=\<\d\+\.\d\+[dD]-\=\d\+\>"
 | |
|     syn match  pascalStringEscape	contained "#[12][0-9]\=[0-9]\="
 | |
|     syn keyword pascalStruct	class dispinterface
 | |
|     syn keyword pascalException	try except raise at on finally
 | |
|     syn keyword pascalStatement	out
 | |
|     syn keyword pascalStatement	library package 
 | |
|     syn keyword pascalStatement	initialization finalization uses exports
 | |
|     syn keyword pascalStatement	property out resourcestring threadvar
 | |
|     syn keyword pascalModifier	contains
 | |
|     syn keyword pascalModifier	overridden reintroduce abstract sealed
 | |
|     syn keyword pascalModifier	override export dynamic name message
 | |
|     syn keyword pascalModifier	dispid index stored default nodefault readonly
 | |
|     syn keyword pascalModifier	writeonly implements overload requires resident
 | |
|     syn keyword pascalAccess	protected published automated
 | |
|     syn keyword pascalDirective	register pascal cvar cdecl stdcall safecall
 | |
|     syn keyword pascalOperator	as is
 | |
|   endif
 | |
| 
 | |
|   if exists("pascal_no_functions")
 | |
|     "syn keyword pascalModifier	read write
 | |
|     "may confuse with Read and Write functions.  Not easy to handle.
 | |
|   else
 | |
|     " control flow functions
 | |
|     syn keyword pascalFunction	Break Continue Exit Halt RunError
 | |
| 
 | |
|     " ordinal functions
 | |
|     syn keyword pascalFunction	Dec Inc High Low
 | |
| 
 | |
|     " math functions
 | |
|     syn keyword pascalFunction	Frac Int Pi
 | |
| 
 | |
|     " string functions
 | |
|     syn keyword pascalFunction	Concat Copy Delete Insert Length Pos Str Val
 | |
| 
 | |
|     " memory function
 | |
|     syn keyword pascalFunction	FreeMem GetMem MaxAvail MemAvail
 | |
| 
 | |
|     " pointer and address functions
 | |
|     syn keyword pascalFunction	Addr Assigned CSeg DSeg Ofs Ptr Seg SPtr SSeg
 | |
| 
 | |
|     " misc functions
 | |
|     syn keyword pascalFunction	Exclude FillChar Hi Include Lo Move ParamCount
 | |
|     syn keyword pascalFunction	ParamStr Random Randomize SizeOf Swap TypeOf
 | |
|     syn keyword pascalFunction	UpCase
 | |
| 
 | |
|     " predefined variables
 | |
|     syn keyword pascalPredefined ErrorAddr ExitCode ExitProc FileMode FreeList
 | |
|     syn keyword pascalPredefined FreeZero HeapEnd HeapError HeapOrg HeapPtr
 | |
|     syn keyword pascalPredefined InOutRes OvrCodeList OvrDebugPtr OvrDosHandle
 | |
|     syn keyword pascalPredefined OvrEmsHandle OvrHeapEnd OvrHeapOrg OvrHeapPtr
 | |
|     syn keyword pascalPredefined OvrHeapSize OvrLoadList PrefixSeg RandSeed
 | |
|     syn keyword pascalPredefined SaveInt00 SaveInt02 SaveInt1B SaveInt21
 | |
|     syn keyword pascalPredefined SaveInt23 SaveInt24 SaveInt34 SaveInt35
 | |
|     syn keyword pascalPredefined SaveInt36 SaveInt37 SaveInt38 SaveInt39
 | |
|     syn keyword pascalPredefined SaveInt3A SaveInt3B SaveInt3C SaveInt3D
 | |
|     syn keyword pascalPredefined SaveInt3E SaveInt3F SaveInt75 SegA000 SegB000
 | |
|     syn keyword pascalPredefined SegB800 SelectorInc StackLimit Test8087
 | |
| 
 | |
|     " file functions
 | |
|     syn keyword pascalFunction	Append Assign BlockRead BlockWrite ChDir Close
 | |
|     syn keyword pascalFunction	Erase FilePos FileSize Flush GetDir IOResult
 | |
|     syn keyword pascalFunction	MkDir Read Readln Rename Reset Rewrite RmDir
 | |
|     syn keyword pascalFunction	Seek SeekEof SeekEoln SetTextBuf Truncate
 | |
| 
 | |
|     " crt unit
 | |
|     syn keyword pascalFunction	AssignCrt ClrEol ClrScr Delay DelLine GotoXY
 | |
|     syn keyword pascalFunction	HighVideo InsLine KeyPressed LowVideo NormVideo
 | |
|     syn keyword pascalFunction	NoSound ReadKey Sound TextBackground TextColor
 | |
|     syn keyword pascalFunction	TextMode WhereX WhereY Window
 | |
|     syn keyword pascalPredefined CheckBreak CheckEOF CheckSnow DirectVideo
 | |
|     syn keyword pascalPredefined LastMode TextAttr WindMin WindMax
 | |
|     syn keyword pascalFunction BigCursor CursorOff CursorOn
 | |
|     syn keyword pascalConstant Black Blue Green Cyan Red Magenta Brown
 | |
|     syn keyword pascalConstant LightGray DarkGray LightBlue LightGreen
 | |
|     syn keyword pascalConstant LightCyan LightRed LightMagenta Yellow White
 | |
|     syn keyword pascalConstant Blink ScreenWidth ScreenHeight bw40
 | |
|     syn keyword pascalConstant co40 bw80 co80 mono
 | |
|     syn keyword pascalPredefined TextChar 
 | |
| 
 | |
|     " DOS unit
 | |
|     syn keyword pascalFunction	AddDisk DiskFree DiskSize DosExitCode DosVersion
 | |
|     syn keyword pascalFunction	EnvCount EnvStr Exec Expand FindClose FindFirst
 | |
|     syn keyword pascalFunction	FindNext FSearch FSplit GetCBreak GetDate
 | |
|     syn keyword pascalFunction	GetEnv GetFAttr GetFTime GetIntVec GetTime
 | |
|     syn keyword pascalFunction	GetVerify Intr Keep MSDos PackTime SetCBreak
 | |
|     syn keyword pascalFunction	SetDate SetFAttr SetFTime SetIntVec SetTime
 | |
|     syn keyword pascalFunction	SetVerify SwapVectors UnPackTime
 | |
|     syn keyword pascalConstant	FCarry FParity FAuxiliary FZero FSign FOverflow
 | |
|     syn keyword pascalConstant	Hidden Sysfile VolumeId Directory Archive
 | |
|     syn keyword pascalConstant	AnyFile fmClosed fmInput fmOutput fmInout
 | |
|     syn keyword pascalConstant	TextRecNameLength TextRecBufSize
 | |
|     syn keyword pascalType	ComStr PathStr DirStr NameStr ExtStr SearchRec
 | |
|     syn keyword pascalType	FileRec TextBuf TextRec Registers DateTime
 | |
|     syn keyword pascalPredefined DosError
 | |
| 
 | |
|     "Graph Unit
 | |
|     syn keyword pascalFunction	Arc Bar Bar3D Circle ClearDevice ClearViewPort
 | |
|     syn keyword pascalFunction	CloseGraph DetectGraph DrawPoly Ellipse
 | |
|     syn keyword pascalFunction	FillEllipse FillPoly FloodFill GetArcCoords
 | |
|     syn keyword pascalFunction	GetAspectRatio GetBkColor GetColor
 | |
|     syn keyword pascalFunction	GetDefaultPalette GetDriverName GetFillPattern
 | |
|     syn keyword pascalFunction	GetFillSettings GetGraphMode GetImage
 | |
|     syn keyword pascalFunction	GetLineSettings GetMaxColor GetMaxMode GetMaxX
 | |
|     syn keyword pascalFunction	GetMaxY GetModeName GetModeRange GetPalette
 | |
|     syn keyword pascalFunction	GetPaletteSize GetPixel GetTextSettings
 | |
|     syn keyword pascalFunction	GetViewSettings GetX GetY GraphDefaults
 | |
|     syn keyword pascalFunction	GraphErrorMsg GraphResult ImageSize InitGraph
 | |
|     syn keyword pascalFunction	InstallUserDriver InstallUserFont Line LineRel
 | |
|     syn keyword pascalFunction	LineTo MoveRel MoveTo OutText OutTextXY
 | |
|     syn keyword pascalFunction	PieSlice PutImage PutPixel Rectangle
 | |
|     syn keyword pascalFunction	RegisterBGIDriver RegisterBGIFont
 | |
|     syn keyword pascalFunction	RestoreCRTMode Sector SetActivePage
 | |
|     syn keyword pascalFunction	SetAllPallette SetAspectRatio SetBkColor
 | |
|     syn keyword pascalFunction	SetColor SetFillPattern SetFillStyle
 | |
|     syn keyword pascalFunction	SetGraphBufSize SetGraphMode SetLineStyle
 | |
|     syn keyword pascalFunction	SetPalette SetRGBPalette SetTextJustify
 | |
|     syn keyword pascalFunction	SetTextStyle SetUserCharSize SetViewPort
 | |
|     syn keyword pascalFunction	SetVisualPage SetWriteMode TextHeight TextWidth
 | |
|     syn keyword pascalType	ArcCoordsType FillPatternType FillSettingsType
 | |
|     syn keyword pascalType	LineSettingsType PaletteType PointType
 | |
|     syn keyword pascalType	TextSettingsType ViewPortType
 | |
| 
 | |
|     " string functions
 | |
|     syn keyword pascalFunction	StrAlloc StrBufSize StrCat StrComp StrCopy
 | |
|     syn keyword pascalFunction	StrDispose StrECopy StrEnd StrFmt StrIComp
 | |
|     syn keyword pascalFunction	StrLCat StrLComp StrLCopy StrLen StrLFmt
 | |
|     syn keyword pascalFunction	StrLIComp StrLower StrMove StrNew StrPas
 | |
|     syn keyword pascalFunction	StrPCopy StrPLCopy StrPos StrRScan StrScan
 | |
|     syn keyword pascalFunction	StrUpper
 | |
|   endif
 | |
| 
 | |
| endif
 | |
| 
 | |
| " Define the default highlighting.
 | |
| " Only when an item doesn't have highlighting yet
 | |
| 
 | |
| hi def link pascalAccess		pascalStatement
 | |
| hi def link pascalBoolean		Boolean
 | |
| hi def link pascalComment		Comment
 | |
| hi def link pascalDocumentation		Comment
 | |
| hi def link pascalConditional		Conditional
 | |
| hi def link pascalConstant		Constant
 | |
| hi def link pascalControlCharacter	Character
 | |
| hi def link pascalDelimiter		Identifier
 | |
| hi def link pascalDirective		pascalStatement
 | |
| hi def link pascalException		Exception
 | |
| hi def link pascalFloat			Float
 | |
| hi def link pascalFunction		Function
 | |
| hi def link pascalLabel			Label
 | |
| hi def link pascalMatrixDelimiter	Identifier
 | |
| hi def link pascalModifier		Type
 | |
| hi def link pascalNumber		Number
 | |
| hi def link pascalExtendedNumber	Number
 | |
| hi def link pascalBinNumber		pascalNumber
 | |
| hi def link pascalHexNumber		pascalNumber
 | |
| hi def link pascalOctNumber		pascalNumber
 | |
| hi def link pascalOperator		Operator
 | |
| hi def link pascalPredefined		pascalStatement
 | |
| hi def link pascalPreProc		PreProc
 | |
| hi def link pascalRepeat		Repeat
 | |
| hi def link pascalSpaceError		Error
 | |
| hi def link pascalStatement		Statement
 | |
| hi def link pascalString		String
 | |
| hi def link pascalStringEscape		Special
 | |
| hi def link pascalStringEscapeGPC	Special
 | |
| hi def link pascalStringError		Error
 | |
| hi def link pascalStruct		pascalStatement
 | |
| hi def link pascalSymbolOperator	pascalOperator
 | |
| hi def link pascalTodo			Todo
 | |
| hi def link pascalType			Type
 | |
| hi def link pascalUnclassified		pascalStatement
 | |
| "  hi def link pascalAsm		Assembler
 | |
| hi def link pascalError			Error
 | |
| hi def link pascalAsmKey		pascalStatement
 | |
| hi def link pascalShowTab		Error
 | |
| 
 | |
| 
 | |
| 
 | |
| let b:current_syntax = "pascal"
 | |
| 
 | |
| " vim: nowrap sw=2 sts=2 ts=8 noet:
 |