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 / chaiscript.vim < prev    next >
Encoding:
Text File  |  2010-08-15  |  2.9 KB  |  95 lines

  1. " Vim syntax file
  2. " Language:    ChaiScript
  3. " Maintainer:    Jason Turner <lefticus 'at' gmail com>
  4.  
  5. " Quit when a (custom) syntax file was already loaded
  6. if exists("b:current_syntax")
  7.   finish
  8. end
  9.  
  10. syn case match
  11.  
  12. " syncing method
  13. syn sync fromstart
  14.  
  15. " Strings
  16. syn region chaiscriptString        start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=chaiscriptSpecial,chaiscriptEval,@Spell
  17.  
  18. " Escape characters
  19. syn match  chaiscriptSpecial       contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}" 
  20.  
  21. " String evals
  22. syn region chaiscriptEval          contained start="${" end="}" 
  23.  
  24. " integer number
  25. syn match  chaiscriptNumber        "\<\d\+\>"
  26.  
  27. " floating point number, with dot, optional exponent
  28. syn match  chaiscriptFloat         "\<\d\+\.\d*\%(e[-+]\=\d\+\)\=\>"
  29.  
  30. " floating point number, starting with a dot, optional exponent
  31. syn match  chaiscriptFloat         "\.\d\+\%(e[-+]\=\d\+\)\=\>"
  32.  
  33. " floating point number, without dot, with exponent
  34. syn match  chaiscriptFloat         "\<\d\+e[-+]\=\d\+\>"
  35.  
  36. " Hex strings
  37. syn match  chaiscriptNumber        "\<0x\x\+\>"
  38.  
  39. " Binary strings
  40. syn match  chaiscriptNumber        "\<0b[01]\+\>"
  41.  
  42. " Various language features
  43. syn keyword chaiscriptCond         if else
  44. syn keyword chaiscriptRepeat       while for do
  45. syn keyword chaiscriptStatement    break continue return
  46. syn keyword chaiscriptExceptions   try catch throw
  47.  
  48. "Keyword
  49. syn keyword chaiscriptKeyword      def true false attr
  50.  
  51. "Built in types
  52. syn keyword chaiscriptType         fun var
  53.  
  54. "Built in funcs, keep it simple
  55. syn keyword chaiscriptFunc         eval throw
  56.  
  57. "Let's treat all backtick operator function lookups as built in too
  58. syn region  chaiscriptFunc         matchgroup=chaiscriptFunc start="`" end="`"
  59.  
  60. " Account for the "[1..10]" syntax, treating it as an operator
  61. " Intentionally leaving out all of the normal, well known operators
  62. syn match   chaiscriptOperator     "\.\."
  63.  
  64. " Guard seperator as an operator
  65. syn match   chaiscriptOperator     ":"
  66.  
  67. " Comments
  68. syn match   chaiscriptComment      "//.*$" contains=@Spell
  69. syn region  chaiscriptComment      matchgroup=chaiscriptComment start="/\*" end="\*/" contains=@Spell
  70.  
  71.  
  72.  
  73. hi def link chaiscriptExceptions    Exception
  74. hi def link chaiscriptKeyword        Keyword
  75. hi def link chaiscriptStatement        Statement
  76. hi def link chaiscriptRepeat        Repeat
  77. hi def link chaiscriptString        String
  78. hi def link chaiscriptNumber        Number
  79. hi def link chaiscriptFloat        Float
  80. hi def link chaiscriptOperator        Operator
  81. hi def link chaiscriptConstant        Constant
  82. hi def link chaiscriptCond        Conditional
  83. hi def link chaiscriptFunction        Function
  84. hi def link chaiscriptComment        Comment
  85. hi def link chaiscriptTodo        Todo
  86. hi def link chaiscriptError        Error
  87. hi def link chaiscriptSpecial        SpecialChar
  88. hi def link chaiscriptFunc        Identifier
  89. hi def link chaiscriptType        Type
  90. hi def link chaiscriptEval            Special
  91.  
  92. let b:current_syntax = "chaiscript"
  93.  
  94. " vim: nowrap sw=2 sts=2 ts=8 noet
  95.