Base Formula on Counter instead of dict. This allows some multiset operators to be defined more efficiently. The operators __and__ and __sub__ are added.
Add a ParseError exception in the formula module and use it to report errors in Formula.parse(). The parse exception may contain a span indicating the location of the parse error in the input string. This information is used in balancecheck to show better error messages.
Formula
onCounter
instead ofdict
. This allows some multiset operators to be defined more efficiently. The operators__and__
and__sub__
are added.ParseError
exception in theformula
module and use it to report errors inFormula.parse()
. The parse exception may contain a span indicating the location of the parse error in the input string. This information is used inbalancecheck
to show better error messages.