def parse(io_or_str)
      reader = wrap_io_or_string(io_or_str)
      # Use multiple_expressions = true so that the top-level parsed script
      # is always an array of expressions
      parse_expr(reader, stop_char = nil, stack_depth = 0, multiple_expressions = true)
    end
def parse(io_or_str)
      reader = wrap_io_or_string(io_or_str)
      # Use multiple_expressions = true so that the top-level parsed script
      # is always an array of expressions
      parse_expr(reader, stop_char = nil, stack_depth = 0, multiple_expressions = true)
    end
Parses a piece of TCL and returns it converted into internal expression
 structures. A basic TCL expression is just an array of Strings. An expression
 in curly braces will have the symbol :c tacked onto the beginning of the array.
 An expression in square braces will have the symbol :b tacked onto the beginning.
 This method always returns a Array of expressions. If you only fed it one expression,
 this expression will be the only element of the array.
 The correct way to use the returned results is thusly:

   p = Tickly::Parser.new
   expressions = p.parse("2 + 2") #=> [["2", "+", "2"]]
   expression = expressions[0] #=> ["2", "2"]