在我目前的项目中,我正在开发一种领域特定语言。例如,这种语言的语法如下:
structs:
TempStruct
tempValue : double;
unitOfMeasurement : String;
abilities:
sensors:
TemperatureSensor
attribute responseFormat : String;
generate tempMeasurement : TempStruct; // forward reference of previously defined structs
在上面的代码片段中,您可以看到TempStruct
之前定义的。我的要求是我想方便 DSL 程序员一个以前定义的结构的下拉列表。因此,程序员可以轻松地structs
从下拉列表中选择一个。
我开始研究 ANTLR,但我不确定如何在 ANTLR 中实现这一点。对此有任何想法吗?欢迎您对编写 DSL 的其他工具提出建议和建议。