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 25 | 16x 16x 2105x | // @flow import P from 'parsimmon' import type { NodeType, ParserType } from '../../types' export default P.lazy((): ParserType => { const SectionParser = require('../section').default return P.alt( P.seq( SectionParser, P.regexp(/\s*:\s*/) .then(SectionParser) .atMost(1) ).map( ([left, right]: [NodeType, Array<NodeType>]): NodeType => right.length === 1 ? { name: 'tuple', value: [left, right[0]] } : left ) ) }) |