Exevalator Updated — Easy Japanese Localization for Error Messages
We've released Exevalator (a compact expression-evaluation library) Ver. 2.2.2.
This post walks you through what's new in this update.
What is Exevalator?
First, a quick refresher — what exactly is Exevalator?
A library that evaluates expressions from strings
Exevalator is a library for use cases where you need to evaluate a mathematical expression given as a string and obtain its result in your app.
For example, given strings like:
"(sin(1.2) + cos(3.4)) / sqrt(5.6)"
it returns the results:
-0.01468840...
In short, it behaves like a scientific calculator you can embed in your application.
In fact, the recently released online version of the RINPn scientific calculator uses Exevalator for computation: Inside RINPn Online: Architecture Overview
Compact implementation with multi-language support
At RINEARN we develop several language processing systems, and Exevalator keeps its implementation very compact by focusing solely on expression evaluation.
Concretely, the entire logic fits in a single file, so you can just drop it into your project's source folder and use it — a true single-file library.
Because it's compact, it's easy to port. As of now it supports six languages: Java, Rust, C++, C#, VB.NET, and TypeScript. Python support is planned in the near future.
Learn more on the official site
That's the gist of Exevalator. For details, please see the official site:
Exevalator is open source, and the repository is on GitHub. If you're comfortable with GitHub, jumping straight there may be the fastest route:
Starting with this release, it's easy to switch error messages to Japanese
Here's what's new in this update.
As a baseline, if you use Exevalator as-is, error messages are shown in English. For example:
There are cases where you’d prefer Japanese, like:
So how do you customize the error messages?
- The error messages are defined together near the top of the source — you can edit them directly: https://github.com/RINEARN/exevalator/blob/main/java/Exevalator.java
That's the basic approach. It's straightforward, but since Exevalator is a small single-file library, we believe this approach is preferable to adding heavy mechanisms.
That said, many people will want "Japanese messages" specifically, and having everyone translate them individually would be wasteful.
So from this release, we've bundled a Japanese-translated error-message file: `ERROR_MESSAGE_JAPANESE.*`: https://github.com/RINEARN/exevalator/blob/main/java/ERROR_MESSAGE_JAPANESE.java
Just copy and paste its contents to overwrite the error-message section in the Exevalator source, and you're done — messages will appear in Japanese.
Bug fixes and minor adjustments
In addition to the above, this release includes a few fixes and tweaks.
Fixed: multiple consecutive unary minus operators
Previously, expressions with multiple consecutive unary minus operators were not handled correctly, e.g.:
1.2*---5.6
1.2*----5.6
While such forms are uncommon (hence missing from our tests), they should be interpreted as:
1.2*(-(-(-5.6)))
1.2*(-(-(-(-5.6))))
However, the parser's analysis went wrong, and incorrect values such as 5.6 were returned (the exact wrong value depended on the expression).
This has been fixed in the current version.
» Commit
We sincerely apologize for any inconvenience caused by this bug.
Fixed: parentheses containing a single value raised an error
We also fixed a bug where an expression containing parentheses around a single value would cause an error, for example:
» Commit
This bug affected the TypeScript version only; other language implementations were not affected.
Other parser fine-tuning
Alongside the first fix, we made a small algorithmic adjustment to the parser:
» Commit
Concretely, the comma used as a function-argument separator (,) is now treated as an operator rather than as a special grammar case.
This change requires no action from library users and should have no visible effect in normal use. If you extend or modify the parser itself, please take note.
-
That's all for this update.
We'll continue to share Exevalator news here as things progress!
Author of This Article
[ Founder of RINEARN, Doctor of Science (Physics), Applied Info Tech Engineer ]
Translation Cooperator
[ GPT-3.5, 4, 5, 5.1 ]
Exevalator v2.4 Released — MCP Support Added, Now Usable as an AI Calculation Tool
2025-11-15 -
We've released Exevalator v2.4, our expression-evaluation library. Starting with this version, it supports MCP, making it usable as a calculation tool for AI assistants.
Exevalator v2.3 Released — Now Usable from Python
2025-11-04 -
We've released Exevalator v2.3. Starting with this version, you can now use it from Python! With growing demand around AI tool development in mind, we share the details here.
Exevalator Updated — Easy Japanese Localization for Error Messages
2025-10-31 -
Exevalator 2.2.2 is out. You can now localize error messages to Japanese with a simple copy-and-paste, and we've included several bug fixes and minor parser adjustments.
Inside RINPn Online: Architecture Overview
2025-10-22 -
An inside look at the architecture of the recently launched online version of the RINPn scientific calculator. It's open source, so you can freely modify and reuse it to build your own web calculator (maybe!).
Meet RINPn Online: Use the Scientific Calculator Anywhere, Instantly
2025-10-21 -
RINPn, the free scientific calculator, now has an online version you can use instantly in your browser — on both PC and smartphones. Read the announcement for details.
The VCSSL Support AI is Here! — Requires a ChatGPT Plus Account for Practical Performance
2025-08-19 -
A new AI assistant for the VCSSL programming language is here to answer your questions and help with coding. This article explains how to use it and showcases plenty of real Q&A and generated code examples.
English Documentation for Our Software and VCSSL Is Now Nearly Complete
2025-06-30 -
We're happy to announce that the large-scale expansion of our English documentation with the support of AI — a project that began two years ago — has now reached its initial target milestone.
VCSSL 3.4.52 Released: Enhanced Integration with External Programs and More
2025-05-25 -
This update introduces enhancements to the external program integration features (e.g., for running C-language executables). Several other improvements and fixes are also included. Details inside.
Released: Latest Version of VCSSL with Fixes for Behavioral Changes on Java 24
2025-04-22 -
VCSSL 3.4.50 released with a fix for a subtle behavioral change in absolute path resolution on network drives, introduced in Java 24. Details inside.










