+ /** Retrieve expression from archive by index.
+ * @param sym_lst list of pre-defined symbols
+ * @param index index of expression
+ * @see count_expressions */
+ ex unarchive_ex(const lst &sym_lst, unsigned index = 0) const;
+
+ /** Retrieve expression and its name from archive by index.
+ * @param sym_lst list of pre-defined symbols
+ * @param name receives the name of the expression
+ * @param index index of expression
+ * @see count_expressions */
+ ex unarchive_ex(const lst &sym_lst, std::string &name, unsigned index = 0) const;
+
+ /** Return number of archived expressions. */
+ unsigned num_expressions() const;
+
+ /** Return reference to top node of an expression specified by index. */
+ const archive_node &get_top_node(unsigned index = 0) const;
+
+ /** Clear all archived expressions. */
+ void clear();
+
+ archive_node_id add_node(const archive_node &n);
+ archive_node &get_node(archive_node_id id);