[ 前へ | 目次 | 次へ ]
2025/10/31
Japanese English

Exevalator をアップデート、エラーメッセージの日本語化が手軽に

コンパクトな式計算ライブラリ「Exevalator(エグゼバレータ)」の最新版、Ver.2.2.2 をリリースしました。

今回は、そのアップデート内容をお知らせします!

Exevalator とは?

まず、「そもそも Exevalator とは何なのか?」について短く触れておきましょう。

計算式の文字列から、計算結果の値を求めるライブラリ

Exevalator は、アプリ開発などの場面でしばしばある、「文字列データとして与えられた計算式を計算し、値を求める」ためのライブラリです。

具体的には、以下のような文字列:

"1.2 + 3.4 * 5.6"
"(sin(1.2) + cos(3.4)) / sqrt(5.6)"

をアプリ側から受け取って、その計算結果として:

20.24
-0.01468840...

といった値を返してくれます。

要は、関数電卓みたいな事をやってくれるライブラリですね。 実際、先日リリースした関数電卓 RINPn のオンライン版でも、この Exevalator を計算処理に使っています

RINPnオンライン版の画面

コンパクトな実装で、多くの言語に対応

RINEARN では、何種類かの言語処理系を開発していますが、その中で Exevalator は、「式の計算のみ」に焦点を絞る事で、実装規模をかなりコンパクトに抑えています。

具体的には、1つのファイルのみで処理が完結していて、それをアプリのソースコードフォルダに放り込むだけで使えます。いわゆる「シングルファイルのライブラリ」というやつですね。

さらに、コンパクトなので移植が容易で、現時点でも Java / Rust / C++ / C# / VB.NET / TypeScript の6言語に対応しています。近いうちに Python にも対応する予定です。

詳しくは公式サイトで!

Exevalator の概要は、こんなところです。より詳しく知りたい方は、ぜひ下記公式サイトをご参照ください!

なお、Exevalator はオープンソースのライブラリで、リポジトリは GitHub にあります。GitHub 慣れしている方はそちらに飛ばれた方が、色々と手っ取り早いかもしれません:

今回から、エラーメッセージの日本語化が手軽に

さて、ここからは今回のアップデート内容です。

まず前提として、Exevalator を標準状態のまま導入して使うと、エラーメッセージは英語で表示されます。 例えば以下のような具合です:

The number of open parentheses '(' is deficient.

これを、以下のような日本語にしたい場面もありますよね:

開き括弧 '(' の数が足りません。

このように、エラーメッセージをカスタマイズしたい場合にどうすればいいかというと:

というのが基本となります。めっちゃ直球ですが、Exevalator はせっかくシングルファイルの小さなライブラリなので、下手に複雑な仕組みを仕込むよりも、上記のような方式の方がよさそうと判断しているためです。

ただ、エラーメッセージを「日本語化したい」といった場面は結構あるはずで、そのために「各ユーザーさん達が、毎回各自でエラーメッセージを和訳する」というのは、さすがに労力が無駄すぎる面もあります。

という事で、ソースコードのエラーメッセージ部を和訳したテキストファイル(ERROR_MESSAGE_JAPANESE.*) を、今回から同梱しました。

上記の内容をコピペして、Exevalatorのソースコード内のエラーメッセージ部を上書きすれば、それだけで日本語化できる、というわけです。

バグ修正や細かい調整

上記以外にも、今回は細かいバグ修正や調整が入っています。

複数連続する単項マイナス演算子を正しく扱えないバグの修正

まずはバグですが、TypeScript 実装版の Exevalator で、以下のように「単項マイナス演算子『-』が複数連続する場合」を正しく扱えていませんでした:

1.2*--5.6
1.2*---5.6
1.2*----5.6

そもそも上記自体が、普通は登場しない形の式ですが(そのためテストケースから漏れていました)、それぞれ以下のように解釈されるべきです:

1.2*(-(-5.6))
1.2*(-(-(-5.6)))
1.2*(-(-(-(-5.6))))

が、パーサの構文解析が間違って、5.6 などのおかしい値が返されていました(どの部分のどういう計算の値が返されるかは、式の形によって変わります)。それを、今回のバージョンにて修正しました。

» コミット内容はこちら

このバグを引かれた方には、ご迷惑をおかけしてしまい申し訳ございません。

単一の値のみを含む括弧 ( ) がエラーになるバグの修正

加えて、「式の中で、単一の値のみを含む括弧 ( ) がある場合」、例えば以下のような式:

1.2 + 3.4 + (5.6)

がエラーになってしまうバグも修正しました。

» コミット内容はこちら

こちらは TypeScript 版でのみ生じるバグで、他の言語版では無関係です。

パーサの細かい調整

最初のバグ修正での改変に付随して、パーサ(構文解析器)のアルゴリズムに微調整を加えたい点があったため、それも今回行っています。

» コミット内容はこちら

具体的には、関数の引数区切りの「,」を、文法上の特別扱いだったものから、演算子の一種として扱うようにするための変更です。

この改変は、ライブラリのユーザー側からは何も変化はなく、普通は一切気にしなくても大丈夫なものです。 一方で、パーサ自体を拡張/改造して使われている方などには、一定の留意が必要なものです。

今回のお知らせは以上です。

Exevalator についての情報は、今後もこのコーナーにて随時お知らせしていきます!


Japanese English
[ 前へ | 目次 | 次へ ]

Exevalator の最新版 Ver.2.3 をリリース、新たに Python で使用可能に
2025-11-04 - 式計算ライブラリ Exevalator の Ver.2.3 をリリースしました。今回から、新たに Python 製のプログラムでも使用可能になりました! AI用ツール開発需要などの背景も踏まえて、詳細をお知らせします。

