Groovy   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了groovy – 域模型的文本语法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一些以xml格式描述的域模型.鉴于域模型,我想生成工具,帮助测试人员/域专家在文本中表达数据(以及稍后的域特定测试框架). IDE支持是强制性的(IDEA或 eclipse).

说,我有这个伪模型

User
fn String 120 chars mandatory
ln String 120 chars mandatory
address not-mandatory

Address
street mandatory
city mandatory

典型的使用场景:

user opens the IDE
creates a new file
when content assist invoked,should give options 'user','address' etc

If I choose user,furthur ctrl-space should give 'fn','ln','address' as options.

我知道这可以通过xtext或jetbrains mps等来完成.但是,我想了解哪种技术可以满足以下要求.

>模型在运行时被提供给系统(新的,更新的,删除的等).
所以,我不能有静态的语法集.如何构造它以便在运行时解析模型/属性辅助或至少生成语法(可能是其中的一部分)
>当我使用一组’语法’时,如果我将目标服务器指向不同的版本(可能有不同的模型集),我希望编辑器验证我现有的文件标记错误.
>我以xml,文本或服务器查找方式获取数据文件.
>对我来说,将模型转换为其他格式或在java / groovy中解释它们非常重要.

对于前者,
我可能有以下数据文件

user {
fn : Tom
ln : Jill 
hobby : movies
}

但是,当我针对不知道’业余爱好’属性的服务器验证此文件时,我希望编辑器在该属性标记错误.

我计划为这个dsl​​ / toolkit添加更多功能.
任何提示哪种技术更合适?

谢谢

解决方法

我认为在您拥有(或可以创建)XML域模型的XML模式的条件下,Xtext可以满足您的要求.

如果我理解正确,您实际上并不需要针对每个XML数据模型的特定语法规则,而只需要交叉引用数据模型.

EMF支持从XSD文件生成EMF java类,如果使用自定义索引器(Xtext接口IDefaultresourceDescriptionStrategy)将Xxt索引添加到Xtext索引,Xtext可以引用符合XSD架构的XML文件.
因此,您可以为DSL创建具有语法等的普通Xtext项目,并使用引用XML域模型的交叉引用.

EMF使用URI来识别资源,所以如果你生成像我描述的Ecore模型,应该可以使用http://或file://(或者其他任何,它是可扩展的)URI或者你的东西来导入XML域模型内部解析为URI.

在这里,你可以选择制作一个解释器,一个Xbase推理器或一个生成器(每个都可以使用Xtend很好地实现),具体取决你的要求.

(免责声明:我是itemis的员工,这是Xtext的主要贡献者之一)

大佬总结

以上是大佬教程为你收集整理的groovy – 域模型的文本语法全部内容,希望文章能够帮你解决groovy – 域模型的文本语法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。