0

多くの検索の後、Ruby がGeneral Delimited Inputsをどのように実装しているかわかりません。

私が見つけることができるのは、によって使用されるKernel#`%x{...}だけです。

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

3

これは、YACCと Cで記述された解析コードで処理されます。GitHub でソース コードを確認してください。tQWORDS_BEG具体的には、このタイプの引用を処理するトークンは(search within )で始まりますparse.y

YACC 実装の詳細な説明は長くなりますが、開始したい場合は、それがコード内に存在する場所です。

上記のリンクは MRI Ruby 用であることに注意してください。他の Ruby インタープリターがそれをどのように処理するかはわかりませんが、それらはすべてどこかのパーサーで処理し、それらのほとんどは C で記述されており、YACC を使用して解析している可能性があります。注目すべき例外は、Java で記述された JRuby と、OCaml で記述された druby です。

于 2013-05-25T17:47:50.090 に答える