UNPKG

neft

Version:

Universal Platform

23 lines (19 loc) 624 B
'use strict' fs = require 'fs' pathUtils = require 'path' PEG = require 'pegjs' grammar = require './grammar.pegjs' parser = PEG.buildParser grammar, optimize: 'speed' module.exports = (file) -> try parser.parse(file) catch err lines = file.split '\n' line = err.line - 1 msg = '' msg += lines[line - 1] + '\n' if err.line > 1 msg += "\u001b[31m#{lines[line]}\u001b[39m \n" if line isnt lines.length msg += lines[line + 1] + '\n' if line < lines.length msg += "\nLine #{err.line}, column #{err.column}: #{err.message}\n" throw Error msg