假设我想解析 jquery 选择器语法并将事物转换为标记。
我应该将事物解析为字节数组吗?作为带有 std.string 的字符串?逐个字符,或者也许在火卫一的某个地方有博耶-摩尔搜索?D 有最快的正则表达式,所以也许是正则表达式?
如果有人可以链接到用 D 编写的任何好的解析器,那也将不胜感激。
假设我想解析 jquery 选择器语法并将事物转换为标记。
我应该将事物解析为字节数组吗?作为带有 std.string 的字符串?逐个字符,或者也许在火卫一的某个地方有博耶-摩尔搜索?D 有最快的正则表达式,所以也许是正则表达式?
如果有人可以链接到用 D 编写的任何好的解析器,那也将不胜感激。
Pegged易于使用的解析器生成器
我在我的 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 方式,但它是一种可行的可能性。