「出来合いのものかき集めライブラリ」てのもないでもないのかね

例によって記事タイトルだけじゃ何言ってんのかわからんパターン。

そもそも ply/rply に辿りついた発端のまとめ記事があって、これね:

rply の紹介はここではされてないんだけれど、ply の issue で言及されてて知った。

今のところ rply への不満は lexer の方がややプアなとこくらいで、だからとって「どうにもならない」ことは全然なくて結局のところ「非常にシンプルに作られてるので御しやすい」くて印象良いのね。

なんだけれどやっぱし「もっとええもんないかいな」とちょいちょい見てたりする。無論 PEG はおそらく非常に扱いやすかろうとは思うんだけれど、何せワタシが lex/yacc なノリに慣れ過ぎてるもんで、なんかまだピンと来てない。

チラ見ではやっぱし funcparserlib が印象いいよな。人気があるだけある。確かこれもなんかのついでにインストールされてたはずなので、いずれ遊んでみよう。(pyparsing に感じた不満はなさそうなの。結構ノリが似てるんだけれど。)

てな具合にちらちら目配せしてたんだけれど、なんだか「pull request」があがってて。作者自身による宣伝か、という警戒もありつつ、追記されていたところへ行ってみると…

うーん…。「The List」に並んでいるのは基本的に「lexer/parser を自作できるツール/ライブラリ」で、オマケとして「Standard Modules」に、「パーサを作ったりするものというわけではないが日常のそれに近い用を足せるもの」が書かれている。「Standard Modules」にあるものに似たものだから追加したんだろう、python-parsyfiles

こっちはさぁ、パーサジェネレータの情報を期待して読んでるわけな。python-parsyfiles は全然そんなものとは違うと思う。「ファイル読み野郎群の統合 API」(とそれを提供するための若干のユーティリティ)にみえるわよ、そうにしか見えぬ。となればワタシは「行って損した」気分になる、なった。python-parsing-tools に書くものとしてはそぐわないんじゃないのかな、もしくは、書く場所違うんじゃないのかな…。なんつーか こういうものが欲しいわけではない。

ただこの手の「統合 API」が成功するケースてのももちろんあって、Pygments なんぞはコア部分が一度ガッツリ書かれた後は各言語 lexer は全て plugin であり、plugin はもうオリジナルの作者は一切関わってない。そうやって育つライブラリは確かにある。そういう意味では python-parsyfiles にも明るい未来もあったりするのかね。(ただこういうの、ちゃんと有名にならない限りは、単なる掛け声に終わるので…、そうならないとも限らない。)