p-code-magazine / r3pl

A simple REPL for P-Code, with some experimental features
https://r3pl.vercel.app
1 stars 0 forks source link

Grammar conflicts #4

Open inafact opened 3 years ago

inafact commented 3 years ago

一部のP-Codeの文法とJavaScriptの正規表現のトークンが重複しているので、\ を入れないと展開・実行できない場合がある

hemokosa commented 3 years ago

確かにそうですね。具体的には「^」と「*」でしょうか。「v」と「x」でも大丈夫なように、P-Codeの方を拡張するだとか?(エイリアス的に)

inafact commented 3 years ago

実は地味に結構ぶつかっていて、P-Code的にクリティカルなのは既に挙げてもらっている ^* 以外にも

などがあります。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions

厳密にはまだありそうですが、randexp.js の使い方的に、JavaScriptでサポートしてる全ての文法をサポートしなくても良いかなとは思っています。 現状だと何だかんだで \ でエスケープするのが明示的に書き分けが出来て手っ取り早そうかなと。

エイリアス作ってしまうのもありかなとは思いますが、あとは、

とかですかね。パッと思いつくものだと..

hemokosa commented 3 years ago

なるほど、確かに演算子や小数点もすべてアウトですね(汗)。となると、ここはへたにエイリアスでしのぐのではなく、稲福さんのいうように、 ・エスケープする ・文法自体の書き換えができるようにする の二本立てでいくのはよさそうですね。あと、モードも面白いアイデアですね!このあたり、考えること自体がけっこう楽しいかも:-P