math_parser
Process math expressions, like formulas or parts of equations, convert them to machine-readable form, and calculate them.
1.5.2
10K downloads/mo
#2889 most downloaded on pub.dev
Sominemo/Math-Parser-Dart
What this package is like to depend on
Last release 1 years ago
30 Apr 2025
Release timing varies
gaps range from 8 days to 2.0 years
Nearly every release is documented
notes for 8 of 8 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
9 releases · first in 2021
0 releases in the last 12 months
see the full history below
Release timeline
9 releases · Nov 2021 to Apr 2025
2022
2023
2024
2025
2026
Releases
latest 9-
1.5.230 Apr 2025 -
1.5.113 May 2023Release notes
Open source →- Increased upper SDK constraint to declare support for Dart 3
- Documentation fixes
Release notes
Open source →- Increased upper SDK constraint to declare support for Dart 3
- Documentation fixes
-
1.5.020 Mar 2022Release notes
Open source →Breaking changes
- Now the
'symbol is allowed for variable and function names so you can have variables likey'.
Equations
- Implemented
>=and<=.
Release notes
Open source →Breaking changes
- Now the
'symbol is allowed for variable and function names so you can have variables likey'.
Equations
- Implemented
>=and<=.
- Now the
-
1.4.015 Dec 2021Release notes
Open source →Custom Functions
- Define custom functions and redefine built-in functions when parsing
an expression. See docs and example. - Use
MathNodeExpression.getPotentialFunctionNames()to detect potentially
used functions in a string. - Use period in the middle of custom variable and function names.
- Under-hood, functions now support multiple comma separated arguments, so
you can supply multiple arguments to your custom function. - Detect custom functions im math tree using
MathExpression.getUsedFreeformFunctions().
Breaking changes
MissingFunctionArgumentListExceptionrenamed to
OutOfRangeFunctionArgumentListExceptionMathNodeExpression.fromString()may throw other errors besides
MathExceptionMathNodeExpression.getPotentialVariableNames()is replaced by
MathNodeExpression.getPotentialDefinable()- Instead of
log[base](arg), you should passlog(base, arg)syntax now - Period is an allowed character in the middle of a variable name now
Misc.
UnexpectedClosingBracketExceptionandBracketsNotClosedExceptioncan
now tell where the problem probably happened.- New MathParseException's
InvalidFunctionNameException,
DuplicateDeclarationException,InvalidFunctionArgumentsDeclaration.
Release notes
Open source →Custom Functions
- Define custom functions and redefine built-in functions when parsing an expression. See docs and example.
- Use
MathNodeExpression.getPotentialFunctionNames()to detect potentially used functions in a string. - Use period in the middle of custom variable and function names.
- Under-hood, functions now support multiple comma separated arguments, so you can supply multiple arguments to your custom function.
- Detect custom functions im math tree using
MathExpression.getUsedFreeformFunctions().
Breaking Changes
MissingFunctionArgumentListExceptionrenamed toOutOfRangeFunctionArgumentListExceptionMathNodeExpression.fromString()may throw other errors besidesMathExceptionMathNodeExpression.getPotentialVariableNames()is replaced byMathNodeExpression.getPotentialDefinable()- Instead of
log[base](arg), you should passlog(base, arg)syntax now - Period is an allowed character in the middle of a variable name now
Misc.
UnexpectedClosingBracketExceptionandBracketsNotClosedExceptioncan now tell where the problem probably happened.- New MathParseException's
InvalidFunctionNameException,DuplicateDeclarationException,InvalidFunctionArgumentsDeclaration.
- Define custom functions and redefine built-in functions when parsing
-
1.3.107 Dec 2021 -
1.3.006 Dec 2021 withdrawnRelease notes
Open source →1.3.0
Math Tree
- Important change:
MathNodeis now a class ofMathExpressioninterface.
Compared to MathNode, MathExpression may return null incalc()method. - New:
getUsedVariables()method forMathExpressionandMathNode.
This method goes down the math tree to find any uses ofMathVariable
and returns names of all variables. - New:
MathExpressionobject family -MathComparison:MathComparisonEquation(=)MathComparisonGreater(>)MathComparisonLess(<)
Parsing
- New:
MathNodeExpression.fromStringExtended()method allows you to
interpret equations and comparisons. Compared tofromString,
it returnsMathExpressioninstead ofMathNode, since comparisons
can't guarantee result. - New:
MathNodeExpression.getPotentialVariableNames()analyzes given
math expression string for possible use of variables. Refer to
documentation for rough edges before using it. - New:
MathNodeExpression.builtInVariablesgives a list of built-in
predefined variable names. - New:
MathNodeExpression.isVariableNameValid()lets you check if
the parser can work with a given name.
Misc.
- Changed input parameters type for
CantProcessExpressionException. - Small documentation fixes.
Release notes
Open source →Math Tree
- Important change:
MathNodeis now a class ofMathExpressioninterface. Compared to MathNode, MathExpression may return null incalc()method. - New:
getUsedVariables()method forMathExpressionandMathNode. This method goes down the math tree to find any uses ofMathVariableand returns names of all variables. - New:
MathExpressionobject family -MathComparison:MathComparisonEquation(=)MathComparisonGreater(>)MathComparisonLess(<)
Parsing
- New:
MathNodeExpression.fromStringExtended()method allows you to interpret equations and comparisons. Compared tofromString, it returnsMathExpressioninstead ofMathNode, since comparisons can't guarantee result. - New:
MathNodeExpression.getPotentialVariableNames()analyzes given math expression string for possible use of variables. Refer to documentation for rough edges before using it. - New:
MathNodeExpression.builtInVariablesgives a list of built-in predefined variable names. - New:
MathNodeExpression.isVariableNameValid()lets you check if the parser can work with a given name.
Misc.
- Changed input parameters type for
CantProcessExpressionException. - Small documentation fixes.
- Important change:
-
1.2.025 Nov 2021Release notes
Open source →- Custom variables support.
MathFunctionXdeprecated.MathVariableintroduced.- You need to pass an instance of
MathVariableValuesinstead of a num to thecalc()function now - Fix README
- Moved integrating features to a separate package library
math_parser_integrate
Release notes
Open source →- Fix README.
- Moved integrating features to a separate package library
math_parser_integrate.
-
1.1.025 Nov 2021Release notes
Open source →- Custom variables support.
MathFunctionXdeprecated.MathVariableintroduced.- You need to pass an instance of
MathVariableValuesinstead of a num to thecalc()function now.
-
1.0.018 Nov 2021