@fink/larix
Version:
A parser for generating fink's AST.
23 lines • 798 B
JavaScript
import { add_operator, add_separator } from "@fink/prattler/expressions.js";
import { prefix, terminator } from "../expressions.js";
import { terminated_block, add_named_block } from "../block/init.js";
export 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];
}
});
export 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);
};