X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Floader.h;h=5c8726a179683c841e6439e57fd3cfa4772394e2;hb=b34b46788d69853eabdbbd9e71ca82f2f5c09df8;hp=57481cff28d36fca44b19db0c91784e7ecc54573;hpb=215e719d0ef85f748898660d15d01e77ac551de9;p=libs%2Fdatafile.git diff --git a/source/loader.h b/source/loader.h index 57481cf..5c8726a 100644 --- a/source/loader.h +++ b/source/loader.h @@ -1,7 +1,7 @@ /* $Id$ This file is part of libmspdatafile -Copyright © 2006-2008 Mikko Rasa, Mikkosoft Productions +Copyright © 2006-2008, 2010 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ @@ -44,7 +44,17 @@ See also classes BasicLoader and BasicLoader2. class Loader { private: - typedef std::map ActionMap; + struct ActionKey + { + std::string keyword; + std::string signature; + + ActionKey(const std::string &, const std::string &); + + bool operator<(const ActionKey &) const; + }; + + typedef std::map ActionMap; ActionMap actions; const Statement *cur_st; @@ -128,6 +138,8 @@ protected: private: void add(const std::string &, LoaderAction *); + LoaderAction *find_action(const ActionKey &) const; + protected: /** Returns the source of the statement being processed. This can be used to implement relative paths in include-like statements. Note that the