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 / runtime / dos / syntax / simula.vim < prev    next >
Encoding:
Text File  |  2010-08-15  |  3.7 KB  |  100 lines

  1. " Vim syntax file
  2. " Language:    Simula
  3. " Maintainer:    Haakon Riiser <hakonrk@fys.uio.no>
  4. " URL:        http://folk.uio.no/hakonrk/vim/syntax/simula.vim
  5. " Last Change:    2001 May 15
  6.  
  7. " For version 5.x: Clear all syntax items
  8. " For version 6.x: Quit when a syntax file was already loaded
  9. if version < 600
  10.     syn clear
  11. elseif exists("b:current_syntax")
  12.     finish
  13. endif
  14.  
  15. " No case sensitivity in Simula
  16. syn case    ignore
  17.  
  18. syn match    simulaComment        "^%.*$" contains=simulaTodo
  19. syn region    simulaComment        start="!\|\<comment\>" end=";" contains=simulaTodo
  20.  
  21. " Text between the keyword 'end' and either a semicolon or one of the
  22. " keywords 'end', 'else', 'when' or 'otherwise' is also a comment
  23. syn region    simulaComment        start="\<end\>"lc=3 matchgroup=Statement end=";\|\<\(end\|else\|when\|otherwise\)\>"
  24.  
  25. syn match    simulaCharError        "'.\{-2,}'"
  26. syn match    simulaCharacter        "'.'"
  27. syn match    simulaCharacter        "'!\d\{-}!'" contains=simulaSpecialChar
  28. syn match    simulaString        '".\{-}"' contains=simulaSpecialChar,simulaTodo
  29.  
  30. syn keyword    simulaBoolean        true false
  31. syn keyword    simulaCompound        begin end
  32. syn keyword    simulaConditional    else if otherwise then until when
  33. syn keyword    simulaConstant        none notext
  34. syn keyword    simulaFunction        procedure
  35. syn keyword    simulaOperator        eq eqv ge gt imp in is le lt ne new not qua
  36. syn keyword    simulaRepeat        while for
  37. syn keyword    simulaReserved        activate after at before delay go goto label prior reactivate switch to
  38. syn keyword    simulaStatement        do inner inspect step this
  39. syn keyword    simulaStorageClass    external hidden name protected value
  40. syn keyword    simulaStructure        class
  41. syn keyword    simulaType        array boolean character integer long real short text virtual
  42. syn match    simulaAssigned        "\<\h\w*\s*\((.*)\)\=\s*:\(=\|-\)"me=e-2
  43. syn match    simulaOperator        "[&:=<>+\-*/]"
  44. syn match    simulaOperator        "\<and\(\s\+then\)\=\>"
  45. syn match    simulaOperator        "\<or\(\s\+else\)\=\>"
  46. syn match    simulaReferenceType    "\<ref\s*(.\{-})"
  47. syn match    simulaSemicolon        ";"
  48. syn match    simulaSpecial        "[(),.]"
  49. syn match    simulaSpecialCharErr    "!\d\{-4,}!" contained
  50. syn match    simulaSpecialCharErr    "!!" contained
  51. syn match    simulaSpecialChar    "!\d\{-}!" contains=simulaSpecialCharErr contained
  52. syn match    simulaTodo        "xxx\+" contained
  53.  
  54. " Integer number (or float without `.')
  55. syn match    simulaNumber        "-\=\<\d\+\>"
  56. " Real with optional exponent
  57. syn match    simulaReal        "-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>"
  58. " Real starting with a `.', optional exponent
  59. syn match    simulaReal        "-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>"
  60.  
  61. if version >= 508 || !exists("did_simula_syntax_inits")
  62.     if version < 508
  63.     let did_simula_syntax_inits = 1
  64.     command -nargs=+ HiLink hi link <args>
  65.     else
  66.     command -nargs=+ HiLink hi def link <args>
  67.     endif
  68.  
  69.     HiLink simulaAssigned        Identifier
  70.     HiLink simulaBoolean        Boolean
  71.     HiLink simulaCharacter        Character
  72.     HiLink simulaCharError        Error
  73.     HiLink simulaComment        Comment
  74.     HiLink simulaCompound        Statement
  75.     HiLink simulaConditional        Conditional
  76.     HiLink simulaConstant        Constant
  77.     HiLink simulaFunction        Function
  78.     HiLink simulaNumber            Number
  79.     HiLink simulaOperator        Operator
  80.     HiLink simulaReal            Float
  81.     HiLink simulaReferenceType        Type
  82.     HiLink simulaRepeat            Repeat
  83.     HiLink simulaReserved        Error
  84.     HiLink simulaSemicolon        Statement
  85.     HiLink simulaSpecial        Special
  86.     HiLink simulaSpecialChar        SpecialChar
  87.     HiLink simulaSpecialCharErr        Error
  88.     HiLink simulaStatement        Statement
  89.     HiLink simulaStorageClass        StorageClass
  90.     HiLink simulaString            String
  91.     HiLink simulaStructure        Structure
  92.     HiLink simulaTodo            Todo
  93.     HiLink simulaType            Type
  94.  
  95.     delcommand HiLink
  96. endif
  97.  
  98. let b:current_syntax = "simula"
  99. " vim: sts=4 sw=4 ts=8
  100.