Gauche:スクリプト作成支援
スクリプト作成支援
スクリプトの作成を支援するツール 7 個とモジュール 11 個です。
SCIndent (Scheme用インデント変換ツール)
https://github.com/Hamayama/SCIndent
- Schemeのプログラムのインデント変換を行うHTMLです。
プログラムを貼り付けてconvertボタンを押すと、インデントします。
また、括弧ごとに色分けした結果も表示します。
Gauche専用のリテラルにいくつか対応しています。
- 以下のURLで動作確認ができます。
https://hamayapp.appspot.com/static/scindent.html
(sample ボタンで変換例が見られます)
- ロジックはJavaScriptで書いています。
プログラムの文字列をトークンに分割して、
先頭から順番に解析してインデントを計算しています。
hamayama(2015/01/06 15:32:54 UTC)
CPIndent (Cプリプロセッサ用インデント変換ツール)
https://github.com/Hamayama/CPIndent
- Cプリプロセッサの命令のインデント変換を行うHTMLです。
Cのプログラムを貼り付けてconvertボタンを押すと、インデントします。
(基本的に確認専用です)
- 以下のURLで動作確認ができます。
https://hamayapp.appspot.com/static/cpindent.html
(sample ボタンで変換例が見られます)
- ロジックはJavaScriptで書いています。
プログラムの各行からCプリプロセッサの命令を抽出して、
先頭から順番に解析してインデントを計算しています。
hamayama(2017/01/09 15:45:59 UTC)
SCPrefix (中置記法→前置記法変換ツール)
https://github.com/Hamayama/SCPrefix
- 中置記法の数式をSchemeの前置記法に変換を行うHTMLです。
数式を貼り付けてconvertボタンを押すと、変換します。
- 以下のURLで動作確認ができます。
https://hamayapp.appspot.com/static/scprefix.html
(sample ボタンで変換例が見られます)
- ロジックはJavaScriptで書いています。
数式の文字列をトークンに分割して、再帰下降構文解析によって変換しています。
hamayama(2015/01/16 08:41:14 UTC)
SCInfix (前置記法→中置記法変換ツール)
https://github.com/Hamayama/SCInfix
- 前置記法の数式を中置記法に変換を行うHTMLです。
数式を貼り付けてconvertボタンを押すと、変換します。
- 以下のURLで動作確認ができます。
https://hamayapp.appspot.com/static/scinfix.html
(sample ボタンで変換例が見られます)
- ロジックはJavaScriptで書いています。
数式の文字列をトークンに分割して、S式ごとに変換しています(何かいろいろと変ですが)。
hamayama(2015/10/29 16:49:00 UTC)
ReplaceNo (連番変換ツール)
https://github.com/Hamayama/ReplaceNo
- テキスト内の複数の数値を、連番に変換するHTMLです。
テキストを貼り付けてconvertボタンを押すと、変換します。
- 以下のURLで動作確認ができます。
https://hamayapp.appspot.com/static/replaceno.html
(sample ボタンで変換例が見られます)
- ロジックはJavaScriptで書いています。
パターン文字列から正規表現を構築して置換するようにしています。
hamayama(2018/06/26 14:18:57 UTC)
StructNo (階層番号生成ツール)
https://github.com/Hamayama/StructNo
- スペースでインデントされたテキストデータから、
階層化された項目番号 (1.2.3 等) を生成するための HTML です。
- 以下のURLで動作確認ができます。
https://hamayapp.appspot.com/static/structno.html
(sample ボタンで変換例が見られます)
- 例えば、設計のとき等に、以下のようなスペースでインデントした
テキストファイルを作って検討することがあります。大分類1 小分類1 項目1 項目2
- 本ツールは、このようなテキストデータから、1.1.1 のような項目番号を生成するものです。
hamayama(2020/08/11 13:37:23 UTC)(2021/07/10 12:20:25 UTC)
Gauche-refj-isearch (マニュアル生成ツール)
https://github.com/Hamayama/Gauche-refj-isearch
- Gauche の開発最新版のソースから、インクリメンタルサーチ機能付きの
リファレンスマニュアル(HTMLファイル)を生成するツールです。
実行には、ビルドのための開発環境が必要です。
hamayama(2016/02/15 19:38:29 UTC)
info2 (info手続きを拡張したinfo2手続きを定義)
https://github.com/Hamayama/info2
- Gauche で info 手続きを拡張した info2 手続きを使用可能にするためのモジュールです。
標準の info 手続きは、検索する infoファイル名が gauche-refe.info に固定となっていますが、
info2 手続きは、検索する infoファイル名を 指定することができます。
- 本モジュールは、gauche.interactive.info をベースに改造しました。
また、内部で text.info モジュールの定義をいくつか上書きしています。
このため、Gauche の将来のバージョンアップで動かなくなる可能性があります。
hamayama(2015/08/26 15:58:18 UTC)
eenum (数値の指数表記を展開)
https://github.com/Hamayama/eenum
- Gauche で、数値の指数表記を展開した文字列を取得するためのモジュールです。
また、桁数を指定して丸め処理を行った文字列を取得することもできます。
- 文字列操作で指数表記の展開や丸め処理を行うため、その分の時間がかかります。
- v1.21 で、有理数を 浮動小数点数にしないで そのまま変換できるようにしました。
hamayama(2016/05/15 05:35:24 UTC)(2016/10/27 12:43:56 UTC)
(2017/01/09 15:45:59 UTC)
recdec (有理数と循環小数の相互変換)
https://github.com/Hamayama/recdec
- Gauche で、有理数と循環小数の相互変換を行うためのモジュールです。
- 小数部の桁数が多い場合に、時間がかかるケースがあります。
- v1.03 で、基数を指定できるようにしました。
hamayama(2019/10/28 09:59:06 UTC)(2019/10/31 11:32:31 UTC)
ffext (ファイル検索の拡張)
https://github.com/Hamayama/ffext
- Gauche で find-file-in-paths 手続きを拡張した find-file-in-paths-ext 手続きを
使用可能にするためのモジュールです。
- find-file-in-paths-ext 手続きは、ファイルの拡張子を複数指定して検索が行えます。
hamayama(2016/07/24 13:59:28 UTC)
- Shiro(2017/01/10 20:12:41 UTC):これ、Windowsでは便利そうなんで、find-file-in-pathsに取り込ませてもらって良いですか?
- hamayama(2017/01/11 09:56:50 UTC):取り込みや改造等、自由に使っていただいて問題ないです。
aloadmak (autoloadのコード生成)
https://github.com/Hamayama/aloadmak
- Gauche で autoload のコードを生成するためのモジュールです。
use を autoload に変更してロードを遅延したい場合に使用できます。
- 単純にシンボルを検索しているため、誤ったコードを生成することがあります。。。
hamayama(2017/09/26 16:10:02 UTC)
eigenmat (Eigen ライブラリによる行列の高速演算)
- Gauche:行列演算モジュール を参照ください。
- Gauche-gl-examples ( https://github.com/Hamayama/Gauche-gl-examples )
の pendulum.scm は、本モジュールが存在すれば使用するようになっています。
(振り子の数 `*N*` を大きくすると、高速化の効果が分かりやすいです)
hamayama(2018/08/13 14:04:59 UTC)
gsdbg (スクリプトのデバッグ)
https://github.com/Hamayama/gsdbg
- Gauche で、スクリプトのデバッグを行うためのモジュールです。
- (read-eval-print-loop) をベースに作成してみました。
現状、制限事項がいろいろと存在します。
(あまり需要はなさそうですが。。。)
hamayama(2019/05/06 13:45:08 UTC)
dupsyms (import されたシンボルの重複チェック)
https://github.com/Hamayama/dupsyms
- Gauche で、import されたシンボルの重複チェックを行うためのモジュールです。
- (apropos) をベースに作成してみました。
hamayama(2019/12/13 13:11:26 UTC)
lineseg (数直線上の線分を扱う)
https://github.com/Hamayama/lineseg
- Gauche で、数直線上の線分を扱うためのモジュールです。
- 線分の長さや、積集合 や 和集合 を計算できます。
- また、make-lineseg に、比較器 と 加算/減算関数 を渡すことで、
数値以外のクラスを、線分の start と end に格納して
計算することができます。
hamayama(2022/09/19 12:08:44 UTC)
datecal (日時の計算を行う)
https://github.com/Hamayama/datecal
- Gauche で、日時の計算を行うためのモジュールです。
- 日時 (<date> クラス) どうしの 減算 や、
日時 (<date> クラス) と 時間 (<time> クラス) の 加減算等 が行えます。
- lineseg モジュールのところに、使用例があります。
https://github.com/Hamayama/lineseg/blob/main/sample-date-time.scm
(日時の範囲を設定して、勤務時間を計算するサンプルです)
hamayama(2022/09/19 12:08:44 UTC)
msbmp (ビットマップファイルの読み書き)
https://github.com/Hamayama/msbmp
- Gauche で、Windows のビットマップファイル (画像ファイル) を、
読み書きするためのモジュールです。
- ファイルは、24 bit カラーで無圧縮のもののみ読み書き可能です。
- ヘッダー情報の解析には、binary.pack モジュールを使用しています。
これのおかげで大分楽になりました。
hamayama(2023/01/06 04:34:21 UTC)