dsl解析器_具体:浏览器的丰富,可定制的DSL编辑器

dsl解析器

语言工作台和其他解决方案旨在解决该问题,使DSL创建者可以使用语法着色,相关符号的自动完成,验证等功能来构建功能强大的编辑器。 Eclipse的XTextJetbrains MPS只是两个示例。

Concrete是用于构建功能强大的DSL编辑器的新工具,该DSL编辑 仅使用HTML,Javascript和CSS在浏览 中运行。

可以使用基于JSON的语法为特定的DSL定制Concrete编辑器,可以使用HTML,Javascript和CSS定制外观。
Concrete和建模框架RGen的创建者Martin Thiede 在RubyConf 2010上的一次演讲中展示了ConcreteConcrete网站上也有一些演示,展示了编辑器的可定制性。 一个演示是公式编辑器示例 。 它可以使用户进行一些基本的数学布局,而不是使用户以线性方式编写公式。

InfoQ与Martin Thiede讨论了Concrete,它是如何工作以及如何使用的,还有一些额外的问题供那些可能不太了解Modeling的读者使用。

InfoQ :什么是混凝土?

Concrete是在网络浏览器中运行的领域特定语言(DSL)的编辑器。 需要通过告诉特定的DSL语言的结构(抽象语法)以及语言元素的外观(具体语法)来设置它。 设置完成后,用户可以在该DSL中编写句子,并且语法突出显示,自动完成和即时约束检查将为它提供支持。

InfoQ :混凝土如何工作?

具体编辑器的核心是需要嵌入到Web应用程序中的Javascript小部件。 它以JSON格式(最有可能通过AJAX)加载和存储数据(DSL语句)。 数据由具有属性的对象组成,这些属性保存原始值,其他对象或对其他对象的引用。

语言结构(抽象语法)的设置也以JSON完成。 具体需要知道存在哪些语言元素,它们具有哪些属性,如何嵌套它们以及如何相互引用。

默认情况下,语言元素具有文本外观,非常类似于我们以前使用语法突出显示的当前文本编辑器所使用的外观。 但是,几乎可以使用任何基于HTML和CSS的Web设计技术来自定义外观。 这允许大量的视觉变化,包括图标,框,不同的字体等。

目前,Concrete适用于Firefox和Chrome。

InfoQ :混凝土可以用来做什么?

每当在Web上公开DSL时,混凝土都是有用的。 与文本区域提供的DSL相比,具体DSL提供了更多的用户支持。 由于具体DSL是外部DSL,因此它们也不会遭受安全性问题,也不会使不熟悉内部DSL宿主语言的用户感到困惑。

最有趣的应用之一是用于管理接口的DSL。 一个示例是体育赛事的在线注册平台,客户可以自行编辑带有输入字段,约束条件等的注册表格。 他们实际上将DSL用于在线注册领域,而Concrete可以极大地改善该DSL的用户体验。 创建描述后,可以将其存储在数据库中,并且只要参与者访问注册平台以进行注册,Web应用程序便会对其进行解释。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值