From 19ec222ce04979ccd4125ecb6c95a86302ba937c Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 5 Dec 2010 01:45:37 +0000 Subject: Simplify parser. git-svn-id: http://svn.drobilla.net/resp/resp@300 ad02d1e2-f140-0410-9f75-f8b11f17cedd --- src/resp.hpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/resp.hpp') 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 { 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 aHandlers; ///< Atom parse functions - map 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 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& handlers = list ? lHandlers : aHandlers; + const Handler* handler(const string& s) const { map::const_iterator i = handlers.find(s); return (i != handlers.end()) ? &i->second : NULL; } -- cgit v1.2.1