diff options
author | 2020-01-20 21:15:22 +0100 | |
---|---|---|
committer | 2020-01-20 21:15:22 +0100 | |
commit | 9e272e4b551d14e7032913f0aa972e2dd45fb4bd (patch) | |
tree | b6c7c56b187f18f33eaba2f585a04ef433211ecf /src/lib/netlist/plib/pfunction.cpp | |
parent | 81703afe74615ec5cc399dd91946e4d3b05d83a7 (diff) |
netlist: code maintenance. (nw)
- remove pthrow trampline as proposed by Vas.
- identify throwing code by adding noexcept(false)
- move "connected term" information to setup code.
- srcclean
Diffstat (limited to 'src/lib/netlist/plib/pfunction.cpp')
-rw-r--r-- | src/lib/netlist/plib/pfunction.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/lib/netlist/plib/pfunction.cpp b/src/lib/netlist/plib/pfunction.cpp index dee38f86416..87313c30008 100644 --- a/src/lib/netlist/plib/pfunction.cpp +++ b/src/lib/netlist/plib/pfunction.cpp @@ -15,7 +15,7 @@ namespace plib { template <typename NT> - void pfunction<NT>::compile(const pstring &expr, const std::vector<pstring> &inputs) + void pfunction<NT>::compile(const pstring &expr, const std::vector<pstring> &inputs) noexcept(false) { if (plib::startsWith(expr, "rpn:")) compile_postfix(expr.substr(4), inputs); @@ -24,7 +24,7 @@ namespace plib { } template <typename NT> - void pfunction<NT>::compile_postfix(const pstring &expr, const std::vector<pstring> &inputs) + void pfunction<NT>::compile_postfix(const pstring &expr, const std::vector<pstring> &inputs) noexcept(false) { std::vector<pstring> cmds(plib::psplit(expr, " ")); compile_postfix(inputs, cmds, expr); @@ -32,7 +32,7 @@ namespace plib { template <typename NT> void pfunction<NT>::compile_postfix(const std::vector<pstring> &inputs, - const std::vector<pstring> &cmds, const pstring &expr) + const std::vector<pstring> &cmds, const pstring &expr) noexcept(false) { m_precompiled.clear(); int stk = 0; @@ -76,16 +76,16 @@ namespace plib { bool err(false); rc.m_param = plib::pstonum_ne<decltype(rc.m_param)>(cmd, err); if (err) - pthrow<pexception>(plib::pfmt("pfunction: unknown/misformatted token <{1}> in <{2}>")(cmd)(expr)); + throw pexception(plib::pfmt("pfunction: unknown/misformatted token <{1}> in <{2}>")(cmd)(expr)); stk += 1; } } if (stk < 1) - pthrow<pexception>(plib::pfmt("pfunction: stack underflow on token <{1}> in <{2}>")(cmd)(expr)); + throw pexception(plib::pfmt("pfunction: stack underflow on token <{1}> in <{2}>")(cmd)(expr)); m_precompiled.push_back(rc); } if (stk != 1) - pthrow<pexception>(plib::pfmt("pfunction: stack count different to one on <{2}>")(expr)); + throw pexception(plib::pfmt("pfunction: stack count different to one on <{2}>")(expr)); } static int get_prio(const pstring &v) @@ -104,10 +104,10 @@ namespace plib { return -1; } - static pstring pop_check(std::stack<pstring> &stk, const pstring &expr) + static pstring pop_check(std::stack<pstring> &stk, const pstring &expr) noexcept(false) { if (stk.size() == 0) - pthrow<pexception>(plib::pfmt("pfunction: stack underflow during infix parsing of: <{1}>")(expr)); + throw pexception(plib::pfmt("pfunction: stack underflow during infix parsing of: <{1}>")(expr)); pstring res = stk.top(); stk.pop(); return res; |