1

一直想掌握一点编译器和 DSL,并且一直在尝试使用专门用于日志文件的类似 SQL 的引擎。

.. 我意识到已经有很多这样的东西了,但请记住,excersize 的一部分(嗯,大部分)是作为学习这些东西的借口。

我觉得我遇到了一个心理障碍,希望人们能帮助我通过它..

我读过的很多文章都集中在语法构建上,这很好——但我对从拥有/构建 AST 到真正让它做一些有用的事情感到困惑。

我一直在阅读这本书中关于解释语言的章节——关于“馅饼”语言的章节——因为这似乎对构建语言的这个特定部分有最重要的意义。

如果我必须编写类似的代码

select x,y from "c:\temp\foo.txt" where x=1 delimited by {Commas}

假设我已将文件的内容加载到 ArrayList 以使事情变得简单,那么我将构建一个外部树遍历器来遍历我的 AST 并将元素洗牌到中间存储中(如果它们匹配x=1) - 最后打印出最后一个缓冲区成为结果集。

期待提供任何指导。

干杯,王牌

4

0 回答 0