akrantiainの説明不足を痛感

0
Ziphil “Ziphineko” Shaleiras 🐈 @Ziphil

「"a" "q" -> /a/ /a/; "e" "q" -> /e/ /e/;」とかやるしかない…気がするけどどうですか?

2017-07-16 17:58:46
クノーツアクア @Qunoxts

@Ziphil "!" は何の演算子なんだろう……。

2017-07-20 16:34:11
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@CalnosAqua @Ziphil (説明に書き忘れてたので補足しますね)後続するものが登場しない条件下において適用される規則です

2017-07-20 16:34:56
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

「識別子の二重解決」、実装してみようかなぁ twitter.com/sosoBOTpi/stat…

2017-07-20 16:48:03
hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

.@Ziphil なるほど。こちらでも採用しましょうかね。(実は「識別子の二重解決」は昔採用していたが諸事情により消えた) 具体的にはどのような仕様になるでしょうか?(現仕様書のどこをどういじるのか?とか)

2017-03-30 23:29:58
クノーツアクア @Qunoxts

@Ziphil akrantiainの書式についてまとめてみましたがこんな感じでよろしいでしょうか? pic.twitter.com/sjQJmQkOeZ

2017-07-20 16:53:25
拡大
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

[per]とあるところ、別に変数でなくても良い。文字列リテラルとか("a" | "b")とかも許容されている。 twitter.com/CalnosAqua/sta…

2017-07-20 16:55:25
Ziphil “Ziphineko” Shaleiras 🐈 @Ziphil

@CalnosAqua 概ね合ってます。「->」の左右には任意個の要素が置けます (3個以上でも大丈夫です)。

2017-07-20 16:56:26
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

akrantiainの入門書、全然書けていないので書きます(今あるの「仕様書」なので)

2017-07-20 16:57:14
クノーツアクア @Qunoxts

@Ziphil 左辺はわかるけど右辺はどうなります? 例えば「"a" -> /e/ /u/ /o/」と来たらどんな処理になります?

2017-07-20 16:58:05
Ziphil “Ziphineko” Shaleiras 🐈 @Ziphil

@CalnosAqua それは構文エラーです。左右の要素数は一致してないといけません。

2017-07-20 16:58:32
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

私がすべき解説を全て@ziphilさんがしてくれていて有難い(←入門書を書け)

2017-07-20 17:00:12
クノーツアクア @Qunoxts

@Ziphil あぁ、つまり "a" -> /A/; "i" -> /I/; "e" -> /E/; を一つに纏めた物 "a" | "i" | "e" -> /A/ /I/ /E/; ってな感じですか?

2017-07-20 17:00:32
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@CalnosAqua @Ziphil いいえ。それはそもそも構文規則を満たさないはずです。

2017-07-20 17:01:34
Ziphil “Ziphineko” Shaleiras 🐈 @Ziphil

@CalnosAqua あ、それも構文エラーで、「"a" "i" "e" -> /A/ /I/ /E/」とすると、「a」「i」「e」がこの順で並んでいるとそれぞれ「A」「I」「E」に変換する規則になります。

2017-07-20 17:01:50
Ziphil “Ziphineko” Shaleiras 🐈 @Ziphil

「|」で繋げられた文字列は1つの塊として扱うので、「 "a" | "i" | "e" -> /A/ /I/ /E/」は左辺が1要素で右辺が3要素なのでエラー。

2017-07-20 17:03:02
クノーツアクア @Qunoxts

@Ziphil という事は「"a" | "i" | "e" -> /A/ /I/ /E/」 があっていますか?

2017-07-20 17:03:35
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

すごく細かいことを言うと、本家ではこれは「意味論的エラー」であって「構文エラー」ではない(構文エラーにしてもいいんだけど、意味論扱いにしないと適切なエラーメッセージが吐けないので) twitter.com/Ziphil/status/…

2017-07-20 17:04:33
Ziphil “Ziphineko” Shaleiras 🐈 @Ziphil

@CalnosAqua 具体的にどのような規則を書きたいのかよく分かりませんが、少なくともその文は構文エラーです (左辺が1要素, 右辺が3要素)。

2017-07-20 17:04:44
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

ちなみに、この類の誤解を防ぐため、本家は"a" | "i" | "e" -> /A/;も構文エラーにしてあります。("a" | "i" | "e") -> /A/; なら合法。 twitter.com/CalnosAqua/sta…

2017-07-20 17:07:19
クノーツアクア @Qunoxts

聞きたいのは左辺と右辺でX個の要素が並んでいた場合はどんな処理になるのかってことなんですけれど……。

2017-07-20 17:07:56