据我所知,DSL编辑器使用2种方法:
1- 基于解析器的方法以开发文本DSL:用户指定语法,工作台将生成识别该语法的解析器。解析器构建一个抽象语法树,供代码生成器等使用。
2- 投影方法:这里没有解析器。用户可以通过手势直接编辑抽象语法树,并且投影规则指定如何渲染抽象语法树。这允许使用同时使用不同的符号(文本,图形,表格...)>。
现在,当我仅查看图形化的DSL工作台(例如Microsoft的DSL工具)时,我想知道它们使用什么方法以及DSL定义背后涉及的步骤是什么。如果这是投影方法,那么为什么只限于图形符号?
我的想法是,两者都使用。使符号表示为图形的投影方法,但模型以特定格式(例如XML)保存并解析。
谢谢。
据我所知,DSL编辑器使用2种方法:1-基于解析器的方法来开发文本DSL:用户指定语法,工作台将生成识别该解析器的解析器...