{"id":34920429,"url":"https://github.com/parrot-studio/youma","last_synced_at":"2026-05-23T02:32:58.207Z","repository":{"id":136711156,"uuid":"3608052","full_name":"parrot-studio/youma","owner":"parrot-studio","description":"「BF風言語解析器 - Windstorm」を利用し、 ネタ言語の生成や実行をおこなうスクリプト","archived":false,"fork":false,"pushed_at":"2012-03-03T06:17:16.000Z","size":105,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-12T19:16:25.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parrot-studio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-03-03T02:28:06.000Z","updated_at":"2017-03-08T03:32:19.000Z","dependencies_parsed_at":"2023-04-27T17:02:17.487Z","dependency_job_id":null,"html_url":"https://github.com/parrot-studio/youma","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/parrot-studio/youma","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parrot-studio%2Fyouma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parrot-studio%2Fyouma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parrot-studio%2Fyouma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parrot-studio%2Fyouma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parrot-studio","download_url":"https://codeload.github.com/parrot-studio/youma/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parrot-studio%2Fyouma/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33380649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T01:21:08.577Z","status":"online","status_checked_at":"2026-05-23T02:00:05.530Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-26T13:35:59.411Z","updated_at":"2026-05-23T02:32:58.193Z","avatar_url":"https://github.com/parrot-studio.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"ネタプログラム言語クリエイター - Youma\n===============\n\nIntroduction\n---------------\n「BF風言語解析器 - Windstorm」を利用し、\nネタ言語の生成や実行をおこなうスクリプトです。\n\nRubyのrakeを利用して実装しているため、Ruby環境が必要です。\nまた、内部で使用するWindstormの制限を受けます。\n詳しくはWindstormのREADMEをご覧ください。\n\nhttps://github.com/parrot-studio/windstorm\n\nInstallation\n---------------\n    gem install bundler # if not installed\n    git clone git://github.com/parrot-studio/youma.git\n    cd youma\n    bundle # install 'rake' and 'windstorm'\n\nUsage\n---------------\n### 概要\nYoumaで実行スクリプトを生成するには、\n命令と文字列の対応を定めた定義ファイルが必要です。\n定義ファイルに従ってWindstormがソースコードを解釈し実行します。\n\nYoumaはWindstormとのやりとりを円滑にするため、\n様々なコマンド＝Rakeタスクを定義しています。\n\n### 定義ファイルとソースコードの準備\n\nWindstormの仕様に依存しますので、\nWindstormのREADMEを参照してください。\n\nhttps://github.com/parrot-studio/windstorm\n\n### 実行方法\n\n    cd youma\n    rake task-name [args] [-- opts]\n\n### rakeタスク\n\n- help   : 各タスクの概要\n- test   : 開発用のタスク\n- create : 実行スクリプトの生成\n- sample : サンプルの表示と実行\n\n#### オプションの渡し方\n\n基本引数の後に、「 -- 」を入れて、\nその後に各オプションを入れていきます。\n例えば以下のような形です。\n\n    # ファイルを指定するタスクに対するオプション\n    rake test:build test.yml hello.test -- -d -s 10\n    \n    # 単体で実行されるタスクに対するオプション\n    rake sample:bf -- -d\n\n#### help\n\n- rake help\n\n各タスクに対する概要を表示します。\n\n#### test\n\n- rake test:help\n\n各test系タスクの概要と、オプションの説明を表示します。\n\n- rake test:filter _table-file_ _source-file_\n\n定義ファイルを元に、ソースファイルに含まれる命令語を抽出します。\n内部的にはWindstorm::Executor#filterを呼んでいます。\n\n- rake test:build _table-file_ _source-file_\n\nfilterを実行した後、実行器が解釈できる命令に置き換えます。\n内部的にはWindstorm::Executor#buildを呼んでいます。\n\n- rake test:debug _table-file_ _source-file_ [-- opts]\n\n定義とソースを元に、デバッグモードで実行します。\n内部的にはWindstorm::Executor#debugを呼んでいます。\n\n- rake test:execute _table-file_ _source-file_ [-- opts]\n\n定義とソースを元に、通常モードで実行します。\n内部的にはWindstorm::Executor#executeを呼んでいます。\n\n- テストオプションについて\n\ntest:debugとtest:executeにはオプションが渡せます。\n\n- -d : デバッグモードで起動（test:debugはデフォルトで有効）\n- -l : looseモードで起動\n\nオプションの詳細については、WindstormのREADMEを参照してください。\n\nhttps://github.com/parrot-studio/windstorm\n\n#### create\n\n- rake create:help\n\n各create系タスクの概要と、オプションの説明を表示します。\n\n- rake create:source _name_ _table-file_ [-- opts]\n\nRubyに引き渡して実行するタイプのソースコードを生成します。\n定義をソースに埋め込むため、単体で実行可能です。\n\nデフォルトの生成先は「youma/bin/_name_.rb」です\n実行する時は以下のようにします。\n\n    ruby bin/name.rb source-file [opts]\n\n実行時オプションについては、後述のスクリプト仕様で確認してください。\n\n- rake create:exec _name_ _table-file_ [-- opts]\n\ncreate:sourceを実行した後、以下の作業をおこないます。\n\n- _name.rb_ を _name_ に変更\n- 1行目にshebangを埋め込む\n - デフォルトは「実行時に使われたrakeが存在するディレクトリのrubyというファイル」\n - 「rakeを実行したrubyのpath」の取得方法がわからないため\n- chmod +x _name_\n\nつまり、単体で実行可能なスクリプトを生成します。\n（仕組み上、Windows環境では動作しません）\n\n実行時には以下のようにします。\n\n    bun/name source-file [opts]\n\n実行時オプションについては、後述のスクリプト仕様で確認してください。\n\n- 生成オプションについて\n\ncreate:sourceとcreate:execには以下のオプションが渡せます。\n\n- -d / --debug\n\n生成スクリプトのデフォルトオプションに「-d」を追加する\n\n- -l / --loose\n\n生成スクリプトのデフォルトオプションに「-l」を追加する\n\n- -o _path_ / --output-path _path_\n\n生成スクリプトを出力するディレクトリを指定。\n（指定したディレクトリが事前に存在しない場合はエラー）\n\n- -r _path_ / --ruby-path _path_\n\nshebangに埋め込むrubyプログラムのpathを指定。\ncreate:execでのみ有効。\n（指定したプログラムが存在しない場合はエラー）\n\n\n#### sample\n\n    rake sample:help\n\n各サンプルの簡単なコンセプト説明と、\n元ネタがある場合や原作者の方がいる場合、そのクレジットを表示します。\n\n    rake sample:name [-- -d]\n\n_name_に対応するサンプルの定義とソースコード、実行結果を表示します。\n「-d」オプションが渡された場合、デバッグモードで実行します。\nソース一式はsample/_name_以下にあります。\n\n### 実行スクリプト仕様\n\ncreate:sourceで出力した場合はruby経由で実行します。\n\n    ruby created-file source-file [opts]\n    ruby created-file -h # help\n    ruby created-file -e code [opts] # one-liner\n\ncreate:execで出力した場合は単体で実行できます。\n（Windowsは非対応）\n\n    created-file source-file [opts]\n    created-file -h # help\n    created-file -e code [opts] # one-liner\n\nオプションとして以下が指定可能です。\n（rakeタスクと異なり、optsの前に「 -- 」は不要です）\n\n- -h / --help\n\nソースを実行せず、オプションの説明を表示します。\n\n- -e _code_ / --eval _code_\n\n与えられた文字列をファイル名ではなく、ソースそのものとして実行します。\n\n- -i / --ignore\n\n生成時にデフォルトオプションとして指定したオプションを無視し、\n改めてオプションを指定します。\n\n例えば、-lがデフォルトで埋め込まれたスクリプトを実行する際、\n-iを与えることで、strictモードで起動することが可能です。\n\n- -d / --debug\n\nデバッグモードで実行します。\n詳細はWindstormのREADMEを参照してください。\n\n- -l / --loose\n\nlooseモードで実行します。\n詳細はWindstormのREADMEを参照してください。\n\n- -f / --flash\n\nflashモードで実行します。\n詳細はWindstormのREADMEを参照してください。\n\n- -s _val_ / --size _val_\n\n実行器のバッファサイズを指定します。\n詳細はWindstormのREADMEを参照してください。\n\nNote\n---------------\n- Youmaとは、某秘境のアイドル「二代目ぐんまちゃん」の「本名」です\n\nLicense\n---------------\nThe MIT License\n\nsee LICENSE file for detail\n\nAuthor\n---------------\nぱろっと(@parrot_studio / parrot.studio.dev at gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparrot-studio%2Fyouma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparrot-studio%2Fyouma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparrot-studio%2Fyouma/lists"}