gpt4 book ai didi

c++ - 在 Xtext 语法/DSL 中引用 C++ 类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:58:48 26 4
gpt4 key购买 nike

我花了好几天时间想出一个在 Xtext DSL 中引用 C++ 类型的解决方案。至此,我已经非常熟悉 Xtext/Eclipse 引用 Java/JVM 类型的机制。

大概要执行类似于 JVM 导入机制的操作,我必须将现有(可能非常大)的 CDT 索引保存为 Ecore,并将该 Ecore 导入到我的 Xtext 语法中。

我正在考虑的另一种选择是对现有 CDT 索引进行一些编程 Hook 。看起来这个选项可能更困难,因为它可能涉及更多自定义代码来实现。

有没有人在 Xtext 语法/DSL 中发现并成功实现了 C++ 类型的引用?有什么例子吗?有更好的解决方案的建议吗?就此而言,我提出的任何一个解决方案是否合理/可行?

谢谢。

最佳答案

要真正能够在 Xtext DSL 中引用 C++ 或任何非 Xtext 元素,您必须将可引用元素放入 Xtext 的索引中。

正确的做法是拥有一个包含 CDT 索引的 IAllContainerState 并为每个 C++ 文件创建一个 IResourceDescription。 CDT 索引应包含有关所含资源、类型和名称的信息,这可以映射到范围章节中描述的概念:https://eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping

GenericResourceServiceProvider 可用于 C++ 资源的 IResourceServiceProvider。

查看 org.eclipse.xtext.resource.generic 包以及它如何用于索引 .ecore 模型。

关于c++ - 在 Xtext 语法/DSL 中引用 C++ 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com