scratch2cpp
scratch2cpp copied to clipboard
とはいっても double 型でも 2^53 までは整数を正確に扱えるのでそれで良い?
C++ に変換するよりも JS に変換する方が簡潔な処理で済みそうであり,かつ生成されるコードも簡潔になりそう
Scratch では区別しないようですが,現 Scratcher's AtCoder では区別します.競プロ的には区別された方が嬉しい場面の方が多いと思うので,今のところこの仕様を変える予定はないです.
## 内容 Scratchのrepeat部品について、リピート回数の評価方法がScratchとC++コードで異なるため、期待する実行結果にならないことがあります。 - Scratch: repeat実行前に一度だけ評価する - C++コード: ループ中、毎回評価する その結果、「条件式で使用した変数をループ内で変更する操作をする」と、ループの実行回数がScrachとC++で異なります。 ## 再現方法 targetStr="aaaaa"とし、ループ内でcurrentStrを"a"から"aaaaa"まで一文字ずつ増やしていき、targetStrとcurrentStrが同じ場合に"Yes"を出力するプログラムをScrachで作ります。具体的には下記のような処理になります。 ループ回数の計算に`length of currentStr`を使っている点が今回の問題と関係します。 - 上記のScrachファイル(.sb3): [ScracherTest.sb3.txt](https://github.com/user-attachments/files/17789241/ScracherTest.sb3.txt) - 生成されるC++コード: [prog.cpp.txt](https://github.com/user-attachments/files/17789254/prog.cpp.txt) 実行すると、Scratchでは"Yes"が出力されますが、生成されたCのソースファイルでは"No"が出力されます。 ## 期待する動作 生成されるC++コードにおいても、Scratchと同じ評価方法にする。 具体的には、repeatについては、C++のforループの前にループ回数を決定するようなコードを出力する。
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.1.0 to 0.2.4. Changelog Sourced from tmp's changelog. v0.2.2 (2024-02-28) :bug: Bug Fix #278 Closes #268: Revert "fix #246: remove any double quotes or single quotes… (@mbargiel)...