问题标签 [rascal]

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

rascal - 在哪里可以找到在 M3 中实现接口的匿名类?

我正在使用 Rascal 通过 M3 模型检测多态类型(具有 > 1 个实现)。在 JHotDraw 6 ( http://www.jhotdraw.org/ ) 中,有一个org::jhotdraw::framework::ViewChangeListener仅由匿名类实现的接口,但 JHotDraw 的 m3 模型似乎不包含此信息。

返回一个空集。

|java+anonymousClass:///org/jhotdraw/standard/AbstractTool/createViewChangeListener()/$anonymous1|在 m3 模型中可以找到匿名类,但不识别为实现 ViewChangeListener 接口。

有没有可靠的方法来获取这些信息?

0 投票
1 回答
625 浏览

eclipse - Rascal Eclipse 库和插件异常(安装后)已更新

我刚刚为 RCP 和 RAP 开发人员安装了最新版本的 Eclipse,然后按照安装过程的所有步骤安装 Rascal。它运行正常,因为我尝试了 1+1 命令并得到了结果,但是我遇到了这个异常:

和eclipse配置:

然后,我有 2 个警告(问题):

第一的:

资源文件内容:bin.includes = META-INF/

第二:

资源文件内容:

在我的输出中我有这个警告:

我的 eclipse.ini 文件:

所以,我有2个问题。首先,我能做些什么来解决异常?第二个,这个异常会干扰 Rascal 的正常功能吗?(我是 TU/e - 软件进化课程的学生,我需要解决作业的异常吗?)

非常感谢!亚历克斯。

0 投票
2 回答
283 浏览

eclipse - 面向 RCP 和 RAP 开发人员的 Eclipse:Juno Service Release 2

我能够执行 Rascal 程序,但我只能通过打开透视来获得这种错误和警告的痕迹(我什至不知道这些错误是否相关)。有一个警告和两个例外。

0 投票
2 回答
590 浏览

java - 使用 Rascal 从 Eclipse 项目中提取类依赖项

我正在使用 Rascal 分析一个 Eclipse Java 项目并识别该项目中的类依赖项。更准确地说:A 类依赖于 B 类当且仅当 A 类有一个方法,该方法 (1) 使用 B 类型的参数或 (2) 使用 B 类型的局部变量。这里,我只对依赖感兴趣关系 A -> B,其中 A 和 B 都是项目中的类,并且都是不同的类。我已经从我的 Eclipse 项目中创建了一个 M3 模型,并且能够使用以下命令识别所需的参数(B 类):

在这里,我获得了我的 M3 模型的所有声明,过滤参数并使用@typeDependency我检索相应类型的注释(我不知道如何操作我在使用时获得的信息@types)。最后,我使用最后两个语句过滤掉所有类型与我的项目中的类无关的参数,例如 String 和 Integer 参数。由于我对 Rascal 很陌生,我想不出另一种方法来实现这一点。

我现在的问题是:如何为我的项目检索 B 类型的局部变量?与 结合使用该方案"java+variable"是不够的@typeDependency,因为这还包括类型为 Iterator 或 String 的变量,它们与我的项目中的其他类有依赖关系,我对这些类型的变量不感兴趣。此外,结果集包含变量,如

wherefield是该类中的全局变量。因此,b类本身存在类型依赖关系,我也想将这些从我的结果中排除。所以,我相信这@typeDependency并没有给我我需要的信息。

我发现这个相关的帖子似乎用 Rascal 处理局部变量,但它使用 AST 而不是 M3。我不确定如何在此设置中使用 AST(就像我说的,我只是 Rascal 的初学者)并且想知道是否可以使用 M3 来完成。我应该如何进行?

编辑:为了明确我想要实现的目标,我将举一个小例子。假设我的项目有两个类,Aand B,并B包含一些方法(methodB1, methodB2, ...)。此外,类A具有以下结构:

我希望能够检索的变量是importantVar,因为它是一个局部变量并且它是一个类型B(我的项目中的一个类)。我对someVar1和不感兴趣someVar2,因为它们是局部变量,其类型与我的项目无关。在我之前为参数提供的代码示例中,我使用最后两个语句过滤掉了这些类型。此外,我也对 不感兴趣someVar3,因为它具有类型A并且出现在同一类中。

我认为我应该能够检索我想要使用的局部变量@types,但我不确定如何。使用时@types,我得到一个TypeSymbol,并且我已经查看了此数据类型的定义以了解如何操作它。其中的大多数数据类型TypeSymbol都有一个名为 的位置decl,我知道如何操作它。然而问题是,我也收到了一些没有这个位置的类型,比如\int()\array(..)。在这些情况下,位置decl是未定义的。

0 投票
1 回答
233 浏览

java - M3 中的 classes()、fields() 和 methods() 函数记录在哪里?

我希望它们被记录在这里:http ://tutor.rascal-mpl.org/Rascal/Libraries/lang/java/m3/Core/Core.html ,因为这是你需要导入的包来获取它们,但是他们不在那里搜索他们的文档并不会产生太多结果。

0 投票
1 回答
144 浏览

eclipse - createM3FromEclipseProject 处的 IllegalArgumentException

使用 Rascal,我正在尝试创建另一个 eclipse 项目的 M3 模型。我尝试加载的java项目称为eLib,它是在eclipse中打开的,我也可以运行该项目。该项目位于我的工作区。但是,如果我在我的流氓控制台(在 eclipse 插件中)中使用以下命令:

我收到以下错误:

我希望你们中的一个可以帮助我。

0 投票
1 回答
188 浏览

rascal - 模式匹配解析错误

toString(TypeSymbol t, M3 m)当我遇到一个奇怪的解析器错误时,我正在编写一个小辅助函数。

该函数有很多语句,例如:

这些工作正常。int()但是,当我为or尝试相同的模式时void(),编译器会给出错误,特别是在=符号上。

0 投票
1 回答
101 浏览

java - 使用 Rascal 从 Eclipse 项目中提取静态字段

我正在使用 Rascal 分析一个 Eclipse 项目,我想知道是否可以检测某个字段是否被声明为static.like static int x;

我为我的项目创建了一个 M3 模型,并使用fields(model)我可以获得项目中存在的所有字段。

我希望能够static从该集合中提取任何字段(无需自己检查原始代码)。

这在 Rascal 中是否可能,如果可以,我该如何提取它们?

0 投票
1 回答
78 浏览

rascal - 流氓中的字符串大写

如何将流氓中的字符串大写?

在字符串库的文档中,我找不到任何将字符串大写的方法。

http://tutor.rascal-mpl.org/Rascal/Rascal.html#/Rascal/Expressions/Values/String/String.html

0 投票
1 回答
106 浏览

version-control - 流氓元模型

Rascal 元模型是否包括版本控制系统信息和 bug 跟踪器信息的表示,类似于Antoniol等人提倡的 FAMIX 。?