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 | 19x 19x 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')
|