+ /**
+ * Parses a lispfile and returns the s-expression structure.
+ * Note that all memory is held by the parser so don't destroy the parser
+ * before you are finished with the lisp tree
+ */
+ const Lisp* parse(const std::string& filename);
+ /**
+ * Same as parse but reads from a generic std::istream. The sourcename is
+ * used for errormessages to indicate the source of the data.
+ */
+ const Lisp* parse(std::istream& stream, const std::string& sourcename);