xref: /vim-8.2.3635/runtime/syntax/pascal.vim (revision 53f7fccc)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:		Pascal
34c295027SBram Moolenaar" Maintainer:		Doug Kearns <[email protected]>
44c295027SBram Moolenaar" Previous Maintainers:	Xavier Crégut <[email protected]>
54c295027SBram Moolenaar"			Mario Eusebio <[email protected]>
6*53f7fcccSBram Moolenaar" Last Change:		2021 May 20
7071d4279SBram Moolenaar
8009b2592SBram Moolenaar" Contributors: Tim Chase <[email protected]>,
9009b2592SBram Moolenaar"		Stas Grabois <[email protected]>,
10071d4279SBram Moolenaar"		Mazen NEIFER <[email protected]>,
11009b2592SBram Moolenaar"		Klaus Hast <[email protected]>,
12009b2592SBram Moolenaar"		Austin Ziegler <[email protected]>,
13009b2592SBram Moolenaar"		Markus Koenig <[email protected]>
14071d4279SBram Moolenaar
1589bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1689bcfda6SBram Moolenaarif exists("b:current_syntax")
17071d4279SBram Moolenaar  finish
18071d4279SBram Moolenaarendif
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar
21071d4279SBram Moolenaarsyn case ignore
22071d4279SBram Moolenaarsyn sync lines=250
23071d4279SBram Moolenaar
24071d4279SBram Moolenaarsyn keyword pascalBoolean	true false
25071d4279SBram Moolenaarsyn keyword pascalConditional	if else then
26071d4279SBram Moolenaarsyn keyword pascalConstant	nil maxint
27071d4279SBram Moolenaarsyn keyword pascalLabel		case goto label
284c295027SBram Moolenaarsyn keyword pascalOperator	and div downto in mod not of or packed
29071d4279SBram Moolenaarsyn keyword pascalRepeat	do for do repeat while to until
30071d4279SBram Moolenaarsyn keyword pascalStatement	procedure function
314c295027SBram Moolenaarsyn keyword pascalStatement	program begin end const var type with
32071d4279SBram Moolenaarsyn keyword pascalStruct	record
33071d4279SBram Moolenaarsyn keyword pascalType		array boolean char integer file pointer real set
34071d4279SBram Moolenaarsyn keyword pascalType		string text variant
35071d4279SBram Moolenaar
36071d4279SBram Moolenaar
37009b2592SBram Moolenaar    " 20011222az: Added new items.
38009b2592SBram Moolenaarsyn keyword pascalTodo contained	TODO FIXME XXX DEBUG NOTE
39009b2592SBram Moolenaar
40009b2592SBram Moolenaar    " 20010723az: When wanted, highlight the trailing whitespace -- this is
41009b2592SBram Moolenaar    " based on c_space_errors; to enable, use "pascal_space_errors".
42009b2592SBram Moolenaarif exists("pascal_space_errors")
43009b2592SBram Moolenaar  if !exists("pascal_no_trail_space_error")
44009b2592SBram Moolenaar    syn match pascalSpaceError "\s\+$"
45009b2592SBram Moolenaar  endif
46009b2592SBram Moolenaar  if !exists("pascal_no_tab_space_error")
47009b2592SBram Moolenaar    syn match pascalSpaceError " \+\t"me=e-1
48009b2592SBram Moolenaar  endif
49009b2592SBram Moolenaarendif
50009b2592SBram Moolenaar
51071d4279SBram Moolenaar
52071d4279SBram Moolenaar
53071d4279SBram Moolenaar" String
54071d4279SBram Moolenaarif !exists("pascal_one_line_string")
55071d4279SBram Moolenaar  syn region  pascalString matchgroup=pascalString start=+'+ end=+'+ contains=pascalStringEscape
56071d4279SBram Moolenaar  if exists("pascal_gpc")
57071d4279SBram Moolenaar    syn region  pascalString matchgroup=pascalString start=+"+ end=+"+ contains=pascalStringEscapeGPC
58071d4279SBram Moolenaar  else
59071d4279SBram Moolenaar    syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ contains=pascalStringEscape
60071d4279SBram Moolenaar  endif
61071d4279SBram Moolenaarelse
62071d4279SBram Moolenaar  "wrong strings
63071d4279SBram Moolenaar  syn region  pascalStringError matchgroup=pascalStringError start=+'+ end=+'+ end=+$+ contains=pascalStringEscape
64071d4279SBram Moolenaar  if exists("pascal_gpc")
65071d4279SBram Moolenaar    syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscapeGPC
66071d4279SBram Moolenaar  else
67071d4279SBram Moolenaar    syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscape
68071d4279SBram Moolenaar  endif
69071d4279SBram Moolenaar
70071d4279SBram Moolenaar  "right strings
71071d4279SBram Moolenaar  syn region  pascalString matchgroup=pascalString start=+'+ end=+'+ oneline contains=pascalStringEscape
72071d4279SBram Moolenaar  " To see the start and end of strings:
73071d4279SBram Moolenaar  " syn region  pascalString matchgroup=pascalStringError start=+'+ end=+'+ oneline contains=pascalStringEscape
74071d4279SBram Moolenaar  if exists("pascal_gpc")
75071d4279SBram Moolenaar    syn region  pascalString matchgroup=pascalString start=+"+ end=+"+ oneline contains=pascalStringEscapeGPC
76071d4279SBram Moolenaar  else
77071d4279SBram Moolenaar    syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ oneline contains=pascalStringEscape
78071d4279SBram Moolenaar  endif
79071d4279SBram Moolenaarend
80071d4279SBram Moolenaarsyn match   pascalStringEscape		contained "''"
81071d4279SBram Moolenaarsyn match   pascalStringEscapeGPC	contained '""'
82071d4279SBram Moolenaar
83071d4279SBram Moolenaar
84071d4279SBram Moolenaar" syn match   pascalIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
85071d4279SBram Moolenaar
86071d4279SBram Moolenaar
87071d4279SBram Moolenaarif exists("pascal_symbol_operator")
88071d4279SBram Moolenaar  syn match   pascalSymbolOperator      "[+\-/*=]"
89071d4279SBram Moolenaar  syn match   pascalSymbolOperator      "[<>]=\="
90071d4279SBram Moolenaar  syn match   pascalSymbolOperator      "<>"
91071d4279SBram Moolenaar  syn match   pascalSymbolOperator      ":="
92071d4279SBram Moolenaar  syn match   pascalSymbolOperator      "[()]"
93071d4279SBram Moolenaar  syn match   pascalSymbolOperator      "\.\."
94071d4279SBram Moolenaar  syn match   pascalSymbolOperator       "[\^.]"
95071d4279SBram Moolenaar  syn match   pascalMatrixDelimiter	"[][]"
96071d4279SBram Moolenaar  "if you prefer you can highlight the range
97071d4279SBram Moolenaar  "syn match  pascalMatrixDelimiter	"[\d\+\.\.\d\+]"
98071d4279SBram Moolenaarendif
99071d4279SBram Moolenaar
100071d4279SBram Moolenaarsyn match  pascalNumber		"-\=\<\d\+\>"
1014c295027SBram Moolenaarif !exists("pascal_traditional")
1024c295027SBram Moolenaar  syn match  pascalHexNumber	"\$\x\+\>"
1034c295027SBram Moolenaarendif
1044c295027SBram Moolenaarif exists("pascal_fpc")
1054c295027SBram Moolenaar  syn match	pascalOctNumber "&\o\+\>"
1064c295027SBram Moolenaar  syn match	pascalBinNumber	"%[01]\+\>"
1074c295027SBram Moolenaarendif
1084c295027SBram Moolenaarif exists("pascal_gpc")
1094c295027SBram Moolenaar  syn match  pascalExtendedNumber	"\%([2-9]\|[12]\d\|3[0-6]\)#[[:alnum:]]\+\>"
1104c295027SBram Moolenaarendif
1114c295027SBram Moolenaar
112071d4279SBram Moolenaarsyn match  pascalFloat		"-\=\<\d\+\.\d\+\>"
113071d4279SBram Moolenaarsyn match  pascalFloat		"-\=\<\d\+\.\d\+[eE]-\=\d\+\>"
1144c295027SBram Moolenaar
1154c295027SBram Moolenaarif !exists("pascal_traditional")
1164c295027SBram Moolenaar  " allow leading zeros
1174c295027SBram Moolenaar  syn match pascalControlCharacter	"#\%([01]\=\d\=\d\|2[0-4]\d\|25[0-5]\)\>"
1184c295027SBram Moolenaarendif
119071d4279SBram Moolenaar
120071d4279SBram Moolenaarif exists("pascal_no_tabs")
121071d4279SBram Moolenaar  syn match pascalShowTab "\t"
122071d4279SBram Moolenaarendif
123071d4279SBram Moolenaar
124009b2592SBram Moolenaarsyn region pascalComment	start="(\*\|{"  end="\*)\|}" contains=pascalTodo,pascalSpaceError
125071d4279SBram Moolenaar
126071d4279SBram Moolenaar
127071d4279SBram Moolenaarif !exists("pascal_no_functions")
128071d4279SBram Moolenaar  " array functions
129071d4279SBram Moolenaar  syn keyword pascalFunction	pack unpack
130071d4279SBram Moolenaar
131071d4279SBram Moolenaar  " memory function
132071d4279SBram Moolenaar  syn keyword pascalFunction	Dispose New
133071d4279SBram Moolenaar
134071d4279SBram Moolenaar  " math functions
135071d4279SBram Moolenaar  syn keyword pascalFunction	Abs Arctan Cos Exp Ln Sin Sqr Sqrt
136071d4279SBram Moolenaar
137071d4279SBram Moolenaar  " file functions
138071d4279SBram Moolenaar  syn keyword pascalFunction	Eof Eoln Write Writeln
139071d4279SBram Moolenaar  syn keyword pascalPredefined	Input Output
140071d4279SBram Moolenaar
141071d4279SBram Moolenaar  if exists("pascal_traditional")
142071d4279SBram Moolenaar    " These functions do not seem to be defined in Turbo Pascal
143071d4279SBram Moolenaar    syn keyword pascalFunction	Get Page Put
144071d4279SBram Moolenaar  endif
145071d4279SBram Moolenaar
146071d4279SBram Moolenaar  " ordinal functions
147071d4279SBram Moolenaar  syn keyword pascalFunction	Odd Pred Succ
148071d4279SBram Moolenaar
149071d4279SBram Moolenaar  " transfert functions
150071d4279SBram Moolenaar  syn keyword pascalFunction	Chr Ord Round Trunc
151071d4279SBram Moolenaarendif
152071d4279SBram Moolenaar
153071d4279SBram Moolenaar
154071d4279SBram Moolenaarif !exists("pascal_traditional")
155071d4279SBram Moolenaar
156071d4279SBram Moolenaar  syn keyword pascalStatement	constructor destructor implementation inherited
157071d4279SBram Moolenaar  syn keyword pascalStatement	interface unit uses
158071d4279SBram Moolenaar  syn keyword pascalModifier	absolute assembler external far forward inline
159071d4279SBram Moolenaar  syn keyword pascalModifier	interrupt near virtual
1604c295027SBram Moolenaar  syn keyword pascalAccess	private public strict
161071d4279SBram Moolenaar  syn keyword pascalStruct	object
162071d4279SBram Moolenaar  syn keyword pascalOperator	shl shr xor
163071d4279SBram Moolenaar
164071d4279SBram Moolenaar  syn region pascalPreProc	start="(\*\$"  end="\*)" contains=pascalTodo
165071d4279SBram Moolenaar  syn region pascalPreProc	start="{\$"  end="}"
166071d4279SBram Moolenaar
167071d4279SBram Moolenaar  syn region  pascalAsm		matchgroup=pascalAsmKey start="\<asm\>" end="\<end\>" contains=pascalComment,pascalPreProc
168071d4279SBram Moolenaar
169071d4279SBram Moolenaar  syn keyword pascalType	ShortInt LongInt Byte Word
170071d4279SBram Moolenaar  syn keyword pascalType	ByteBool WordBool LongBool
171071d4279SBram Moolenaar  syn keyword pascalType	Cardinal LongWord
172071d4279SBram Moolenaar  syn keyword pascalType	Single Double Extended Comp
173071d4279SBram Moolenaar  syn keyword pascalType	PChar
174071d4279SBram Moolenaar
1754c295027SBram Moolenaar  syn keyword pascalPredefined	self
176071d4279SBram Moolenaar
177071d4279SBram Moolenaar  if !exists ("pascal_fpc")
178071d4279SBram Moolenaar    syn keyword pascalPredefined	Result
179071d4279SBram Moolenaar  endif
180071d4279SBram Moolenaar
181071d4279SBram Moolenaar  if exists("pascal_fpc")
182009b2592SBram Moolenaar    syn region pascalComment        start="//" end="$" contains=pascalTodo,pascalSpaceError
183071d4279SBram Moolenaar    syn keyword pascalStatement	fail otherwise operator
184071d4279SBram Moolenaar    syn keyword pascalDirective	popstack
185071d4279SBram Moolenaar    syn keyword pascalType	ShortString AnsiString WideString
186071d4279SBram Moolenaar  endif
187071d4279SBram Moolenaar
188071d4279SBram Moolenaar  if exists("pascal_gpc")
1894c295027SBram Moolenaar    syn region pascalComment        start="//" end="$" contains=pascalTodo,pascalSpaceError
190071d4279SBram Moolenaar    syn keyword pascalType	SmallInt
191071d4279SBram Moolenaar    syn keyword pascalType	AnsiChar
192071d4279SBram Moolenaar    syn keyword pascalType	PAnsiChar
193071d4279SBram Moolenaar  endif
194071d4279SBram Moolenaar
195071d4279SBram Moolenaar  if exists("pascal_delphi")
196009b2592SBram Moolenaar    syn region pascalComment	start="//"  end="$" contains=pascalTodo,pascalSpaceError
1974c295027SBram Moolenaar    syn region pascalDocumentation	start="///" end="$" contains=pascalTodo,pascalSpaceError
1984c295027SBram Moolenaar    syn region pascalDocumentation	start="{!"  end="}" contains=pascalTodo,pascalSpaceError
199071d4279SBram Moolenaar    syn keyword pascalType	SmallInt Int64
200071d4279SBram Moolenaar    syn keyword pascalType	Real48 Currency
201071d4279SBram Moolenaar    syn keyword pascalType	AnsiChar WideChar
202071d4279SBram Moolenaar    syn keyword pascalType	ShortString AnsiString WideString
203071d4279SBram Moolenaar    syn keyword pascalType	PAnsiChar PWideChar
204071d4279SBram Moolenaar    syn match  pascalFloat	"-\=\<\d\+\.\d\+[dD]-\=\d\+\>"
205071d4279SBram Moolenaar    syn match  pascalStringEscape	contained "#[12][0-9]\=[0-9]\="
206071d4279SBram Moolenaar    syn keyword pascalStruct	class dispinterface
207071d4279SBram Moolenaar    syn keyword pascalException	try except raise at on finally
208071d4279SBram Moolenaar    syn keyword pascalStatement	out
209071d4279SBram Moolenaar    syn keyword pascalStatement	library package
210071d4279SBram Moolenaar    syn keyword pascalStatement	initialization finalization uses exports
211071d4279SBram Moolenaar    syn keyword pascalStatement	property out resourcestring threadvar
212071d4279SBram Moolenaar    syn keyword pascalModifier	contains
2134c295027SBram Moolenaar    syn keyword pascalModifier	overridden reintroduce abstract sealed
214071d4279SBram Moolenaar    syn keyword pascalModifier	override export dynamic name message
215071d4279SBram Moolenaar    syn keyword pascalModifier	dispid index stored default nodefault readonly
216071d4279SBram Moolenaar    syn keyword pascalModifier	writeonly implements overload requires resident
2174c295027SBram Moolenaar    syn keyword pascalAccess	protected published automated
218071d4279SBram Moolenaar    syn keyword pascalDirective	register pascal cvar cdecl stdcall safecall
219071d4279SBram Moolenaar    syn keyword pascalOperator	as is
220071d4279SBram Moolenaar  endif
221071d4279SBram Moolenaar
222071d4279SBram Moolenaar  if exists("pascal_no_functions")
223071d4279SBram Moolenaar    "syn keyword pascalModifier	read write
224071d4279SBram Moolenaar    "may confuse with Read and Write functions.  Not easy to handle.
225071d4279SBram Moolenaar  else
226071d4279SBram Moolenaar    " control flow functions
227071d4279SBram Moolenaar    syn keyword pascalFunction	Break Continue Exit Halt RunError
228071d4279SBram Moolenaar
229071d4279SBram Moolenaar    " ordinal functions
230071d4279SBram Moolenaar    syn keyword pascalFunction	Dec Inc High Low
231071d4279SBram Moolenaar
232071d4279SBram Moolenaar    " math functions
233071d4279SBram Moolenaar    syn keyword pascalFunction	Frac Int Pi
234071d4279SBram Moolenaar
235071d4279SBram Moolenaar    " string functions
236071d4279SBram Moolenaar    syn keyword pascalFunction	Concat Copy Delete Insert Length Pos Str Val
237071d4279SBram Moolenaar
238071d4279SBram Moolenaar    " memory function
239071d4279SBram Moolenaar    syn keyword pascalFunction	FreeMem GetMem MaxAvail MemAvail
240071d4279SBram Moolenaar
241071d4279SBram Moolenaar    " pointer and address functions
242071d4279SBram Moolenaar    syn keyword pascalFunction	Addr Assigned CSeg DSeg Ofs Ptr Seg SPtr SSeg
243071d4279SBram Moolenaar
244071d4279SBram Moolenaar    " misc functions
245071d4279SBram Moolenaar    syn keyword pascalFunction	Exclude FillChar Hi Include Lo Move ParamCount
246071d4279SBram Moolenaar    syn keyword pascalFunction	ParamStr Random Randomize SizeOf Swap TypeOf
247071d4279SBram Moolenaar    syn keyword pascalFunction	UpCase
248071d4279SBram Moolenaar
249071d4279SBram Moolenaar    " predefined variables
250071d4279SBram Moolenaar    syn keyword pascalPredefined ErrorAddr ExitCode ExitProc FileMode FreeList
251071d4279SBram Moolenaar    syn keyword pascalPredefined FreeZero HeapEnd HeapError HeapOrg HeapPtr
252071d4279SBram Moolenaar    syn keyword pascalPredefined InOutRes OvrCodeList OvrDebugPtr OvrDosHandle
253071d4279SBram Moolenaar    syn keyword pascalPredefined OvrEmsHandle OvrHeapEnd OvrHeapOrg OvrHeapPtr
254071d4279SBram Moolenaar    syn keyword pascalPredefined OvrHeapSize OvrLoadList PrefixSeg RandSeed
255071d4279SBram Moolenaar    syn keyword pascalPredefined SaveInt00 SaveInt02 SaveInt1B SaveInt21
256071d4279SBram Moolenaar    syn keyword pascalPredefined SaveInt23 SaveInt24 SaveInt34 SaveInt35
257071d4279SBram Moolenaar    syn keyword pascalPredefined SaveInt36 SaveInt37 SaveInt38 SaveInt39
258071d4279SBram Moolenaar    syn keyword pascalPredefined SaveInt3A SaveInt3B SaveInt3C SaveInt3D
259071d4279SBram Moolenaar    syn keyword pascalPredefined SaveInt3E SaveInt3F SaveInt75 SegA000 SegB000
260071d4279SBram Moolenaar    syn keyword pascalPredefined SegB800 SelectorInc StackLimit Test8087
261071d4279SBram Moolenaar
262071d4279SBram Moolenaar    " file functions
263071d4279SBram Moolenaar    syn keyword pascalFunction	Append Assign BlockRead BlockWrite ChDir Close
264071d4279SBram Moolenaar    syn keyword pascalFunction	Erase FilePos FileSize Flush GetDir IOResult
265071d4279SBram Moolenaar    syn keyword pascalFunction	MkDir Read Readln Rename Reset Rewrite RmDir
266071d4279SBram Moolenaar    syn keyword pascalFunction	Seek SeekEof SeekEoln SetTextBuf Truncate
267071d4279SBram Moolenaar
268071d4279SBram Moolenaar    " crt unit
269071d4279SBram Moolenaar    syn keyword pascalFunction	AssignCrt ClrEol ClrScr Delay DelLine GotoXY
270071d4279SBram Moolenaar    syn keyword pascalFunction	HighVideo InsLine KeyPressed LowVideo NormVideo
271071d4279SBram Moolenaar    syn keyword pascalFunction	NoSound ReadKey Sound TextBackground TextColor
272071d4279SBram Moolenaar    syn keyword pascalFunction	TextMode WhereX WhereY Window
273071d4279SBram Moolenaar    syn keyword pascalPredefined CheckBreak CheckEOF CheckSnow DirectVideo
274071d4279SBram Moolenaar    syn keyword pascalPredefined LastMode TextAttr WindMin WindMax
275071d4279SBram Moolenaar    syn keyword pascalFunction BigCursor CursorOff CursorOn
276071d4279SBram Moolenaar    syn keyword pascalConstant Black Blue Green Cyan Red Magenta Brown
277071d4279SBram Moolenaar    syn keyword pascalConstant LightGray DarkGray LightBlue LightGreen
278071d4279SBram Moolenaar    syn keyword pascalConstant LightCyan LightRed LightMagenta Yellow White
279071d4279SBram Moolenaar    syn keyword pascalConstant Blink ScreenWidth ScreenHeight bw40
280071d4279SBram Moolenaar    syn keyword pascalConstant co40 bw80 co80 mono
281071d4279SBram Moolenaar    syn keyword pascalPredefined TextChar
282071d4279SBram Moolenaar
283071d4279SBram Moolenaar    " DOS unit
284071d4279SBram Moolenaar    syn keyword pascalFunction	AddDisk DiskFree DiskSize DosExitCode DosVersion
285071d4279SBram Moolenaar    syn keyword pascalFunction	EnvCount EnvStr Exec Expand FindClose FindFirst
286071d4279SBram Moolenaar    syn keyword pascalFunction	FindNext FSearch FSplit GetCBreak GetDate
287071d4279SBram Moolenaar    syn keyword pascalFunction	GetEnv GetFAttr GetFTime GetIntVec GetTime
288071d4279SBram Moolenaar    syn keyword pascalFunction	GetVerify Intr Keep MSDos PackTime SetCBreak
289071d4279SBram Moolenaar    syn keyword pascalFunction	SetDate SetFAttr SetFTime SetIntVec SetTime
290071d4279SBram Moolenaar    syn keyword pascalFunction	SetVerify SwapVectors UnPackTime
291071d4279SBram Moolenaar    syn keyword pascalConstant	FCarry FParity FAuxiliary FZero FSign FOverflow
292071d4279SBram Moolenaar    syn keyword pascalConstant	Hidden Sysfile VolumeId Directory Archive
293071d4279SBram Moolenaar    syn keyword pascalConstant	AnyFile fmClosed fmInput fmOutput fmInout
294071d4279SBram Moolenaar    syn keyword pascalConstant	TextRecNameLength TextRecBufSize
295071d4279SBram Moolenaar    syn keyword pascalType	ComStr PathStr DirStr NameStr ExtStr SearchRec
296071d4279SBram Moolenaar    syn keyword pascalType	FileRec TextBuf TextRec Registers DateTime
297071d4279SBram Moolenaar    syn keyword pascalPredefined DosError
298071d4279SBram Moolenaar
299071d4279SBram Moolenaar    "Graph Unit
300071d4279SBram Moolenaar    syn keyword pascalFunction	Arc Bar Bar3D Circle ClearDevice ClearViewPort
301071d4279SBram Moolenaar    syn keyword pascalFunction	CloseGraph DetectGraph DrawPoly Ellipse
302071d4279SBram Moolenaar    syn keyword pascalFunction	FillEllipse FillPoly FloodFill GetArcCoords
303071d4279SBram Moolenaar    syn keyword pascalFunction	GetAspectRatio GetBkColor GetColor
304071d4279SBram Moolenaar    syn keyword pascalFunction	GetDefaultPalette GetDriverName GetFillPattern
305071d4279SBram Moolenaar    syn keyword pascalFunction	GetFillSettings GetGraphMode GetImage
306071d4279SBram Moolenaar    syn keyword pascalFunction	GetLineSettings GetMaxColor GetMaxMode GetMaxX
307071d4279SBram Moolenaar    syn keyword pascalFunction	GetMaxY GetModeName GetModeRange GetPalette
308071d4279SBram Moolenaar    syn keyword pascalFunction	GetPaletteSize GetPixel GetTextSettings
309071d4279SBram Moolenaar    syn keyword pascalFunction	GetViewSettings GetX GetY GraphDefaults
310071d4279SBram Moolenaar    syn keyword pascalFunction	GraphErrorMsg GraphResult ImageSize InitGraph
311071d4279SBram Moolenaar    syn keyword pascalFunction	InstallUserDriver InstallUserFont Line LineRel
312071d4279SBram Moolenaar    syn keyword pascalFunction	LineTo MoveRel MoveTo OutText OutTextXY
313071d4279SBram Moolenaar    syn keyword pascalFunction	PieSlice PutImage PutPixel Rectangle
314071d4279SBram Moolenaar    syn keyword pascalFunction	RegisterBGIDriver RegisterBGIFont
315071d4279SBram Moolenaar    syn keyword pascalFunction	RestoreCRTMode Sector SetActivePage
316071d4279SBram Moolenaar    syn keyword pascalFunction	SetAllPallette SetAspectRatio SetBkColor
317071d4279SBram Moolenaar    syn keyword pascalFunction	SetColor SetFillPattern SetFillStyle
318071d4279SBram Moolenaar    syn keyword pascalFunction	SetGraphBufSize SetGraphMode SetLineStyle
319071d4279SBram Moolenaar    syn keyword pascalFunction	SetPalette SetRGBPalette SetTextJustify
320071d4279SBram Moolenaar    syn keyword pascalFunction	SetTextStyle SetUserCharSize SetViewPort
321071d4279SBram Moolenaar    syn keyword pascalFunction	SetVisualPage SetWriteMode TextHeight TextWidth
322071d4279SBram Moolenaar    syn keyword pascalType	ArcCoordsType FillPatternType FillSettingsType
323071d4279SBram Moolenaar    syn keyword pascalType	LineSettingsType PaletteType PointType
324071d4279SBram Moolenaar    syn keyword pascalType	TextSettingsType ViewPortType
325071d4279SBram Moolenaar
326071d4279SBram Moolenaar    " string functions
327071d4279SBram Moolenaar    syn keyword pascalFunction	StrAlloc StrBufSize StrCat StrComp StrCopy
328071d4279SBram Moolenaar    syn keyword pascalFunction	StrDispose StrECopy StrEnd StrFmt StrIComp
329071d4279SBram Moolenaar    syn keyword pascalFunction	StrLCat StrLComp StrLCopy StrLen StrLFmt
330071d4279SBram Moolenaar    syn keyword pascalFunction	StrLIComp StrLower StrMove StrNew StrPas
331071d4279SBram Moolenaar    syn keyword pascalFunction	StrPCopy StrPLCopy StrPos StrRScan StrScan
332071d4279SBram Moolenaar    syn keyword pascalFunction	StrUpper
333071d4279SBram Moolenaar  endif
334071d4279SBram Moolenaar
335071d4279SBram Moolenaarendif
336071d4279SBram Moolenaar
337071d4279SBram Moolenaar" Define the default highlighting.
33889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
339071d4279SBram Moolenaar
3404c295027SBram Moolenaarhi def link pascalAccess		pascalStatement
341f37506f6SBram Moolenaarhi def link pascalBoolean		Boolean
342f37506f6SBram Moolenaarhi def link pascalComment		Comment
3434c295027SBram Moolenaarhi def link pascalDocumentation		Comment
344f37506f6SBram Moolenaarhi def link pascalConditional		Conditional
345f37506f6SBram Moolenaarhi def link pascalConstant		Constant
3464c295027SBram Moolenaarhi def link pascalControlCharacter	Character
347f37506f6SBram Moolenaarhi def link pascalDelimiter		Identifier
348f37506f6SBram Moolenaarhi def link pascalDirective		pascalStatement
349f37506f6SBram Moolenaarhi def link pascalException		Exception
350f37506f6SBram Moolenaarhi def link pascalFloat			Float
351f37506f6SBram Moolenaarhi def link pascalFunction		Function
352f37506f6SBram Moolenaarhi def link pascalLabel			Label
353f37506f6SBram Moolenaarhi def link pascalMatrixDelimiter	Identifier
354f37506f6SBram Moolenaarhi def link pascalModifier		Type
355f37506f6SBram Moolenaarhi def link pascalNumber		Number
3564c295027SBram Moolenaarhi def link pascalExtendedNumber	Number
3574c295027SBram Moolenaarhi def link pascalBinNumber		pascalNumber
3584c295027SBram Moolenaarhi def link pascalHexNumber		pascalNumber
3594c295027SBram Moolenaarhi def link pascalOctNumber		pascalNumber
360f37506f6SBram Moolenaarhi def link pascalOperator		Operator
361f37506f6SBram Moolenaarhi def link pascalPredefined		pascalStatement
362f37506f6SBram Moolenaarhi def link pascalPreProc		PreProc
363f37506f6SBram Moolenaarhi def link pascalRepeat		Repeat
364f37506f6SBram Moolenaarhi def link pascalSpaceError		Error
365f37506f6SBram Moolenaarhi def link pascalStatement		Statement
366f37506f6SBram Moolenaarhi def link pascalString		String
367f37506f6SBram Moolenaarhi def link pascalStringEscape		Special
368f37506f6SBram Moolenaarhi def link pascalStringEscapeGPC	Special
369f37506f6SBram Moolenaarhi def link pascalStringError		Error
370f37506f6SBram Moolenaarhi def link pascalStruct		pascalStatement
371f37506f6SBram Moolenaarhi def link pascalSymbolOperator	pascalOperator
372f37506f6SBram Moolenaarhi def link pascalTodo			Todo
373f37506f6SBram Moolenaarhi def link pascalType			Type
374f37506f6SBram Moolenaarhi def link pascalUnclassified		pascalStatement
375f37506f6SBram Moolenaar"  hi def link pascalAsm		Assembler
376f37506f6SBram Moolenaarhi def link pascalError			Error
377f37506f6SBram Moolenaarhi def link pascalAsmKey		pascalStatement
378f37506f6SBram Moolenaarhi def link pascalShowTab		Error
379071d4279SBram Moolenaar
380071d4279SBram Moolenaar
381071d4279SBram Moolenaar
382071d4279SBram Moolenaarlet b:current_syntax = "pascal"
383071d4279SBram Moolenaar
3844c295027SBram Moolenaar" vim: nowrap sw=2 sts=2 ts=8 noet:
385