def start(options={},&block)
    @stdout = options[:stdout] || $stdout
    @stderr = options[:stdout] || @stdout
    @stdin = options[:stdin] || $stdin
    while line = @stdin == $stdin ? Readline.readline("> ", true) : @stdin.gets      
      line.strip!
      next if line.length==0
      parse_tree_node = parser.parse line
      if parse_tree_node
        evaluate parse_tree_node, &block
      else
        errputs parser.parser_failure_info :verbose => true
      end
    end
  end
def start(options={},&block)
    @stdout = options[:stdout] || $stdout
    @stderr = options[:stdout] || @stdout
    @stdin = options[:stdin] || $stdin
    while line = @stdin == $stdin ? Readline.readline("> ", true) : @stdin.gets      
      line.strip!
      next if line.length==0
      parse_tree_node = parser.parse line
      if parse_tree_node
        evaluate parse_tree_node, &block
      else
        errputs parser.parser_failure_info :verbose => true
      end
    end
  end
Each line of input is parsed.
 If parser fails, output explaination of why.
 If parser succeeds, evaluate parse_tree_node, &block