Files
atom/src/extensions/command-panel/command-interpreter.coffee
2012-07-03 11:22:08 -07:00

19 lines
562 B
CoffeeScript

fs = require 'fs'
PEG = require 'pegjs'
module.exports =
class CommandInterpreter
constructor: ->
@parser = PEG.buildParser(fs.read(require.resolve 'command-panel/commands.pegjs'))
eval: (editor, string) ->
compositeCommand = @parser.parse(string)
@lastRelativeAddress = compositeCommand if compositeCommand.isRelativeAddress()
compositeCommand.execute(editor)
repeatRelativeAddress: (editor) ->
@lastRelativeAddress?.execute(editor)
repeatRelativeAddressInReverse: (editor) ->
@lastRelativeAddress?.reverse().execute(editor)