X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Floader.h;h=fe928048508d208aafe339def238a4cdc722dc2d;hp=bb1292cc7b3c2740adc14a6c596bde54c4a59678;hb=1a3b30ea35fbc19e56bbd35e4ee1811d8d5e02a4;hpb=2d289d20a9a4aeac7774976e4213a7c72f1dc75b;ds=sidebyside diff --git a/source/loader.h b/source/loader.h index bb1292c..fe92804 100644 --- a/source/loader.h +++ b/source/loader.h @@ -38,8 +38,11 @@ private: typedef std::map ActionMap; ActionMap actions; + Parser *cur_parser; + unsigned cur_level; const Statement *cur_st; bool sub_loaded; + bool direct; std::list aux_loaders; protected: bool check_sub_loads; @@ -55,6 +58,9 @@ private: /** Loads data from a statement. */ void load(const Statement &st); + /** Loads statemsnts from a parser, feeding them directly to actions. */ + void load_direct(Parser &, unsigned); + /** Processes a single statement */ void load_statement(const Statement &st); @@ -135,6 +141,10 @@ protected: source may not necessarily be a file. */ const std::string &get_source() const; + /** Returns the keyword of the statement being processed. Can be used to + implement dynamic keywords. */ + const std::string &get_keyword() const; + virtual void finish() { } };