Comments (1)
Currently TokenizeExcetion
/ParseException
is thrown only when Lexer/Parse detects incorrect input. For example, the last case doesn't result in StackOverflow but instead throws ParseException
because it detects invalid grammar.
First two cases are different, they are based on methods from the standard .NET library. They may throw FormatException
or OverflowException
.
FormatException
- it tries to parse 2e
as "scientific notation", like 2e+10
but the last part is missing, so here is an exception. An additional point to think about: xFunc supports implicit multiplication, like 2x
. So, in that case, 2e
could be parsed as 2 * e
, maybe we need to validate it.
OverflowException
- completely valid case. xFunc supports different numeral systems (dec, oct - number start from 0, hex - 0x prefix, bin - 0b prefix), and oct/hex/bin are only supported for integer numbers. So, your number is treated as octal and it is too big to be stored in long
.
Unfortunately, these exceptions aren't handled by xFunc. I agree it is better to wrap them into a custom exception. #767
from xfunc.
Related Issues (20)
- The expression is not simplified after `derivative` function
- Add support of implicit multiplication for complex numbers
- Migrate to NUnit
- Units should be wrapped into quotes
- Remove Moq
- DocFx Documentation
- Remove `Helpers` from public API
- Add support of rational number to trigonometric functions
- Align units `ToString` implementation with parser
- Lambda can't resolve a parameter
- `CallExpression` uses incorrect scope for parameters evaluation
- Remove unnecessary variables
- [xFunc CLI] Add ability to execute expression from files
- Support partial application of functions
- New Results API
- Upgrade to .NET 8
- Remove the obsolete serialization APIs
- Wrap exceptions from BCL to custom xFunc exceptions
- Enhancement Request: Support decimal parameters/parsing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xfunc.