-- a highlight lang definition for coffeescript's block regexes, by Jess Austin
Description = "Coffeescript Block Regex"

Keywords = {
   { -- backslash literals
     Id = 1,
     Regex = [=[\\[][0-9'"\\.?()]]=]
   },
   { -- interpolation
     Id = 2,
     Regex = [[#\{.*}]]
   },
   
}

Comments = {
  {
    Block = false,
    Delimiter = { [[#]] }
  }
}

Strings = { -- actually, character sets
  DelimiterPairs = { { Open = "\\[\\^?", Close = "\\]" } },
  Escape = [=[\\u\{[[:xdigit:]]+\}|\\u[[:xdigit:]]{4}|\\x[[:xdigit:]]{2}|\\c[A-Z]|\\[[bBdDsSwWtrnvf0]]=]
}

Operators = [[\.|\+|\*|\^|\$|\||\?:|\?=|\?!|\?|\(|\)]]
Digits = [[\{\d+,?\d*\}]] -- integer quantifiers

-- maybe this would be a better way to do interpolation? I can't get it to work
--NestedSections = {
--  {
--    Lang = "coffee",
--    Delimiter = { [[#\{]], [[}]] }
--  }
--}
