Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 19x 19x 19x 19x 1760x | // @flow /* eslint no-control-regex: 0 */ /* eslint no-useless-escape: 0 */ import P from 'parsimmon' import type { NodeType } from '../types' const keywords = ['null', 'true', 'false'] export const StringParserRegExp = /("(((?=\\)\\(["\\\/bfnrt]|u[0-9a-fA-F]{4}))|[^"\\\0-\x1F\x7F]+)*")/ const NumberParserRegExp = /(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/ const options = [ ...keywords, StringParserRegExp.source, NumberParserRegExp.source ] export default P.regex(new RegExp(`(${options.join('|')})`)).map( (value: string): NodeType => ({ name: 'primitive', value }) ) |