问题标签 [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 投票
1 回答
143 浏览

xtext - 在 XbaseCompiler 中导入自定义类

我正在使用 XBase 编写 DSL,并且添加了一个新的解析器规则,该规则XExpression在语法中返回一个:

并将适当的函数添加到XbaseTypeComputer子类:

现在我正在尝试将方法添加到 XbaseCompiler 子类:

FileDataset我的语言 API 中的自定义类在哪里。如何让这个类出现在生成文件顶部的导入中?

目前,当我用我的语言(在运行时 Eclipse 中)创建一个新文件时,生成的 Java 文件包含FileDataset变量声明,但它下面有一条红色波浪线和错误“FileDataset 无法解析为一种类型”

0 投票
1 回答
114 浏览

java - 可以在 xBaseJ 中使用 IDX 索引吗

我有带有 IDX 索引文件的 DBF。看起来 xbase 本身可以处理它们,但看起来还没有在 xbasej 中为它编写一个类。有没有人在 xbasej 中使用过 IDX 文件,或者可以做到吗?

参考xbase: http ://www.clicketyclick.dk/databases/xbase/format/idx_comp.html

0 投票
1 回答
305 浏览

java - 在 ScopeProvider 中调用引用的对象时出现错误“检测到循环链接”

我目前正在为我的 Xtext dsl 实现交叉引用。一个 dsl 文件可以包含多个 XImportSection,在某些特殊情况下,一个 XImportSection 不一定包含所有导入语句。这意味着我需要自定义“XImportSectionNamespaceScopeProvider”来查找/构建正确的 XimportSection。在实施过程中,我发现了编辑器的意外行为和/或一些验证。

我使用以下 dsl 代码来测试我的实现:

dsl源代码由以下语法规则描述(不完整!):

为了提供更好的工具支持,aModifiesUnit引用了被修改的类。这个 Xtext 特定的实现支持到类的超链接。

我目前正在开发定制的 XImportSectionScopeProvider,它为ModifiesUnit. 默认实现包含一个方法protected List<ImportNormalizer> internalGetImportedNamespaceResolvers(EObject context, boolean ignoreCase),假设源文件中只有一个类元素。但是对于我的语言来说,可能不止一种。出于这个原因,我必须自定义它。

我现在的想法是以下实现(使用 Xtend 编程语言):

在我开始这项工作之前,参考工作正常,没有发生任何意外。我现在的目标是构建一个定制的 XImportSection,ModifiesUnitXbase 使用它来解析对 JVM 类型的引用。为此,我需要引用的 XImportSection 的副本ClassOrInterface。要访问 XImportSection,我首先调用ModifiesUnit.getUnit(). 执行此调用后,编辑器立即显示意外行为。导致错误的最小实现如下所示:

在这里,我不知道内部发生了什么!但它计算一个错误。编辑器在 (1) 处的限定名称上显示以下错误:“检测到循环链接:ModifiesUnit.unit->ModifiesUnit.unit”。

我的问题是:这是什么意思?为什么 Xtext 会显示此错误?如果我访问引用的对象,为什么会出现?

我还在那里发现了一件奇怪的事情:在我的第一种方法中,我的代码抛出了一个NullPointerException. 好的,我试图通过打印 object 来找出原因ci。结果是:

好吧,好像是这个方法执行了两次,Xtext解析了第一次和第二次执行之间的代理。只要收到的对象是正确的,对我来说就可以了。我用 if-instanceof 语句处理它。

但是为什么我在那里得到两个参考?它是否依赖于仅是 ClassDeclaration (2b) 的抽象超级规则的 ParserRule ClassOrInterface (2a)?但是为什么 Xtext 不能解析 ClassOrInterface 的引用呢?

0 投票
1 回答
201 浏览

lambda-calculus - 访问块和 Y 组合器内的外部变量

我希望你们一切都好。我正在 Harbor 中实现定点Y 组合器,但遇到了一些麻烦。嗯,Y 组合器可以通过lambda 演算定义为:

Y = (λh.λF.F(λ x.((h(h))(F))(x))) (λh.λF.F(λ x.((h(h))(F))(x)))

我正在尝试通过性能问题应用 Y-combinator 的记忆。我目前的实现是:

基本上,我不能在块内使用语句,但我可以使用表达式,它工作得很好。我正在避免无限递归和从 0 到无限的限制。

直到这个时候,它编译得很好,但是当我试图访问一个外部块的变量时,Harbor 把我踢到了脸上!

为了测试 Y 组合器的实现,我尝试应用斐波那契序列的简单实现,但是当我返回一个接收参数G的块并隐式返回一个接收参数的块时,对我N来说G变得不可用并且编译器告诉我“外部代码块变量遥不可及”。

这也可以让我咖喱块。我的问题是:如何在 Harbour 中访问块内的外部变量?

0 投票
1 回答
234 浏览

abstract-syntax-tree - 以编程方式实例化 Xbase XExpressions

我正在开发一个使用部分 Xbase 语法的 Xtext 项目。在我的代码中,我正在分析 DSL 程序以生成一些 Java 代码。使用将现有XExpression代码转换为 Java 代码很容易,XbaseCompiler但这不是我需要的。相反,我需要生成一个不同的程序。

目前我只是生成Java 代码(即构造一个字符串)。我想做的是构建一个新的XExpression,甚至可能使用原始的部分,然后将其编译为 Java。

不同XExpression的 s 有零参数的构造函数,所以我尝试实例化一个,甚至设置一些属性。但是编译器崩溃了,我无法确定它缺少哪些属性。

0 投票
0 回答
240 浏览

oop - OOP - 可视对象:VO 是否支持 C#/Java 接口等接口(用于策略设计模式)?

我是一名 C#/Java 开发人员,在我的新工作中,我们有一个使用 Visual Objects 开发的遗留系统(VO,来自 Computer Associates——粗略模式:VO = OO-Clipper),我需要修复一些模块并实现这里有一些模式(即:策略模式)(VO 是一种面向对象的语言)。但是,我有 VO 2.5 参考手册,但我找不到任何对“接口类”的引用,就像我们在 C# 和 Java 上的那样:

VO参考手册说它支持多态和继承,但没有提到接口,泛型或其他。

我知道这种语言已经很老了,但是这个遗留系统仍然在生产中,并且有几个客户每天都在使用它。正在用 C# 开发一个新版本,但我们需要保留旧版本。

有谁知道VO是否支持接口,或者如果不支持,如何开发类似的东西(接口和实现这些接口的类)?

先感谢您。

0 投票
1 回答
134 浏览

java - Java 中需要 Clipper bin2i 和 i2bin

我正在将一个好的旧 Clipper xbase 程序转换/迁移到 Java。由于旧程序仍在运行,因此在将 Java 中的数据写入数据库时​​,我需要兼容。它工作得非常好,直到现在。

为此,我需要 Clipper 中的 i2bin 和 bin2i 函数在 Java 中运行。

有关 i2Bin,请参见此处:http: //www.marinas-gui.org/projects/harbour_manual/i2bin.htm

我可以通过以下方式读取剪裁器写入的 i2bin 数据:cData 是一个字符串,其中包含在第一个 char 之后编码为 char 的 int:

但我无法在 Java 中编写正确的 int 编码为 char。所以我得到了一个

我得到一个 '\b' 但只有一个字符。裁剪器函数 bin2i 无法正确解释它。如果我在字符上添加一个空格

我得到了 bin2i 的正确长度,但它不再是长度 8。也许它是通过 Ascii 32 编码的?

无论如何,我怎样才能做到正确?

问候,彼得

0 投票
2 回答
1404 浏览

python - 如何使用 dbf 模块更新记录

如何使用 dbf 模块更新 dbf 中的记录:https ://pypi.python.org/pypi/dbf

这是我尝试过的:

但我得到:

我设法读取和附加但不修改数据,我该怎么做?

0 投票
1 回答
778 浏览

java - 从 Java 模型生成带有 XText 的 DSL 文件

我最近开始使用 XText。至此我已经能够定义一个简单的语法,完成JvmModelInferrer并生成对应的java类和.java文件。

是否可以从一组自定义 Java 类中自动生成 DSL 文件(考虑到其语法)?

让我举一个简单的例子。

我有以下语法:

如果我有以下sample.myDsl

我得到 Book.java 和 Author.java 文件。在我的项目中,我有一个处理器可以分析 java 文件并从中创建对象,所以如果我在以前的 Book.java 和 Author.java 上运行处理器,我会得到两个自定义实体 java 类型的实例。每个 Entity 实例都有一组 Property 实例。因此,Java 模型与 xtext 语法非常相似。

是否可以将这两个对象“提供”给 XText,或者定义一个推断器来指定翻译,并考虑到相同的 .xtext 语法文件,自动生成一个 .myDsl 文件?

0 投票
1 回答
2377 浏览

autocomplete - Notepad++ 自定义语言调用提示自动完成

我正在尝试在 Notepad++ 中为Alaska XBase++语言设置 calltips 功能,但我无法让它工作。

我阅读了 Npp 的如何编辑配置文件,我制作了一种名为alaska的用户定义语言,并创建了alaska.xml文件并将其放入.\plugins\APIs中。

这是我尝试的 XML 代码:

我在代码中或代码之外有什么遗漏吗?除了将文件放入.\plugins\APIs之外,我是否必须以某种方式安装它?我还尝试在用户定义的语言窗口中将sample定义为关键字,而在 calltip (作为函数)中没有结果。

PS:我确保在Settings->Preferences中启用了自动完成选项(实际上它适用于内置语言),并且我将alaska设置为当前使用的语言(并且我得到了在样式配置中配置的示例格式)