   execute: (args, terminal) =>
     throw "#{this} has not implemented the 'execute' method."
 
+class @VoidCommand extends Command
+
+  # do nothing
+  execute: (args, terminal) =>
+
+  toString: ->
+    "VOID command"
 
 class @HelpCommand extends Command
 

    console.log "[TERMINAL] Parse '#{commandLine}'"
    # multi-word analysis
    # trim whitespaces and separate command from arguments
    # IMPROVE: Python-like sequence getter?
    [command, commandArgs...] = commandLine.trim().split ' '
    if !(command of CommandStrings)
      throw SyntaxError "#{command} is not a known command."
    new SyntaxTree [CommandStrings[command], commandArgs]

  # Execute command with arguments provided in syntax tree
  #

  constructor: ->
    # fill command objects with actual instances (we use bound methods for convenience
    # for debug, but static methods would work too)
    @commandObjects =
      "VOID": new VoidCommand
      "HELP": new HelpCommand
      "LS": new LsCommand
      "CONNECT": new ConnectCommand

  # Parse a command and return a syntax tree made of tokens
  # Throw an exception if a parsing error occurs
