3

假设我想解析 jquery 选择器语法并将事物转换为标记。

我应该将事物解析为字节数组吗?作为带有 std.string 的字符串?逐个字符,或者也许在火卫一的某个地方有博耶-摩尔搜索?D 有最快的正则表达式,所以也许是正则表达式?

如果有人可以链接到用 D 编写的任何好的解析器,那也将不胜感激。

4

2 回答 2

8

Pegged易于使用的解析器生成器

于 2012-09-09T08:19:14.283 回答
2

我在我的 dom.d 文件中写了一点 CSS 选择器:

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

如果您想使用它,只需获取文件 dom.d 和 characterencodings.d。

我这样做的方式是使用std.string。我不会称这为惯用语,甚至不会很好......但它很容易编写并且为我完成了工作。选择器字符串太短了,我认为速度无论如何都不重要。

对于 html 解析器,我逐个字符地执行该字符。一种更惯用的方法可能是在输入范围上进行模板化并返回输出范围。不久前,我为一个玩具示例做了类似的事情:

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

再说一次,我不会说这是理想的 D 方式……甚至是好的 D 方式,但它是一种可行的可能性。

于 2012-09-08T23:58:28.233 回答