在我的应用程序中,我必须为特定域键入一些代码,我想为此创建一个DSL。 DSL应该有一些非常基本的命令。
DSL代码示例:
srccode{
code: "if("
func: insertInputData(1)
code: "){\n "
func: insertOutputData(0)
code: "\n}\n"
cond: checkForOutputConnection(1):
code: "else{\n "
func: insertOutputData(1)
code: "\n}\n"
}
这段代码应该被翻译成通用语言(f.ex.Python)的源代码,如下所示:
def getSrcCode():
s = ""
s += "if("
s += insertInputData(1)
s += "){\n "
s += insertOutputData(0)
s += "\n}\n"
if(outputConnected(1)):
s += "else{\n "
s += insertOutputData(1)
s += "\n}\n"
return s
所以它实际上只是一个简单的翻译。
(这可能是错的,到目前为止我没有使用它们中的任何一个)
您建议我使用哪种工作台或工具来实现将代码轻松转换为其他语言的可能性(如我所示)(我更喜欢某些东西,但在某种程度上相当有限,但在满足我的低需求时易于学习和使用)。
确实,您无法摆脱MPS中的投影编辑器,但是通过良好的DSL设计,您可以限制最终用户并控制其流量。
如果你决定给投影编辑器一个机会,这就是你需要的插件http://dslfoundry.com/first-prototype-of-plaintextflow-released/
干杯!