图形DSL工作台使用什么方法:解析器或投影?

问题描述 投票:0回答:1

据我所知,DSL编辑器使用2种方法:

1- 基于解析器的方法以开发文本DSL:用户指定语法,工作台将生成识别该语法的解析器。解析器构建一个抽象语法树,供代码生成器等使用。

2- 投影方法:这里没有解析器。用户可以通过手势直接编辑抽象语法树,并且投影规则指定如何渲染抽象语法树。这允许使用同时使用不同的符号(文本,图形,表格...)>。

现在,当我仅查看图形化的DSL工作台(例如Microsoft的DSL工具)时,我想知道它们使用什么方法以及DSL定义背后涉及的步骤是什么。如果这是投影方法,那么为什么只限于图形符号?

我的想法是,两者都使用。使符号表示为图形的投影方法,但模型以特定格式(例如XML)保存并解析。

谢谢。

据我所知,DSL编辑器使用2种方法:1-基于解析器的方法来开发文本DSL:用户指定语法,工作台将生成识别该解析器的解析器...

parsing abstract-syntax-tree dsl mps dsl-tools
1个回答
0
投票
严格来说,任何“图形”编辑器都是投影式的。语言工作台具有不同的符号表示法(如MPS)的能力是由于该工具内置了这些符号表示法,并且能够为同一模型定义多个编辑器。对于MPS,甚至可以将新的符号创建为插件(因此无需更改MPS本身)。
© www.soinside.com 2019 - 2024. All rights reserved.