@include _number.regexp
@include webpage.include
documentation:
  from /** to */
comment:
  from /* to */
  from //
string:
  from " to "
  from ' to '
  @include webpage.include
  escape:
    match /\\[fnrtv0'"\\]/
    match /\\c[A-Za-z]/
    match /\\x[0-9a-fA-F]{2}/
    match /\\u[0-9a-fA-F]{4}/
    match /\\u{[0-9a-fA-F]+}/
string.subst{String}:
  from ` to `
  @include webpage.include
  escape:
    match /\\[fnrtv0'"\\]/
    match /\\c[A-Za-z]/
    match /\\x[0-9a-fA-F]{2}/
    match /\\u[0-9a-fA-F]{4}/
    match /\\u{[0-9a-fA-F]+}/
  subst{Escape}:
    from ${ to } with javascript
number:
  match /$(NUMBER)/
  match /$(NUMBER_HEXA)/
keyword:
  keyword @javascript.keyword
function{Keyword}:
  limit
  keyword function
constant:
  keyword false null this true undefined NaN Infinity
operator.regexp{Operator}:
  symbol { } . >= + << ! = >>= ; == - >> ~ += >>>= ( , != * >>> && -= &= < === % & || *= |= [ > !== ++ | ? %= ^= -- ^ : <<= <= / /=
  regexp{RegExp=Datatype}:
    match /\s*\/(\\\/|.)+?\/([a-z]*)?/
    regexp.escape{Escape}:
      match /\\./
operator:
  symbol ) ]
symbol:
  match /[A-Za-z_$][A-Za-z_$0-9]*/