Exevalator をアップデート、エラーメッセージの日本語化が手軽に
2025-10-31 - 式計算ライブラリ Exevalator の Ver.2.2.2 をリリースしました。今回から、エラーメッセージを手軽に日本語化できるようになりました。数件のバグ修正&微調整も作んでいます。詳細をお知らせします。

関数電卓 RINPn(りんぷん) オンライン版の内部構造を解説
2025-10-22 - 先日登場した、関数電卓ソフト RINPn(りんぷん)のオンライン版の内部構造を解説します。オープンソースなので、自由に改造・流用して、自分だけのWeb電卓を作る事も可能!(かもしれない)

関数電卓 RINPn(りんぷん)、どこでもすぐ使えるオンライン版が登場!
2025-10-21 - フリー関数電卓ソフト RINPn(りんぷん)に、Web上でどこでもすぐ使える「オンライン版」が新登場しました! PCだけでなく、スマホでも利用可能です。詳細をお知らせします!

VCSSLのサポートAIが登場! ただし実用品質には ChatGPT 有料アカウント(Plus)での利用推奨
2025-08-19 - プログラミング言語VCSSLについての質問対応や、コーディング作業を手伝ってくれるAIさんが登場しました! 使用までの流れや推奨事項を解説し、実際の回答例や生成コード例などもたくさん紹介します!

各ソフトやVCSSLの英語版ドキュメント整備がほぼ完了
2025-06-30 - RINEARNでは2年前から、AIの補助による英語版ドキュメントの大幅拡充計画を進めてきました。今回、主要ドキュメント&コンテンツの英訳がほぼ完了し、一応の目標水準に達しました。詳細をお知らせします。

VCSSLの最新版をリリース: 外部プログラムとの連携機能を少し強化、他
2025-05-25 - VCSSL 3.4.52をリリースしました。外部プログラム(C言語製の実行ファイル等)との連携機能を少し強化し、文字化け対策やOS判別などを可能にしました。他にも細かい機能追加があります。詳細をお知らせします。

VCSSLの最新版をリリース、Java 24上での非互換な挙動を対処
2025-04-22 - VCSSL 3.4.50をリリースしました。Java 24環境上でのネットワークドライブ関連のファイルパス解決で、従来環境とは異なる挙動が生じていたのを解消しました。詳細をお知らせします。

この階層の目次
[ 前へ | 目次 | 次へ ]
新しいお知らせ

Exevalator の最新版 Ver.2.3 をリリース、新たに Python で使用可能に
2025-11-04 - 式計算ライブラリ Exevalator の Ver.2.3 をリリースしました。今回から、新たに Python 製のプログラムでも使用可能になりました! AI用ツール開発需要などの背景も踏まえて、詳細をお知らせします。

Exevalator をアップデート、エラーメッセージの日本語化が手軽に
2025-10-31 - 式計算ライブラリ Exevalator の Ver.2.2.2 をリリースしました。今回から、エラーメッセージを手軽に日本語化できるようになりました。数件のバグ修正&微調整も作んでいます。詳細をお知らせします。

関数電卓 RINPn(りんぷん) オンライン版の内部構造を解説
2025-10-22 - 先日登場した、関数電卓ソフト RINPn(りんぷん)のオンライン版の内部構造を解説します。オープンソースなので、自由に改造・流用して、自分だけのWeb電卓を作る事も可能!(かもしれない)

関数電卓 RINPn(りんぷん)、どこでもすぐ使えるオンライン版が登場!
2025-10-21 - フリー関数電卓ソフト RINPn(りんぷん)に、Web上でどこでもすぐ使える「オンライン版」が新登場しました! PCだけでなく、スマホでも利用可能です。詳細をお知らせします!

VCSSLのサポートAIが登場! ただし実用品質には ChatGPT 有料アカウント(Plus)での利用推奨
2025-08-19 - プログラミング言語VCSSLについての質問対応や、コーディング作業を手伝ってくれるAIさんが登場しました! 使用までの流れや推奨事項を解説し、実際の回答例や生成コード例などもたくさん紹介します!

各ソフトやVCSSLの英語版ドキュメント整備がほぼ完了
2025-06-30 - RINEARNでは2年前から、AIの補助による英語版ドキュメントの大幅拡充計画を進めてきました。今回、主要ドキュメント&コンテンツの英訳がほぼ完了し、一応の目標水準に達しました。詳細をお知らせします。

VCSSLの最新版をリリース: 外部プログラムとの連携機能を少し強化、他
2025-05-25 - VCSSL 3.4.52をリリースしました。外部プログラム(C言語製の実行ファイル等)との連携機能を少し強化し、文字化け対策やOS判別などを可能にしました。他にも細かい機能追加があります。詳細をお知らせします。

VCSSLの最新版をリリース、Java 24上での非互換な挙動を対処
2025-04-22 - VCSSL 3.4.50をリリースしました。Java 24環境上でのネットワークドライブ関連のファイルパス解決で、従来環境とは異なる挙動が生じていたのを解消しました。詳細をお知らせします。

リニアングラフやVCSSLの最新版をリリース、目盛りの位置や内容を自由に指定可能に!
2024-11-24 - リニアングラフ3D/2Dを更新し、自由な位置に、自由な表記内容の目盛りを描けるようになりました! 併せて、Java言語やVCSSLでの、プログラム制御用APIも拡張しています。詳細をお知らせします。

Exevalator 2.2 をリリース、TypeScript 対応によりWebブラウザ上で動作可能に
2024-10-22 - オープンソースの式計算ライブラリ「Exevalator(エグゼバレータ)」の2.1をリリースしました。新たに TypeScript に対応し、Webブラウザ上での式計算にも使えるようになりました。詳細を解説します。