UNPKG

1.37 kBJavaScriptView Raw
1// Copyright 2014, 2015 Simon Lydell
2// X11 (“MIT”) Licensed. (See LICENSE.)
3
4// This regex comes from regex.coffee, and is inserted here by generate-index.js
5// (run `npm run build`).
6module.exports = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\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]{1,6}\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-*\/%&|^]|<{1,2}|>{1,3}|!=?|={1,2})=?|[?:~]|[;,.[\](){}])|(\s+)|(^$|[\s\S])/g
7
8module.exports.matchToToken = function(match) {
9 var token = {type: "invalid", value: match[0]}
10 if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4])
11 else if (match[ 5]) token.type = "comment"
12 else if (match[ 6]) token.type = "comment", token.closed = !!match[7]
13 else if (match[ 8]) token.type = "regex"
14 else if (match[ 9]) token.type = "number"
15 else if (match[10]) token.type = "name"
16 else if (match[11]) token.type = "punctuator"
17 else if (match[12]) token.type = "whitespace"
18 return token
19}