home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / pascal.vim < prev    next >
Encoding:
Text File  |  2003-05-11  |  14.4 KB  |  358 lines

  1. " Vim syntax file
  2. " Language:    Pascal
  3. " Version: 2.7
  4. " Last Change:    2003 May 11
  5. " Maintainer:  Xavier CrΘgut <xavier.cregut@enseeiht.fr>
  6. " Previous Maintainer:    Mario Eusebio <bio@dq.fct.unl.pt>
  7.  
  8. " Contributors: Tim Chase <tchase@csc.com>, Stas Grabois <stsi@vtrails.com>,
  9. "    Mazen NEIFER <mazen.neifer.2001@supaero.fr>,
  10. "    Klaus Hast <Klaus.Hast@arcor.net>
  11.  
  12. " For version 5.x: Clear all syntax items
  13. " For version 6.x: Quit when a syntax file was already loaded
  14. if version < 600
  15.   syntax clear
  16. elseif exists("b:current_syntax")
  17.   finish
  18. endif
  19.  
  20.  
  21. syn case ignore
  22. syn sync lines=250
  23.  
  24. syn keyword pascalBoolean    true false
  25. syn keyword pascalConditional    if else then
  26. syn keyword pascalConstant    nil maxint
  27. syn keyword pascalLabel        case goto label
  28. syn keyword pascalOperator    and div downto in mod not of or packed with
  29. syn keyword pascalRepeat    do for do repeat while to until
  30. syn keyword pascalStatement    procedure function
  31. syn keyword pascalStatement    program begin end const var type
  32. syn keyword pascalStruct    record
  33. syn keyword pascalType        array boolean char integer file pointer real set
  34. syn keyword pascalType        string text variant
  35.  
  36.  
  37. syn keyword pascalTodo contained    TODO
  38.  
  39.  
  40. " String
  41. if !exists("pascal_one_line_string")
  42.   syn region  pascalString matchgroup=pascalString start=+'+ end=+'+ contains=pascalStringEscape
  43.   if exists("pascal_gpc")
  44.     syn region  pascalString matchgroup=pascalString start=+"+ end=+"+ contains=pascalStringEscapeGPC
  45.   else
  46.     syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ contains=pascalStringEscape
  47.   endif
  48. else
  49.   "wrong strings
  50.   syn region  pascalStringError matchgroup=pascalStringError start=+'+ end=+'+ end=+$+ contains=pascalStringEscape
  51.   if exists("pascal_gpc")
  52.     syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscapeGPC
  53.   else
  54.     syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscape
  55.   endif
  56.  
  57.   "right strings
  58.   syn region  pascalString matchgroup=pascalString start=+'+ end=+'+ oneline contains=pascalStringEscape
  59.   " To see the start and end of strings:
  60.   " syn region  pascalString matchgroup=pascalStringError start=+'+ end=+'+ oneline contains=pascalStringEscape
  61.   if exists("pascal_gpc")
  62.     syn region  pascalString matchgroup=pascalString start=+"+ end=+"+ oneline contains=pascalStringEscapeGPC
  63.   else
  64.     syn region  pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ oneline contains=pascalStringEscape
  65.   endif
  66. end
  67. syn match   pascalStringEscape        contained "''"
  68. syn match   pascalStringEscapeGPC    contained '""'
  69.  
  70.  
  71. " syn match   pascalIdentifier        "\<[a-zA-Z_][a-zA-Z0-9_]*\>"
  72.  
  73.  
  74. if exists("pascal_symbol_operator")
  75.   syn match   pascalSymbolOperator      "[+\-/*=]"
  76.   syn match   pascalSymbolOperator      "[<>]=\="
  77.   syn match   pascalSymbolOperator      "<>"
  78.   syn match   pascalSymbolOperator      ":="
  79.   syn match   pascalSymbolOperator      "[()]"
  80.   syn match   pascalSymbolOperator      "\.\."
  81.   syn match   pascalSymbolOperator       "[\^.]"
  82.   syn match   pascalMatrixDelimiter    "[][]"
  83.   "if you prefer you can highlight the range
  84.   "syn match  pascalMatrixDelimiter    "[\d\+\.\.\d\+]"
  85. endif
  86.  
  87. syn match  pascalNumber        "-\=\<\d\+\>"
  88. syn match  pascalFloat        "-\=\<\d\+\.\d\+\>"
  89. syn match  pascalFloat        "-\=\<\d\+\.\d\+[eE]-\=\d\+\>"
  90. syn match  pascalHexNumber    "\$[0-9a-fA-F]\+\>"
  91.  
  92. if exists("pascal_no_tabs")
  93.   syn match pascalShowTab "\t"
  94. endif
  95.  
  96. syn region pascalComment    start="(\*"  end="\*)" contains=pascalTodo
  97. syn region pascalComment    start="{"  end="}" contains=pascalTodo
  98.  
  99.  
  100. if !exists("pascal_no_functions")
  101.   " array functions
  102.   syn keyword pascalFunction    pack unpack
  103.  
  104.   " memory function
  105.   syn keyword pascalFunction    Dispose New
  106.  
  107.   " math functions
  108.   syn keyword pascalFunction    Abs Arctan Cos Exp Ln Sin Sqr Sqrt
  109.  
  110.   " file functions
  111.   syn keyword pascalFunction    Eof Eoln Write Writeln
  112.   syn keyword pascalPredefined    Input Output
  113.  
  114.   if exists("pascal_traditional")
  115.     " These functions do not seem to be defined in Turbo Pascal
  116.     syn keyword pascalFunction    Get Page Put
  117.   endif
  118.  
  119.   " ordinal functions
  120.   syn keyword pascalFunction    Odd Pred Succ
  121.  
  122.   " transfert functions
  123.   syn keyword pascalFunction    Chr Ord Round Trunc
  124. endif
  125.  
  126.  
  127. if !exists("pascal_traditional")
  128.  
  129.   syn keyword pascalStatement    constructor destructor implementation inherited
  130.   syn keyword pascalStatement    interface unit uses
  131.   syn keyword pascalModifier    absolute assembler external far forward inline
  132.   syn keyword pascalModifier    interrupt near virtual
  133.   syn keyword pascalAcces    private public
  134.   syn keyword pascalStruct    object
  135.   syn keyword pascalOperator    shl shr xor
  136.  
  137.   syn region pascalPreProc    start="(\*\$"  end="\*)" contains=pascalTodo
  138.   syn region pascalPreProc    start="{\$"  end="}"
  139.  
  140.   syn region  pascalAsm        matchgroup=pascalAsmKey start="\<asm\>" end="\<end\>" contains=pascalComment,pascalPreProc
  141.  
  142.   syn keyword pascalType    ShortInt LongInt Byte Word
  143.   syn keyword pascalType    ByteBool WordBool LongBool
  144.   syn keyword pascalType    Cardinal LongWord
  145.   syn keyword pascalType    Single Double Extended Comp
  146.   syn keyword pascalType    PChar
  147.  
  148.  
  149.   if !exists ("pascal_fpc")
  150.     syn keyword pascalPredefined    Result
  151.   endif
  152.  
  153.   if exists("pascal_fpc")
  154.     syn region pascalComment    start="//" end="$"
  155.     syn keyword pascalStatement    fail otherwise operator
  156.     syn keyword pascalDirective    popstack
  157.     syn keyword pascalPredefined self
  158.     syn keyword pascalType    ShortString AnsiString WideString
  159.   endif
  160.  
  161.   if exists("pascal_gpc")
  162.     syn keyword pascalType    SmallInt
  163.     syn keyword pascalType    AnsiChar
  164.     syn keyword pascalType    PAnsiChar
  165.   endif
  166.  
  167.   if exists("pascal_delphi")
  168.     syn region pascalComment    start="//"  end="$" contains=pascalTodo
  169.     syn keyword pascalType    SmallInt Int64
  170.     syn keyword pascalType    Real48 Currency
  171.     syn keyword pascalType    AnsiChar WideChar
  172.     syn keyword pascalType    ShortString AnsiString WideString
  173.     syn keyword pascalType    PAnsiChar PWideChar
  174.     syn match  pascalFloat    "-\=\<\d\+\.\d\+[dD]-\=\d\+\>"
  175.     syn match  pascalStringEscape    contained "#[12][0-9]\=[0-9]\="
  176.     syn keyword pascalStruct    class dispinterface
  177.     syn keyword pascalException    try except raise at on finally
  178.     syn keyword pascalStatement    out
  179.     syn keyword pascalStatement    library package
  180.     syn keyword pascalStatement    initialization finalization uses exports
  181.     syn keyword pascalStatement    property out resourcestring threadvar
  182.     syn keyword pascalModifier    contains
  183.     syn keyword pascalModifier    overridden reintroduce abstract
  184.     syn keyword pascalModifier    override export dynamic name message
  185.     syn keyword pascalModifier    dispid index stored default nodefault readonly
  186.     syn keyword pascalModifier    writeonly implements overload requires resident
  187.     syn keyword pascalAcces    protected published automated
  188.     syn keyword pascalDirective    register pascal cvar cdecl stdcall safecall
  189.     syn keyword pascalOperator    as is
  190.   endif
  191.  
  192.   if exists("pascal_no_functions")
  193.     "syn keyword pascalModifier    read write
  194.     "may confuse with Read and Write functions.  Not easy to handle.
  195.   else
  196.     " control flow functions
  197.     syn keyword pascalFunction    Break Continue Exit Halt RunError
  198.  
  199.     " ordinal functions
  200.     syn keyword pascalFunction    Dec Inc High Low
  201.  
  202.     " math functions
  203.     syn keyword pascalFunction    Frac Int Pi
  204.  
  205.     " string functions
  206.     syn keyword pascalFunction    Concat Copy Delete Insert Length Pos Str Val
  207.  
  208.     " memory function
  209.     syn keyword pascalFunction    FreeMem GetMem MaxAvail MemAvail
  210.  
  211.     " pointer and address functions
  212.     syn keyword pascalFunction    Addr Assigned CSeg DSeg Ofs Ptr Seg SPtr SSeg
  213.  
  214.     " misc functions
  215.     syn keyword pascalFunction    Exclude FillChar Hi Include Lo Move ParamCount
  216.     syn keyword pascalFunction    ParamStr Random Randomize SizeOf Swap TypeOf
  217.     syn keyword pascalFunction    UpCase
  218.  
  219.     " predefined variables
  220.     syn keyword pascalPredefined ErrorAddr ExitCode ExitProc FileMode FreeList
  221.     syn keyword pascalPredefined FreeZero HeapEnd HeapError HeapOrg HeapPtr
  222.     syn keyword pascalPredefined InOutRes OvrCodeList OvrDebugPtr OvrDosHandle
  223.     syn keyword pascalPredefined OvrEmsHandle OvrHeapEnd OvrHeapOrg OvrHeapPtr
  224.     syn keyword pascalPredefined OvrHeapSize OvrLoadList PrefixSeg RandSeed
  225.     syn keyword pascalPredefined SaveInt00 SaveInt02 SaveInt1B SaveInt21
  226.     syn keyword pascalPredefined SaveInt23 SaveInt24 SaveInt34 SaveInt35
  227.     syn keyword pascalPredefined SaveInt36 SaveInt37 SaveInt38 SaveInt39
  228.     syn keyword pascalPredefined SaveInt3A SaveInt3B SaveInt3C SaveInt3D
  229.     syn keyword pascalPredefined SaveInt3E SaveInt3F SaveInt75 SegA000 SegB000
  230.     syn keyword pascalPredefined SegB800 SelectorInc StackLimit Test8087
  231.  
  232.     " file functions
  233.     syn keyword pascalFunction    Append Assign BlockRead BlockWrite ChDir Close
  234.     syn keyword pascalFunction    Erase FilePos FileSize Flush GetDir IOResult
  235.     syn keyword pascalFunction    MkDir Read Readln Rename Reset Rewrite RmDir
  236.     syn keyword pascalFunction    Seek SeekEof SeekEoln SetTextBuf Truncate
  237.  
  238.     " crt unit
  239.     syn keyword pascalFunction    AssignCrt ClrEol ClrScr Delay DelLine GotoXY
  240.     syn keyword pascalFunction    HighVideo InsLine KeyPressed LowVideo NormVideo
  241.     syn keyword pascalFunction    NoSound ReadKey Sound TextBackground TextColor
  242.     syn keyword pascalFunction    TextMode WhereX WhereY Window
  243.     syn keyword pascalPredefined CheckBreak CheckEOF CheckSnow DirectVideo
  244.     syn keyword pascalPredefined LastMode TextAttr WindMin WindMax
  245.     syn keyword pascalFunction BigCursor CursorOff CursorOn
  246.     syn keyword pascalConstant Black Blue Green Cyan Red Magenta Brown
  247.     syn keyword pascalConstant LightGray DarkGray LightBlue LightGreen
  248.     syn keyword pascalConstant LightCyan LightRed LightMagenta Yellow White
  249.     syn keyword pascalConstant Blink ScreenWidth ScreenHeight bw40
  250.     syn keyword pascalConstant co40 bw80 co80 mono
  251.     syn keyword pascalPredefined TextChar
  252.  
  253.     " DOS unit
  254.     syn keyword pascalFunction    AddDisk DiskFree DiskSize DosExitCode DosVersion
  255.     syn keyword pascalFunction    EnvCount EnvStr Exec Expand FindClose FindFirst
  256.     syn keyword pascalFunction    FindNext FSearch FSplit GetCBreak GetDate
  257.     syn keyword pascalFunction    GetEnv GetFAttr GetFTime GetIntVec GetTime
  258.     syn keyword pascalFunction    GetVerify Intr Keep MSDos PackTime SetCBreak
  259.     syn keyword pascalFunction    SetDate SetFAttr SetFTime SetIntVec SetTime
  260.     syn keyword pascalFunction    SetVerify SwapVectors UnPackTime
  261.     syn keyword pascalConstant    FCarry FParity FAuxiliary FZero FSign FOverflow
  262.     syn keyword pascalConstant    Hidden Sysfile VolumeId Directory Archive
  263.     syn keyword pascalConstant    AnyFile fmClosed fmInput fmOutput fmInout
  264.     syn keyword pascalConstant    TextRecNameLength TextRecBufSize
  265.     syn keyword pascalType    ComStr PathStr DirStr NameStr ExtStr SearchRec
  266.     syn keyword pascalType    FileRec TextBuf TextRec Registers DateTime
  267.     syn keyword pascalPredefined DosError
  268.  
  269.     "Graph Unit
  270.     syn keyword pascalFunction    Arc Bar Bar3D Circle ClearDevice ClearViewPort
  271.     syn keyword pascalFunction    CloseGraph DetectGraph DrawPoly Ellipse
  272.     syn keyword pascalFunction    FillEllipse FillPoly FloodFill GetArcCoords
  273.     syn keyword pascalFunction    GetAspectRatio GetBkColor GetColor
  274.     syn keyword pascalFunction    GetDefaultPalette GetDriverName GetFillPattern
  275.     syn keyword pascalFunction    GetFillSettings GetGraphMode GetImage
  276.     syn keyword pascalFunction    GetLineSettings GetMaxColor GetMaxMode GetMaxX
  277.     syn keyword pascalFunction    GetMaxY GetModeName GetModeRange GetPalette
  278.     syn keyword pascalFunction    GetPaletteSize GetPixel GetTextSettings
  279.     syn keyword pascalFunction    GetViewSettings GetX GetY GraphDefaults
  280.     syn keyword pascalFunction    GraphErrorMsg GraphResult ImageSize InitGraph
  281.     syn keyword pascalFunction    InstallUserDriver InstallUserFont Line LineRel
  282.     syn keyword pascalFunction    LineTo MoveRel MoveTo OutText OutTextXY
  283.     syn keyword pascalFunction    PieSlice PutImage PutPixel Rectangle
  284.     syn keyword pascalFunction    RegisterBGIDriver RegisterBGIFont
  285.     syn keyword pascalFunction    RestoreCRTMode Sector SetActivePage
  286.     syn keyword pascalFunction    SetAllPallette SetAspectRatio SetBkColor
  287.     syn keyword pascalFunction    SetColor SetFillPattern SetFillStyle
  288.     syn keyword pascalFunction    SetGraphBufSize SetGraphMode SetLineStyle
  289.     syn keyword pascalFunction    SetPalette SetRGBPalette SetTextJustify
  290.     syn keyword pascalFunction    SetTextStyle SetUserCharSize SetViewPort
  291.     syn keyword pascalFunction    SetVisualPage SetWriteMode TextHeight TextWidth
  292.     syn keyword pascalType    ArcCoordsType FillPatternType FillSettingsType
  293.     syn keyword pascalType    LineSettingsType PaletteType PointType
  294.     syn keyword pascalType    TextSettingsType ViewPortType
  295.  
  296.     " string functions
  297.     syn keyword pascalFunction    StrAlloc StrBufSize StrCat StrComp StrCopy
  298.     syn keyword pascalFunction    StrDispose StrECopy StrEnd StrFmt StrIComp
  299.     syn keyword pascalFunction    StrLCat StrLComp StrLCopy StrLen StrLFmt
  300.     syn keyword pascalFunction    StrLIComp StrLower StrMove StrNew StrPas
  301.     syn keyword pascalFunction    StrPCopy StrPLCopy StrPos StrRScan StrScan
  302.     syn keyword pascalFunction    StrUpper
  303.   endif
  304.  
  305. endif
  306.  
  307. " Define the default highlighting.
  308. " For version 5.7 and earlier: only when not done already
  309. " For version 5.8 and later: only when an item doesn't have highlighting yet
  310. if version >= 508 || !exists("did_pascal_syn_inits")
  311.   if version < 508
  312.     let did_pascal_syn_inits = 1
  313.     command -nargs=+ HiLink hi link <args>
  314.   else
  315.     command -nargs=+ HiLink hi def link <args>
  316.   endif
  317.  
  318.   HiLink pascalAcces        pascalStatement
  319.   HiLink pascalBoolean        Boolean
  320.   HiLink pascalComment        Comment
  321.   HiLink pascalConditional    Conditional
  322.   HiLink pascalConstant        Constant
  323.   HiLink pascalDelimiter    Identifier
  324.   HiLink pascalDirective    pascalStatement
  325.   HiLink pascalException    Exception
  326.   HiLink pascalFloat        Float
  327.   HiLink pascalFunction        Function
  328.   HiLink pascalLabel        Label
  329.   HiLink pascalMatrixDelimiter    Identifier
  330.   HiLink pascalModifier        Type
  331.   HiLink pascalNumber        Number
  332.   HiLink pascalOperator        Operator
  333.   HiLink pascalPredefined    pascalStatement
  334.   HiLink pascalPreProc        PreProc
  335.   HiLink pascalRepeat        Repeat
  336.   HiLink pascalStatement    Statement
  337.   HiLink pascalString        String
  338.   HiLink pascalStringEscape    Special
  339.   HiLink pascalStringEscapeGPC    Special
  340.   HiLink pascalStringError    Error
  341.   HiLink pascalStruct        pascalStatement
  342.   HiLink pascalSymbolOperator    pascalOperator
  343.   HiLink pascalTodo        Todo
  344.   HiLink pascalType        Type
  345.   HiLink pascalUnclassified    pascalStatement
  346.   "  HiLink pascalAsm        Assembler
  347.   HiLink pascalError        Error
  348.   HiLink pascalAsmKey        pascalStatement
  349.   HiLink pascalShowTab        Error
  350.  
  351.   delcommand HiLink
  352. endif
  353.  
  354.  
  355. let b:current_syntax = "pascal"
  356.  
  357. " vim: ts=8 sw=2
  358.