假设我想解析jquery选择器语法并将其转换为标记。
我应该将事物解析为字节数组吗?作为std.string的字符串? Char的char或者也许是在phobos的某个地方进行的boyer-moore搜索? D有最快的正则表达式,所以可能正则表达式?
如果有人可以链接到用D编写的任何好的解析器,也会受到赞赏。
答案 0 :(得分:8)
Pegged使用解析器生成器很简单
答案 1 :(得分:2)
我在dom.d文件中写了一个小的CSS选择器:
https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff
如果你想玩它,只需抓住文件dom.d和characterencodings.d。
我这样做的方法是使用std.string。我不会称之为惯用语甚至是好的......但是编写这本书并为我完成工作很简单。选择器字符串很短,我不认为速度无论如何都不重要。
对于html解析器,我用char做了那个char。更惯用的方法可能是在输入范围上进行模板化并返回输出范围。我刚刚为一个玩具例子做了更多这样的事情:
http://arsdnet.net/dcode/lex.d
同样,我不会说这是理想的D方式......甚至是一种好的D方式,但这是一种可以使用的可能性。