X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Floader.cpp;h=997e7c9eec27f7f480c711291f6a47f997c7039e;hb=1a3b30ea35fbc19e56bbd35e4ee1811d8d5e02a4;hp=81370687ffd7e32f35a413359ac47d90d01c6c5a;hpb=f822f8962b1d9043b7c72492227dabbb9fd122da;p=libs%2Fdatafile.git diff --git a/source/loader.cpp b/source/loader.cpp index 8137068..997e7c9 100644 --- a/source/loader.cpp +++ b/source/loader.cpp @@ -1,6 +1,6 @@ #include #include -#include "dataerror.h" +#include "except.h" #include "loader.h" #include "type.h" @@ -47,28 +47,6 @@ bool signature_match(const string &st_sig, const string &act_sig) namespace Msp { namespace DataFile { -class unknown_keyword: public runtime_error -{ -public: - unknown_keyword(const std::string &k): - runtime_error(k) - { } - - virtual ~unknown_keyword() throw() { } -}; - - -class invalid_signature: public runtime_error -{ -public: - invalid_signature(const std::string &k, const std::string &s): - runtime_error(format("%s %s", k, s)) - { } - - virtual ~invalid_signature() throw() { } -}; - - Loader::Loader(): cur_st(0), direct(false), @@ -227,5 +205,12 @@ const string &Loader::get_source() const return cur_st->source; } +const string &Loader::get_keyword() const +{ + if(!cur_st) + throw logic_error("no current statement"); + return cur_st->keyword; +} + } // namespace DataFile } // namespace Msp