UNPKG

@fink/prattler

Version:

A generic Pratt/top down operator precedence parser.

31 lines (30 loc) 688 B
import { highlight_code_loc } from "@fink/snippet/highlight.js"; import { stack_trace } from "@fink/std-lib/stack-trace.js"; export const get_error = (ctx, msg, token, stack_func) => { const { code, filename } = ctx; const { start: { line, column } } = token.loc; // TODO: use error from std-lib? const error = { error: `${filename}:${line}:${column} ${highlight_code_loc(code, token.loc)} ${msg} `, token, stack: stack_trace(stack_func) }; return error; }; export const add_error = (ctx, msg, token) => { const error = get_error(ctx, msg, token, add_error); return [error, { ...ctx, errors: [...ctx.errors, error] }]; };