UNPKG

@fink/larix

Version:

A parser for generating fink's AST.

40 lines (34 loc) 873 B
const { add_operator, add_separator } = require("@fink/prattler/expressions.js"); const { prefix, terminator } = require("../expressions.js"); const { terminated_block, add_named_block } = require("../block/init.js"); const list_op = token_type => ({ ...prefix(token_type), nud: () => ctx => { const [{ exprs, loc }, next_ctx] = terminated_block(ctx, `]`); return [{ type: `list`, exprs, loc }, next_ctx]; } }); exports.list_op = list_op; const add_list = ctx => { let ˆpipe_result_1 = ctx; ˆpipe_result_1 = add_operator(list_op(`[`))(ˆpipe_result_1); ˆpipe_result_1 = add_separator(terminator(`,`))(ˆpipe_result_1); ˆpipe_result_1 = add_separator(terminator(`]`))(ˆpipe_result_1); return ˆpipe_result_1 = add_named_block(`list`, `list`)(ˆpipe_result_1); }; exports.add_list = add_list;