babel-bridge
Version:
a 'runtime' parsing expression grammar parser
22 lines (20 loc) • 723 B
text/coffeescript
{defineModule, formattedInspect, isClass, log} = require 'art-standard-lib'
require 'color'
defineModule module, class Repl
: (parser) ->
parser = new parser if isClass parser
require('repl').start
prompt: "#{parser.getClassName()}> ".grey
eval: (command, context, filename, callback) ->
try
parsed = parser.parse command.trim()
try
if result = parsed.evaluate?()
callback null, result
else
log formattedInspect parsed, color: true
callback()
catch e
callback e
catch e
callback parser.getParseFailureInfo(color: true).replace "<HERE>", "<HERE>".red