3

jquery セレクター構文を解析して、トークンに変換したいとします。

物事をバイトの配列として解析する必要がありますか? std.string の文字列として? Char by char またはフォボスのどこかにボイヤームーア検索があるのでしょうか? D は最速の正規表現を持っているので、おそらく正規表現ですか?

誰かが D で書かれた優れたパーサーにリンクできれば、それもありがたいです。

4

2 に答える 2

8

Peggedは使いやすいパーサー ジェネレーターです

于 2012-09-09T08:19:14.283 に答える
2

dom.d ファイルに小さな CSS セレクターを書きました。

https://github.com/adamdruppe/misc-stuff-included-D-programming-language-web-stuff

試してみたい場合は、ファイル dom.d と characterencodings.d だけを取得してください。

私が行った方法は、std.string を使用することです。私はこれを慣用的または良いとは呼びません...しかし、書くのは簡単で、仕事をやり遂げました。セレクター文字列は非常に短いので、とにかく速度はそれほど重要ではないと思います。

html パーサーでは、その文字を 1 文字ずつ処理しました。より慣用的な方法は、おそらく入力範囲でテンプレート化され、出力範囲を返すことです。少し前に、おもちゃの例として次のようなことをしました。

http://arsdnet.net/dcode/lex.d

繰り返しますが、これが理想的な D の方法だとは言いません... あるいは良い D の方法でさえありませんが、機能させることができる 1 つの可能性です。

于 2012-09-08T23:58:28.233 に答える