在scala中评估外部DSL需要哪些步骤,有哪些库可用于这些步骤?
在深入研究之后,我能够使用解析器组合子创建一个AST out of case类。流程中的下一步是什么?我看过kiama (https://code.google.com/p/kiama/),但从文档中似乎不清楚(可能是由于我有限的语言处理知识)如何维护符号表,如何将操作绑定到dsl语句等。
发布于 2013-07-25 11:46:20
我同意在Kiama中有更多用于通用语言处理任务的教程样式的文档是很好的。我们正在努力,但目前我没有具体的报告。
同时,我所能提供的是Kiama发行版中的示例。具体地说,minijava示例是针对Java的非平凡子集的合理可访问的编译器。它进行名称和类型分析(参见SemanticAnalysis.scala),并生成JVM字节码。语义分析使用了一个简单的模型,将环境从声明传递到名称的使用。如果您对该示例的工作原理有特定的问题,请随时在这里或Kiama邮件列表上与我们联系。
Oberon-0示例也是一个从命令式语言到C的完整编译器,包括语义分析。
https://stackoverflow.com/questions/17832872
复制相似问题