| " Vim syntax file |
| " Language: Pascal |
| " Version: 2.8 |
| " Last Change: 2004/10/17 17:47:30 |
| " Maintainer: Xavier Crégut <xavier.cregut@enseeiht.fr> |
| " Previous Maintainer: Mario Eusebio <bio@dq.fct.unl.pt> |
| |
| " 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> |
| |
| " For version 5.x: Clear all syntax items |
| " For version 6.x: Quit when a syntax file was already loaded |
| if version < 600 |
| syntax clear |
| elseif exists("b:current_syntax") |
| finish |
| endif |
| |
| |
| 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 with |
| syn keyword pascalRepeat do for do repeat while to until |
| syn keyword pascalStatement procedure function |
| syn keyword pascalStatement program begin end const var type |
| 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\+\>" |
| syn match pascalFloat "-\=\<\d\+\.\d\+\>" |
| syn match pascalFloat "-\=\<\d\+\.\d\+[eE]-\=\d\+\>" |
| syn match pascalHexNumber "\$[0-9a-fA-F]\+\>" |
| |
| 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 pascalAcces private public |
| 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 |
| |
| |
| 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 pascalPredefined self |
| syn keyword pascalType ShortString AnsiString WideString |
| endif |
| |
| if exists("pascal_gpc") |
| 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 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 |
| 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 pascalAcces 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. |
| " For version 5.7 and earlier: only when not done already |
| " For version 5.8 and later: only when an item doesn't have highlighting yet |
| if version >= 508 || !exists("did_pascal_syn_inits") |
| if version < 508 |
| let did_pascal_syn_inits = 1 |
| command -nargs=+ HiLink hi link <args> |
| else |
| command -nargs=+ HiLink hi def link <args> |
| endif |
| |
| HiLink pascalAcces pascalStatement |
| HiLink pascalBoolean Boolean |
| HiLink pascalComment Comment |
| HiLink pascalConditional Conditional |
| HiLink pascalConstant Constant |
| HiLink pascalDelimiter Identifier |
| HiLink pascalDirective pascalStatement |
| HiLink pascalException Exception |
| HiLink pascalFloat Float |
| HiLink pascalFunction Function |
| HiLink pascalLabel Label |
| HiLink pascalMatrixDelimiter Identifier |
| HiLink pascalModifier Type |
| HiLink pascalNumber Number |
| HiLink pascalOperator Operator |
| HiLink pascalPredefined pascalStatement |
| HiLink pascalPreProc PreProc |
| HiLink pascalRepeat Repeat |
| HiLink pascalSpaceError Error |
| HiLink pascalStatement Statement |
| HiLink pascalString String |
| HiLink pascalStringEscape Special |
| HiLink pascalStringEscapeGPC Special |
| HiLink pascalStringError Error |
| HiLink pascalStruct pascalStatement |
| HiLink pascalSymbolOperator pascalOperator |
| HiLink pascalTodo Todo |
| HiLink pascalType Type |
| HiLink pascalUnclassified pascalStatement |
| " HiLink pascalAsm Assembler |
| HiLink pascalError Error |
| HiLink pascalAsmKey pascalStatement |
| HiLink pascalShowTab Error |
| |
| delcommand HiLink |
| endif |
| |
| |
| let b:current_syntax = "pascal" |
| |
| " vim: ts=8 sw=2 |