「"a" "q" -> /a/ /a/; "e" "q" -> /e/ /e/;」とかやるしかない…気がするけどどうですか?
2017-07-16 17:58:46@CalnosAqua @Ziphil (説明に書き忘れてたので補足しますね)後続するものが登場しない条件下において適用される規則です
2017-07-20 16:34:56「識別子の二重解決」、実装してみようかなぁ twitter.com/sosoBOTpi/stat…
2017-07-20 16:48:03.@Ziphil なるほど。こちらでも採用しましょうかね。(実は「識別子の二重解決」は昔採用していたが諸事情により消えた) 具体的にはどのような仕様になるでしょうか?(現仕様書のどこをどういじるのか?とか)
2017-03-30 23:29:58@Ziphil akrantiainの書式についてまとめてみましたがこんな感じでよろしいでしょうか? pic.twitter.com/sjQJmQkOeZ
2017-07-20 16:53:25[per]とあるところ、別に変数でなくても良い。文字列リテラルとか("a" | "b")とかも許容されている。 twitter.com/CalnosAqua/sta…
2017-07-20 16:55:25詳しくは sozysozbot.github.io/akrantiain2/ma… を読みましょう
2017-07-20 16:55:49@CalnosAqua 概ね合ってます。「->」の左右には任意個の要素が置けます (3個以上でも大丈夫です)。
2017-07-20 16:56:26akrantiainの入門書、全然書けていないので書きます(今あるの「仕様書」なので)
2017-07-20 16:57:14@Ziphil 左辺はわかるけど右辺はどうなります? 例えば「"a" -> /e/ /u/ /o/」と来たらどんな処理になります?
2017-07-20 16:58:05@CalnosAqua それは構文エラーです。左右の要素数は一致してないといけません。
2017-07-20 16:58:32私がすべき解説を全て@ziphilさんがしてくれていて有難い(←入門書を書け)
2017-07-20 17:00:12@Ziphil あぁ、つまり "a" -> /A/; "i" -> /I/; "e" -> /E/; を一つに纏めた物 "a" | "i" | "e" -> /A/ /I/ /E/; ってな感じですか?
2017-07-20 17:00:32@CalnosAqua @Ziphil いいえ。それはそもそも構文規則を満たさないはずです。
2017-07-20 17:01:34@CalnosAqua あ、それも構文エラーで、「"a" "i" "e" -> /A/ /I/ /E/」とすると、「a」「i」「e」がこの順で並んでいるとそれぞれ「A」「I」「E」に変換する規則になります。
2017-07-20 17:01:50「|」で繋げられた文字列は1つの塊として扱うので、「 "a" | "i" | "e" -> /A/ /I/ /E/」は左辺が1要素で右辺が3要素なのでエラー。
2017-07-20 17:03:02すごく細かいことを言うと、本家ではこれは「意味論的エラー」であって「構文エラー」ではない(構文エラーにしてもいいんだけど、意味論扱いにしないと適切なエラーメッセージが吐けないので) twitter.com/Ziphil/status/…
2017-07-20 17:04:33@CalnosAqua 具体的にどのような規則を書きたいのかよく分かりませんが、少なくともその文は構文エラーです (左辺が1要素, 右辺が3要素)。
2017-07-20 17:04:44ちなみに、この類の誤解を防ぐため、本家は"a" | "i" | "e" -> /A/;も構文エラーにしてあります。("a" | "i" | "e") -> /A/; なら合法。 twitter.com/CalnosAqua/sta…
2017-07-20 17:07:19