{"action":"created","issue":{"url":"https://api.github.com/repos/t-tutiya/tsukasa/issues/40","labels_url":"https://api.github.com/repos/t-tutiya/tsukasa/issues/40/labels{/name}","comments_url":"https://api.github.com/repos/t-tutiya/tsukasa/issues/40/comments","events_url":"https://api.github.com/repos/t-tutiya/tsukasa/issues/40/events","html_url":"https://github.com/t-tutiya/tsukasa/issues/40","id":92004900,"number":40,"title":"スクリプトリプレーサーの仕様を考えるスレ","user":{"login":"t-tutiya","id":7020658,"avatar_url":"https://avatars.githubusercontent.com/u/7020658?v=3","gravatar_id":"","url":"https://api.github.com/users/t-tutiya","html_url":"https://github.com/t-tutiya","followers_url":"https://api.github.com/users/t-tutiya/followers","following_url":"https://api.github.com/users/t-tutiya/following{/other_user}","gists_url":"https://api.github.com/users/t-tutiya/gists{/gist_id}","starred_url":"https://api.github.com/users/t-tutiya/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/t-tutiya/subscriptions","organizations_url":"https://api.github.com/users/t-tutiya/orgs","repos_url":"https://api.github.com/users/t-tutiya/repos","events_url":"https://api.github.com/users/t-tutiya/events{/privacy}","received_events_url":"https://api.github.com/users/t-tutiya/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-06-30T06:41:55Z","updated_at":"2015-06-30T07:45:37Z","closed_at":null,"body":">あおいたく\r\n\r\nツイッターで話していた、現状想定しているリプレーサーの仕様をアップしておきます。\r\nぼんやりとこう考えているというだけなので、なにかあれば提案歓迎します。\r\n\r\n■ルール１：\r\n・行頭が\"@\"であれば、二文字目以降を空白など含めて全てrubyコードとして出力する\r\n\r\n```ruby\r\n入力\r\n@test 3\r\n@   test  5,5 #@のあとに半角空白３個\r\n\r\n出力\r\ntest 3\r\n   test  5,5 #@のあとに半角空白３個\r\n```\r\n補足：\"@\"は１文字以上の任意文字であることが望ましい\r\n\r\n■ルール１－ａ：\r\n・吉里吉里とは違い、@１行が１命令ではない（rubyコードとしてのパースはこの後で行う）。\r\n\r\n```ruby\r\n入力\r\n@ create :ImageControl,\r\n@   id: :test\r\n\r\n出力\r\n create :ImageControl,\r\n   id: :test\r\n```\r\n■ルール２：\r\n・行頭が\"//\"の行はコメントとして無視する\r\n\r\n補足：\"//\"は1文字以上の任意文字であることが望ましい\r\n補足：このように無視する行を複数作れるとより望ましい（例えば\"//\"と\"||\"の2つをコメント扱いするとか）\r\n\r\n■ルール３：\r\n\r\n・ルール１／２が適用されない行はヒアドキュメントと見なし、以下の処理を行う\r\n　・textコマンドの引数に設定して出力\r\n　・line_feedコマンドを出力\r\n\r\n```ruby\r\n入力\r\n\r\n@pause\r\nテスト文字列１\r\nテスト文字列２\r\n\r\n出力\r\n\r\npause\r\ntext \"テスト文字列１\"\r\nline_feed\r\ntext \"テスト文字列１\"\r\nline_feed\r\n```\r\n補足\r\n・line_feedコマンドを出力するかどうか（あるいはline_feed以外の要素を出力するか）は任意に設定出来ると望ましい\r\n\r\n■ルール３－ａ：\r\n\r\n・ヒアドキュメントの中で\"[\"～\"]\"で囲まれた部分は埋め込みコマンドとみなす。\r\n\r\n```ruby\r\n入力\r\n\r\nテスト文字列１[pause]テスト文字列２[pause 2]\r\n\r\n出力\r\n\r\ntext \"テスト文字列１\"\r\npause\r\ntext \"テスト文字列２\"\r\npause 2\r\nline_feed #line_feedが出力されるのはここだけなので注意\r\n```\r\n補足\r\n\r\n・埋め込みコマンド中の改行は認めない物とする（この制限、別に必要ないかな？）\r\n・埋め込みコマンドの中で\"[\"\"]\"を使う必要がある場合は、エスケープシーケンスにする（ただ、rubyの\"\"/''のように、差し替え可能な括弧があると助かります。"},"comment":{"url":"https://api.github.com/repos/t-tutiya/tsukasa/issues/comments/117042562","html_url":"https://github.com/t-tutiya/tsukasa/issues/40#issuecomment-117042562","issue_url":"https://api.github.com/repos/t-tutiya/tsukasa/issues/40","id":117042562,"user":{"login":"aoitaku","id":1124614,"avatar_url":"https://avatars.githubusercontent.com/u/1124614?v=3","gravatar_id":"","url":"https://api.github.com/users/aoitaku","html_url":"https://github.com/aoitaku","followers_url":"https://api.github.com/users/aoitaku/followers","following_url":"https://api.github.com/users/aoitaku/following{/other_user}","gists_url":"https://api.github.com/users/aoitaku/gists{/gist_id}","starred_url":"https://api.github.com/users/aoitaku/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aoitaku/subscriptions","organizations_url":"https://api.github.com/users/aoitaku/orgs","repos_url":"https://api.github.com/users/aoitaku/repos","events_url":"https://api.github.com/users/aoitaku/events{/privacy}","received_events_url":"https://api.github.com/users/aoitaku/received_events","type":"User","site_admin":false},"created_at":"2015-06-30T07:45:37Z","updated_at":"2015-06-30T07:45:37Z","body":"ぼくもコメントとヒアドキュメント部はできるかぎりプレーンなテキストにすることに賛成です。\r\n\r\n- インデントあり ： スクリプト\r\n- インデントなし\r\n  - 行頭@ ： スクリプト\r\n  - 行頭// ： コメント\r\n  - それ以外 ： ヒアドキュメント\r\n\r\nこういう感じですかね。\r\n\r\n埋め込みコマンド中の改行は、見た目上の改行が目的なら制限しなくても問題ないと思います。この場合は空白文字として扱うことになります。\r\nRubyのスクリプトとして改行が意味を持つようなもの（つまり複数行のRubyスクリプト）は多分ややこしくなると思うのでやめたほうがよさそうです。"}}