Open blhsrwznrghfzpr opened 3 years ago
command_pattern
応答するコマンド全てにマッチする正規表現を返す 正規表現を一度生成したら、以後コマンドの登録はできないようにする https://yard.bcdice.org/BCDice/Base.html#command_pattern-class_method
command_patternはBCDiceで処理できるかもしれないコマンドかどうかを、 外部のツールから判定するために用意されている正規表現だと認識しています。
が、システム固有のコマンドの一部に対しては、Preprocessorによって処理された後のパターンしか登録されていません。 そのため、Preprocessorで処理(括弧数式展開)される前のコマンドがcommand_patternにマッチしないことがあります。 例としては下記のようなものなどです
Preprocessor
register_prefix('IP\d+')
input = "IP(1+2)"
調査のために下記のような変更を入れてみたところ、現状では4システムが発見できます。 https://github.com/blhsrwznrghfzpr/BCDice/commit/d7fee31e1c9118e7fcbd6830997e81ad2ea98ffb テストケースに書かれていないものも含めるともっと多いかと思います。
command_patternがPreprocessorで前処理する前のコマンドに対しても利用できるように強制するようなテストなどを用意できたりしないでしょうか?
ありがとうございます。 command_pattern の活用にはこの問題の解決が必須だと思うので、まずは何をゴールとするか考えてみます。
command_pattern
command_pattern
はBCDiceで処理できるかもしれないコマンドかどうかを、 外部のツールから判定するために用意されている正規表現だと認識しています。が、システム固有のコマンドの一部に対しては、
Preprocessor
によって処理された後のパターンしか登録されていません。 そのため、Preprocessor
で処理(括弧数式展開)される前のコマンドがcommand_pattern
にマッチしないことがあります。 例としては下記のようなものなどです調査のために下記のような変更を入れてみたところ、現状では4システムが発見できます。 https://github.com/blhsrwznrghfzpr/BCDice/commit/d7fee31e1c9118e7fcbd6830997e81ad2ea98ffb テストケースに書かれていないものも含めるともっと多いかと思います。
command_pattern
がPreprocessor
で前処理する前のコマンドに対しても利用できるように強制するようなテストなどを用意できたりしないでしょうか?