问题标签 [xbase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
121 浏览

inner-classes - 使用 Xtext、Xbase 和 JvmModelInferrer 从内部类引用包含类

我在使用 Xtext、Xbase 和 Java 模型推断器从内部类引用容器类时遇到问题。为了突出我的问题,让我首先演示一个工作示例(源自Bettini使用 Xtext 和 Xtend 实现特定领域的语言),我称之为松散语法。从某种意义上说,实体可以继承任何 Java 类(而不是只有实体)并且属性由任何 Java 类(而不仅仅是实体)类型化,这是松散的。

这个问题只涉及将这个语法收紧到实体。

感谢对带有 Xtext 和 XBase和Xbase 的语法限制 JVMModelInferrer 继承的答案:未识别生成的内部类中的字段,作为自己的文件中的类没有问题,我可以完美地实现这一点,除非在内部类引用包含类的情况下。这个问题只是关于内部阶级的情况。

下面的 JvmModelInferrer 完美地为模型伪造了一个类,实体作为内部类,它们本身可能包含内部类。所有生成的内部类都是静态的。

例如,实例

正确推断

现在考虑下面的语法紧缩。

我添加的模型推断器基于Xbase:生成的内部类中的字段无法识别,作为自己文件中的类没有问题,辅助方法

并将 forgeEntities 方法更改为

对于同一个模型(虽然现在可以收紧参考)

生成以下内容。

虽然 A、B 和 C 的一切都按预期工作,表明“$”正在工作,但 D 类失败。不同之处在于内部类是指它的包含类。这是过程失败的时候。D 对 J 的扩展和从 myD 到 K 中的 D 的引用都不起作用。

虽然我可以解决这个问题,但使用命名约定显式外部化内部类并更改名称/范围?提供者,我想知道是否有一个简单的解决方案。

0 投票
0 回答
21 浏览

xtext - 根据变量名动态调用方法

我目前有一个带有一些方法名称的生成 XBase 对象:

get_0(), get_1(), get_...(),get_50()

现在我想用循环而不是 50 行来调用它们,就像这样

如何在 XBase/XText 中实现这一点?

0 投票
1 回答
227 浏览

xbase - 如何向现有 xBase 文件/表添加新字段/列

我正在开发旧版桌面应用程序。它是使用 Alaska 软件的 Xbase++ 编写的。我只是想向现有的 db 文件添加一个新字段,但我找不到任何有关如何执行此操作的文档。

我看过 https://harbour.github.io/doc/http://www.ousob.com/ng/clguide/index.phphttps://en.wikibooks.org/wiki/Clipper_Tutorial:_a_Guide_to_Open_Source_Clipper (s) , http://www.alaska-software.com/support/kbase-old.cxp没有任何运气。记录的所有内容都是关于从头开始创建一个新的 db 文件。甚至可以修改数据库文件结构吗?

0 投票
2 回答
91 浏览

interpreter - Xbase 解释器:无法访问实例上的字段:null

我正在测试使我的 dsl Jvm 兼容的想法,并且我想测试扩展 Xbase 和使用解释器的可能性。我试图制作一个与解释器一起使用的最小测试项目,但我遇到了运行时错误。我想我了解适应 Xbase 的一般概念,但不确定解释器的设置/入口点如何,并且找不到有关我遇到的错误或如何解决的任何信息。以下是我的情况的相关文件:

文本.xtext:

TestJvmModelInferrer:

测试用例:

部分堆栈跟踪:

0 投票
1 回答
124 浏览

dsl - 如何使用 jvmmodelInferrer 在 xtext 中生成的 java 文件中添加自定义导入语句?

我已经在 xtext 中为我的领域特定语言编写了一个语法,并且我正在使用 jvmmodelInferrer 来生成 java 代码。我可以生成字段和自定义方法,但是如何在生成的 java 文件中添加自定义导入语句,如“import java.util.*”,而无需用户显式编写导入语句?

0 投票
1 回答
367 浏览

eclipse - 解决 xText 中的左递归问题

我目前正致力于在 xText 中创建 DSL,但我偶然发现了一个可能与歧义或左递归问题有关的问题。我不确定这两个问题中的哪一个适用于我的案例(我在网上找到的类似主题也提到这些问题通常看起来相关)但我想这与左递归有关。

在我的 DSL 代码的第 100 行,我声明了一个名为 Expression 的规则。如您所见,它聚合了多种其他类型(它们又聚合了多种其他类型,最终也可以聚合称为 Factor 的类型(第 130 行))。最终,整个“聚合树”归结为这种因子类型的问题。如您所见,这种类型可以再次聚合一个表达式。所以有一个循环;Expression 类型最终可以包含一个 Factor 类型,然后 Factor 类型可以再次包含一个 Expression 类型(之后这个循环理论上可以无限继续;我想这就是问题所在,因为 xText 使用的 ANTLR 解析器不是为此而设计的一种递归)。我试图通过在表达式类型中使用句法谓词(=> 符号)来解决这个问题(参见

但它仍然无法正常工作。我确定它与 Expressions 和 Factor 类型之间的关系有关(因为如果我不在 Factor 类型中添加 Expression 类型,DSL 就可以正常工作)。我假设我没有将句法谓词放在正确的位置。我考虑的另一个解决方案是使用左因子分解,但我不知道在这种情况下如何应用左因子分解。我很好奇你对这个问题的看法。

0 投票
0 回答
39 浏览

xtext - 嵌入到另一个 Xtext DSL 中时,Xbase 表达式无法完成

我正在构建一个 Xtext DSL,我想在某些特定位置嵌入 Xbase 表达式,以使用 Xbase 解释器解释我的部分模型,但我无法在生成的编辑器中完成方法。

我重用了此处提供的示例:https ://www.eclipse.org/Xtext/documentation/201_sevenlang_introduction.html ,并设法将 Xbase 集成为我的语法的一部分。关键字完成建议工作正常(即do,,for... while),但我找不到完成 Java/Xbase 方法(例如newArrayList,或myArray.add(X))的方法。 下面的评论澄清:如果我var x = newArrayList在编辑器中编写该方法不是斜体样式,但我也没有任何错误。

这是我正在使用的语法的示例版本:

我发现如果我将语法更改为以下语法,我可以按预期完成:

我的猜测是所有的树都必须由 XExpression 的实例组成才能完成,但我不明白为什么?对我来说Test不应该是XBlockExpression(在我的实际用例Test中有额外的属性/引用)的子类,但它应该包含一个XBlockExpression.

有没有办法做到这一点?任何帮助/资源都将不胜感激

注意 我已经检查了这个 SO 问题How to embed XBase expressions in an Xtext DSL,我已经xbase.lib在我的构建路径中。

0 投票
1 回答
381 浏览

c# - 我可以在 win32 应用程序中使用 WPF 吗?

我们公司在 Alaska Xbase++ 有一个软件。我想用 WPF 使 GUI 现代化,而不用 C# 重写软件。在这种 Alaska Xbase++ 语言中,我可以调用 C/C++ 函数。我相信,可以创建混合 DLL,它具有托管代码,但可以从非托管语言调用,因此可以进行 stdcall。

所以我的计划是我编写一个包装 DLL,它管理所有的东西来创建一个 WPF 窗口和控件(和 eventloop,一切)。在这个 Alaska Xbase++ 语言中,我会调用这个包装 DLL 来在我的应用程序中创建 WPF 窗口和控件。

例如: -WpfWrapper.DLL 在 C# DLL(或从 Xbase++ 应用程序监听数据的应用程序)中:

C# DLL 做“WPF 的事情”。

-在阿拉斯加 Xbase++ 语言中,我有一个主窗口。但我想现代化 GUI,我想在那个旧的 Win32 应用程序中创建一些 WPF 窗口,所以我调用 DLL:

这只是我的想法..也许还有其他方法。但我想知道是否可以以任何方式将 WPF 窗口和控件集成到旧的 Win32 应用程序中?我相信它确实如此,无论是通过一些包装 DLL 还是通过一些包装应用程序。

请给我一些指导这是如何工作的。在我的旧应用程序中创建的 WPF 窗口必须处于焦点位置,并且位于其他窗口之上。我有我的主窗口的 HWND,我相信它是必要的。

0 投票
0 回答
41 浏览

php - 在 TIPClientHttp 类的 Open 方法之后读取的响应中,最初的 3 个字节是什么意思?

当我在打开 TIPClientHttp 类之后调用 Read 方法时,我从 PHP 页面获得了一个 JSON 字符串。但是,我注意到在所需数据之前出现了三个字节的奇怪字符。这发生在一个 URL 和另一个没有。

我正在使用 Project Harbor 3.2 的 xBase 语言的 HBTIP 示例来尝试使用用 PHP 开发的 REST API。我为这个问题找到的解决方案是通过调用 Substr 函数来抑制这三个初始字节。但我想更好地了解原因。也许我不知道如何正确使用该方法。也可能问题出在 API 中。

我的代码中出现问题的示例摘录:

0 投票
1 回答
81 浏览

xml - 如何生成超级 XML 节点

我有以下 XML 片段:

我想从这些生成一个超级 XML 节点topics,以便最终输出是一个单一topic的元素,其中元素按属性、元素名称和值分组:

实现这一目标的最佳方法是什么?我可以使用 XQuery 吗?我一直在玩http://basex.org/但运气不佳。