Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tukinami/saori-calcs
四則演算+剰余の計算をするSAORI。
https://github.com/tukinami/saori-calcs
sirefaso ukagaka ukagaka-saori
Last synced: 28 days ago
JSON representation
四則演算+剰余の計算をするSAORI。
- Host: GitHub
- URL: https://github.com/tukinami/saori-calcs
- Owner: tukinami
- License: mit
- Created: 2024-04-22T10:46:12.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-04-22T10:48:09.000Z (7 months ago)
- Last Synced: 2024-07-30T20:57:47.278Z (4 months ago)
- Topics: sirefaso, ukagaka, ukagaka-saori
- Language: Rust
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Calcs
[GitHub repository](https://github.com/tukinami/saori-calcs)
## これは何?
デスクトップマスコット、「伺か」で使用できるSAORIの一種です。
与えられた四則演算+剰余の式を評価し、値を返します。
SHIORI「里々」での使用を意図しており、全角文字が使えます。
また、整数計算で値が溢れた際、里々の限界値まで値を丸めます。「伺か」「SAORI」等の用語については詳しく説明いたしませんのでご了承下さい。
## 使い方
SAORI自体の使い方は、使用するSHIORIなどによって異なりますので、ご自身でお調べ下さい。
ここではこのSAORIの使い方について説明いたします。
里々で使用する場合は、**特殊変数「SAORI引数の計算」を一時的に無効にして使用してください**。
このSAORIに届く前に式が計算され、期待した値がでないことがあります。以下の引数を指定して使用します。
+ Argument0: 計算モード文字列(後述)、もしくは空
+ Argument1: 四則演算+剰余からなる式の文字列(書式は後述)### 失敗したとき
Resultに`Error_`という文字列のあと、失敗理由が`|`区切りで返ります。
主に、式の書き方が間違っているときや、計算できなかったときに返ります。失敗例は以下。
```
(calcs、前切り捨て、aaa)→Error_字句解析エラー: 解析できない文字があります 1文字目|字句解析エラー: 解析できない文字があります 2文字目|字句解析エラー: 解析できない文字があります 3文字目
```### 成功したとき
Resultに結果の数字が半角で返ります。
## 計算モード文字列
小数点数値を扱いを指定できます。省略した場合は何もせず、小数点数値のまま計算します。
扱いには大きく分けて2つあり、計算前に整数に直すか、全ての計算が終わった後に整数に直すか選べます。
例として、「前切り捨て」モードと「後切り捨て」モードでは以下のような違いがでます。
```
(calcs、前切り捨て、1.8+1.2)→2
(calcs、後切り捨て、1.8+1.2)→3(calcs、前切り捨て、1.5÷0.3)→Error_実行時エラー: 計算結果がオーバーフローしました 計算: 1.5(小数)/0.3(小数)
(calcs、後切り捨て、1.5÷0.3)→5
```| モード名(日本語) | モード名(英語) | 動作 |
|------------------|----------------|--------------------------------------------|
| 前切り捨て | before\_floor | 計算前に小数点以下を切り捨てます。 |
| 後切り捨て | after\_floor | 計算した後に、小数点以下を切り捨てます。 |
| 前切り上げ | before\_ceil | 計算前に、小数点以下を切り上げます。 |
| 後切り上げ | after\_ceil | 計算した後に、小数点以下を切り上げます。 |
| 前丸め | before\_round | 計算前に、小数点以下を四捨五入します。 |
| 後丸め | after\_round | 計算した後に、小数点以下を四捨五入します。 |## 使える演算子と書式
| 演算 | 該当する文字 |
|------|--------------|
| 括弧 | () |
| 乗算 | **× |
| 除算 | /÷/ |
| 剰余 | %% |
| 加算 | ++ |
| 減算 | -− |優先順位が高い順に並んでいます。
括弧については、全角括弧も対応していますが、里々の仕様上思わぬ値が入る可能性があるので、半角括弧を推奨いたします。
剰余(割った余り)については、整数同士のときのみ動作します。それ以外の場合はエラーを返します。
数値はアラビア数字(0〜9、0〜9)なら全角・半角どちらでも可能です。
また、小数点も全角(.)・半角(.)どちらでも可能です。数値と演算子の間には空白を含めることも可能です。
## 内部計算
もし、計算前に整数にするモードでなく、整数と小数点数値同士を計算することがあれば、整数を小数点数値に直してから計算しています。
また、演算は1段階ずつ行なわれています。
よって、数値によっては微細なズレが生じる可能性があります。ご了承ください。また、前述の通り、里々の限界値である符号付き32bit整数の値に収まるように値が丸められるため、極端に大きい、もしくは小さい値は正確ではありません。
そちらもご了承ください。## 使用方法の例
### 里々(簡易)
#### satori_conf.txt
```
@SAORI
お好きな登録名,path/to/calcs.dll
```#### 使用時
```
*テスト
$SAORI引数の計算 無効
#結果: 6
(お好きな登録名、前切り上げ、1.2+3.3)
#結果: 5
(お好きな登録名、後切り上げ、1.2+3.3)
#結果: 4.5
(お好きな登録名、、1.2+3.3)
$SAORI引数の計算 自動
```## 使用ライブラリ
いずれも敬称略。ありがとうございます。
+ [winapi\_rs](https://github.com/retep998/winapi-rs) / Peter Atashian
+ (テスト実行時) [encoding\_rs](https://github.com/hsivonen/encoding_rs) / Henri Sivonen## ライセンス
MITにて配布いたします。
## 作成者
月波 清火 (tukinami seika)
[GitHub](https://github.com/tukinami)