我想修改XPATH解析器,但我不知道如何开始。 源代码看起来像:
任何帮助将不胜感激:)
答案 0 :(得分:2)
这看起来像是一个" shift reduce" (参见S和Rs)表中的LALR解析器。我的猜测是它是由GOLD解析器生成的,它生成与应用程序无关的解析表。
但是如果没有原始的grammmar和解析器生成器,你将无法合理地修改它。
为什么要修改完美的XPath解析器呢?如果它不完美,为什么不用一个完美的?
答案 1 :(得分:1)
如果规则集和终端符号(和词法分析器)的代码不可用,则尝试修改解析器是没有意义的。
提供的代码看起来像一般的表驱动LR解析器的操作表。但是,您还需要GOTO表。
整个方法与逆向工程一样不健全。如果你愿意,只需从清零开始构建自己的解析器,这样你就可以获得自由和灵活性。