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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 18x 18x 37x | // @flow import P from 'parsimmon' import SectionParser from './section' import IdentifierParser from './identifier' import TupleParser from './collections/tuple' import crap from './crap' import type { NodeType, AssignmentNodeValueType, AssignmentsType } from '../types' const Assignment = P.seq( P.string('$').then(IdentifierParser), P.string('=') .trim(crap) .then(SectionParser) ) const Assignments = P.sepBy(Assignment, crap) export default P.seq( TupleParser, P.string('where') .trim(crap) .then(Assignments) ) .map( ([program, assignments]: [ NodeType, AssignmentsType ]): AssignmentNodeValueType => ({ program, assignments }) ) .node('assignment') .desc('assignment') |