【发布时间】:2015-02-02 22:36:17
【问题描述】:
所以,由于分配给我的任务,我最终想知道下一步实际上可能是什么。
为了澄清事情,我应该使用 Java 来实现一种 DSL 语言。该语言应该使“用户”能够根据输入来指定和创建调查表。
以下输入应提供如下所示的输出:
form taxOfficeExample {
"Did you sell a house in 2010?"
hasSoldHouse: boolean
"Did you buy a house in 2010?"
hasBoughtHouse: boolean
"Did you enter a loan?"
hasMaintLoan: boolean
if (hasSoldHouse) {
"What was the selling price?"
sellingPrice: money
"Private debts for the sold house:"
privateDebt: money
"Value residue:"
valueResidue: money = (sellingPrice - privateDebt)
}
}
我选择的解析器技术是 ANTLRv4,它似乎是这个平台的最佳选择。无论如何,我熟悉所有模型、术语等——例如解析、词法、语法等——但仍然缺少一件事——Java 和 ANTLRv4 之间的桥梁。
那么根据您的经验,基本上我想知道的是,ANTLRv4 和 Java 之间的桥梁是什么?例如,一旦我为 DSL 定义了一个语法,如何应用该语法(语言)?这两个实体之间的桥梁是什么?
我问这个问题只是因为我在这个领域很新,因此,任何提示、研究论文的指针等都将不胜感激!
谢谢
【问题讨论】:
-
解析 DSL 规范实例,构建树,遍历树并生成 Java 代码来实现规范。您正在构建一个小型编译器。
标签: java parsing antlr grammar dsl