diff options
author | David Robillard <d@drobilla.net> | 2010-12-05 01:45:37 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2010-12-05 01:45:37 +0000 |
commit | 19ec222ce04979ccd4125ecb6c95a86302ba937c (patch) | |
tree | e89be99e27f774e405e8ed7dd1058b9a837cf53f /src/resp.hpp | |
parent | 931652d4f065c06d9061166c961ff9af6750267e (diff) | |
download | resp-19ec222ce04979ccd4125ecb6c95a86302ba937c.tar.gz resp-19ec222ce04979ccd4125ecb6c95a86302ba937c.tar.bz2 resp-19ec222ce04979ccd4125ecb6c95a86302ba937c.zip |
Simplify parser.
git-svn-id: http://svn.drobilla.net/resp/resp@300 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'src/resp.hpp')
-rw-r--r-- | src/resp.hpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/resp.hpp b/src/resp.hpp index d524aae..899f4fb 100644 --- a/src/resp.hpp +++ b/src/resp.hpp @@ -573,13 +573,11 @@ struct PEnv : private map<const string, ASymbol*> { PEnv() : symID(0) {} typedef const AST* (*PF)(PEnv&, const AST*, void*); ///< Parse Function struct Handler { Handler(PF f, void* a=0) : func(f), arg(a) {} PF func; void* arg; }; - map<const string, Handler> aHandlers; ///< Atom parse functions - map<const string, Handler> lHandlers; ///< List parse functions - void reg(bool list, const string& s, const Handler& h) { - (list ? lHandlers : aHandlers).insert(make_pair(sym(s)->str(), h)); + map<const string, Handler> handlers; ///< List parse functions + void reg(const string& s, const Handler& h) { + handlers.insert(make_pair(sym(s)->str(), h)); } - const Handler* handler(bool list, const string& s) const { - const map<const string, Handler>& handlers = list ? lHandlers : aHandlers; + const Handler* handler(const string& s) const { map<string, Handler>::const_iterator i = handlers.find(s); return (i != handlers.end()) ? &i->second : NULL; } |