mirror of
https://github.com/holub/mame
synced 2025-06-30 16:00:01 +03:00
netlist: catch parenthesis count mismatch in formulas.
This commit is contained in:
parent
a0e531e0e7
commit
b49a86981c
@ -150,6 +150,8 @@ namespace plib {
|
|||||||
throw 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));
|
||||||
if (stk >= narrow_cast<int>(MAX_STACK))
|
if (stk >= narrow_cast<int>(MAX_STACK))
|
||||||
throw pexception(plib::pfmt("pfunction: stack overflow on token <{1}> in <{2}>")(cmd)(expr));
|
throw pexception(plib::pfmt("pfunction: stack overflow on token <{1}> in <{2}>")(cmd)(expr));
|
||||||
|
if (rc.cmd() == LP || rc.cmd() == RP)
|
||||||
|
throw pexception(plib::pfmt("pfunction: parenthesis inequality on token <{1}> in <{2}>")(cmd)(expr));
|
||||||
m_precompiled.push_back(rc);
|
m_precompiled.push_back(rc);
|
||||||
}
|
}
|
||||||
if (stk != 1)
|
if (stk != 1)
|
||||||
|
@ -50,6 +50,11 @@ PTEST(pfunction, unary_minus)
|
|||||||
PFUNCEXPECT("3*-trunc(3.2)", -9.0);
|
PFUNCEXPECT("3*-trunc(3.2)", -9.0);
|
||||||
PFUNCEXPECT("3*-(3*2)", -18.0);
|
PFUNCEXPECT("3*-(3*2)", -18.0);
|
||||||
PFUNCEXPECT("3*-(2*1)^2", -12.0);
|
PFUNCEXPECT("3*-(2*1)^2", -12.0);
|
||||||
PEXPECT_THROW(plib::pfunction<double>("(3, 4)")(), plib::pexception);
|
PEXPECT_NO_THROW(plib::pfunction<double>("(-3)")()); // fail
|
||||||
PEXPECT_NO_THROW(plib::pfunction<double>("(3)")()); // fail
|
}
|
||||||
|
PTEST(pfunction, expect_throw)
|
||||||
|
{
|
||||||
|
PEXPECT_THROW(plib::pfunction<double>("(3, 4)")(), plib::pexception);
|
||||||
|
PEXPECT_THROW(plib::pfunction<double>("((3)")(), plib::pexception);
|
||||||
|
PEXPECT_THROW(plib::pfunction<double>("(3))")(), plib::pexception);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user