home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / OpenLinux 2.3 CD.iso / live / usr / share / vim / syntax / clean.vim < prev    next >
Encoding:
Text File  |  1999-08-10  |  2.5 KB  |  77 lines

  1. " Vim syntax file
  2. " Language: Clean
  3. " Author: Pieter van Engelen <pietere@sci.kun.nl>
  4. " Co-Author: Arthur van Leeuwen <arthurvl@sci.kun.nl>
  5. " Last Change: Fri Feb  6 15:02:40 CET 1998
  6. syn clear
  7.  
  8. " Some Clean-keywords
  9. syn keyword cleanConditional if case
  10. syn keyword cleanLabel let! with where in of
  11. syn keyword cleanInclude from import
  12. syn keyword cleanSpecial Start
  13. syn keyword cleanKeyword infixl infixr infix
  14. syn keyword cleanBasicType Int Real Char Bool String
  15. syn keyword cleanSpecialType World ProcId Void Files File
  16. syn keyword cleanModuleSystem module implementation definition system
  17. syn keyword cleanTypeClass class instance export
  18.  
  19. " To do some Denotation Highlighting
  20. syn keyword cleanBoolDenot True False
  21. syn region  cleanStringDenot start=+"+ end=+"+
  22. syn match cleanCharDenot "'.'"
  23. syn match cleanCharsDenot "'.*'" contained
  24. syn match cleanIntegerDenot "[+-~]\=\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>"
  25. syn match cleanRealDenot "[+-~]\=\<\d\+\.\d+\(E[+-~]\=\d+\)\="
  26.  
  27. " To highlight the use of lists, tuples and arrays
  28. syn region cleanList start="\[" end="\]" contains=ALL
  29. syn region cleanRecord start="{" end="}" contains=ALL
  30. syn region cleanArray start="{:" end=":}" contains=ALL
  31. syn match cleanTuple "([^=]*,[^=]*)" contains=ALL
  32.  
  33. " To do some Comment Highlighting
  34. syn region cleanComment start="/\*"  end="\*/"
  35. syn match cleanComment "//.*"
  36.  
  37. " Now for some useful typedefinitionrecognition
  38. syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)[ \t]*\(infix[lr]\=\)\=[ \t]*\d\=[ \t]*::.*->.*" oneline contains=cleanSpecial
  39.  
  40. if !exists("did_clean_syntax_init")
  41.    let did_clean_syntax_init = 1
  42.    " Comments
  43.    hi link cleanComment      Comment
  44.    " Constants and denotations
  45.    hi link cleanCharsDenot   String
  46.    hi link cleanStringDenot  String
  47.    hi link cleanCharDenot    Character
  48.    hi link cleanIntegerDenot Number
  49.    hi link cleanBoolDenot    Boolean
  50.    hi link cleanRealDenot    Float
  51.    " Identifiers
  52.    " Statements
  53.    hi link cleanTypeClass    Keyword
  54.    hi link cleanConditional  Conditional
  55.    hi link cleanLabel        Label
  56.    hi link cleanKeyword      Keyword
  57.    " Generic Preprocessing
  58.    hi link cleanInclude      Include
  59.    hi link cleanModuleSystem PreProc
  60.    " Type
  61.    hi link cleanBasicType    Type
  62.    hi link cleanSpecialType  Type
  63.    hi link cleanFuncTypeDef  Typedef
  64.    " Special
  65.    hi link cleanSpecial      Special
  66.    hi link cleanList         Special
  67.    hi link cleanArray        Special
  68.    hi link cleanRecord       Special
  69.    hi link cleanTuple        Special
  70.    " Error
  71.    " Todo
  72. endif
  73.  
  74. let b:current_syntax = "clean"
  75.  
  76. " vim: ts=4
  77.