index.js 1.4 KB

123456789101112131415161718192021222324
  1. // Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell
  2. // License: MIT. (See LICENSE.)
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. })
  6. // This regex comes from regex.coffee, and is inserted here by generate-index.js
  7. // (run `npm run build`).
  8. exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g
  9. exports.matchToToken = function(match) {
  10. var token = {type: "invalid", value: match[0], closed: undefined}
  11. if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4])
  12. else if (match[ 5]) token.type = "comment"
  13. else if (match[ 6]) token.type = "comment", token.closed = !!match[7]
  14. else if (match[ 8]) token.type = "regex"
  15. else if (match[ 9]) token.type = "number"
  16. else if (match[10]) token.type = "name"
  17. else if (match[11]) token.type = "punctuator"
  18. else if (match[12]) token.type = "whitespace"
  19. return token
  20. }