在我的应用程序中,我必须输入特定域的一些代码,并且我想为此创建一个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"
}
此代码应被翻译成通用语言(例如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
所以实际上它只是一个简单的翻译。
(这可能是错误的,到目前为止我还没有使用过)
您会建议我使用哪种工作台或工具,以实现将代码轻松翻译为其他语言的可能性(如图所示(我更喜欢某些东西,但在某种程度上相当有限,但易于学习和理解)。在满足我的低需求的同时使用)。
答案 0 :(得分:0)
确实,您不能摆脱MPS中的投影编辑器,但是通过DSL的良好设计,您可以限制最终用户并控制其流量。
如果您决定给投影编辑器一个机会,这是您将需要使用的插件http://dslfoundry.com/first-prototype-of-plaintextflow-released/
干杯!