问题标签 [ceylon]

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 回答
120 浏览

java - Ceylon Typechecker:如何获取类型化的语法树?

我试图以编程方式使用/嵌入 Ceylon Typechecker 来分析 Ceylon 源代码。在这个用例中,我想访问编译器通常会使用的所有信息。但我不会编译,也不会添加对编译器的依赖。

在我看来, ceylon/typechecker/src/main/Main.java 中的 main.Main 入口点不是这个用例的合适入口点(获取类型树和附加模型),因为这个信息是访问者在三个检查通行证中收集的信息将被丢弃,仅打印错误。

所以,我的问题是:

如何对编译单元进行解析和类型检查,然后获取 1. 类型化语法树,以及 2. 分析访问者在树中遇到的类型的关联模型对象,这些对象从树中链接到。

编辑:

我对 3 种不同的 AST 存在(并且现在)有些困惑。

在 ceylon /ceylon.ast 的自述文件中说:

¨ ... ceylon.ast.core – 代表 Ceylon AST 的 Ceylon 类。纯锡兰(后端独立)。... ceylon.ast.redhat – 将 ceylon.ast.core AST 从 + 转换为 RedHat 编译器(ceylon-spec AST,还包含从代码字符串编译 ceylon.ast.core AST 的函数(使用 RedHat编译器)...¨。

所以有3个AST:1.antlr生成的,2.ceylon.ast.core,3.ceylon.ast.redhat。为什么?

0 投票
1 回答
168 浏览

java - 锡兰目录的 Jimfs 路径

我正在尝试在 Jimfs 文件系统中创建一个目录(使用锡兰的文件模块),但是在从锡兰访问文件系统时,我遇到了 Jimfs 提供程序未安装的问题。

这是我的测试程序:

运行时,打印以下堆栈跟踪:

关于如何安装该提供程序的任何想法?

我在 Linux 上运行 Ceylon 1.2.0,使用 JimFs 1.0(也测试了 1.1-rc1)并以“预期”方式(纯 java nio)使用 Jimfs 工作正常。

0 投票
1 回答
253 浏览

vert.x - java.lang.ClassNotFoundException: com.redhat.ceylon.compiler.java.runtime.tools.Options

使用 Ceylon IDE 1.2.1 和 Vert.x 3.2.1:

模块有

作为 Ceylon Java 应用程序运行,结果:

有任何想法吗?我不记得 1.2.0 Ceylon IDE 版本中的任何内容,所以我猜那里有变化。Vert.x 3.2.0 给出了同样的错误。

0 投票
3 回答
83 浏览

ceylon - 直接实现接口时的快捷语法

是否有可能以这样的方式实现锡兰类型检查器,即直接满足接口的类(成员签名中的类型与被满足的接口中的类型相同)可以省略其自己的成员签名中的类型?

这将有助于通过将所有元信息(类型、注释)移动到界面来减少实现站点的视觉混乱。它有助于专注于实现细节。

这将接近 ocaml 中的签名文件。

它可以帮助说得更多,更清楚。

在 Lukas Werkmeister 给出答案后编辑:

我想要的是一种快捷语法,它不仅适用于属性,也适用于方法。

查看 Person 类中的“name(x)”:

0 投票
1 回答
66 浏览

generics - 使用 Ceylon 在命名构造函数中指定泛型类型

我在锡兰有以下代码:

现在,当我尝试使用fromResult这样的 Exception 实例来使用构造函数时:

我收到以下错误:

返回的表达式必须可分配给地图的返回类型: Try<Exception>.fromResult不可分配给Try<MappingResult>

0 投票
2 回答
57 浏览

ceylon - 运行锡兰教程代码时出错

我正在关注这个教程,它给了我这个代码:

但它给了我这个信息:

参数必须可分配给 parseFloat 的参数字符串:String? 不能分配给 String

我已经复制/粘贴了这段代码,但仍然是相同的消息。

0 投票
2 回答
69 浏览

packaging - 如何在锡兰创建一个 uber jar

我有一个锡兰项目。我想将它分发到一个包含所有依赖项的 uber jar 中,以便可以通过简单的方式执行它

这在锡兰可行吗?

0 投票
1 回答
147 浏览

spring-boot - 在 Spring Boot 应用程序中使用 Ceylon 类

是否可以在 Spring Boot 应用程序中使用 Ceylon 类?那会是什么样子 - Ceylon 类作为单独的依赖项,或者它们可以在同一个项目中?

我遇到了一个特别棘手的 Java 问题,它真正受益于具体化的泛型和没有类型擦除。但是,我首先用 Java 编写它的主要原因是因为我想利用 Java 库与事物进行交互。如果可能的话,我不想再学习解决问题所必需的锡兰。

0 投票
2 回答
54 浏览

module - 在 Ceylon 中使用模块

我正在检查锡兰。我想玩 HTML 模块,但不知道如何导入它。恕我直言,关于模块的文档并没有解决这个简单的任务。

谢谢吉拉德

0 投票
1 回答
98 浏览

metaprogramming - 锡兰的运行时元编程

我使用 eclipse ide 从以下代码片段中得到了意想不到的结果:

广告 1.) 结果我得到:

我期望包含属性或方法的列表。

广告 2.) 医生说:

“type() 函数将返回给定实例的封闭类型,它只能是 ClassModel,因为只能实例化类。......”

但是我找不到 type() 函数和其他与元编程相关的函数,即我没有得到工具提示,而是得到一个运行时(!)错误:

那么,作为函数的反引号 `Example`.... 的等价物在哪里?