     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)
+    console.log(commandLine)
+    [command, commandArgs...] = commandLine.trim().split(/\s+/)
+    if command == ""
+      return new SyntaxTree [CommandToken.VOID, []]
+    if !(command of CommandTokenFromString)
       throw SyntaxError "#{command} is not a known command."
-    new SyntaxTree [CommandStrings[command], commandArgs]
+    new SyntaxTree [CommandTokenFromString[command], commandArgs]
 
   # Execute command with arguments provided in syntax tree
   #


# IMPROVE: use strings instead of "enum" tokens and just use a dictionary to match
# each string to a command object in CommandInterpreter constructor
Commands =
  HELP: "help",
  LS: "ls",
  CONNECT: "connect"

CommandStrings =
  "help": Commands.HELP,
  "ls": Commands.LS,
  "dir": Commands.LS,
  "connect": Commands.CONNECT,

  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

