Menu “想要”;菜单“;示例——Pico演示失败
在为我正在编写的DSL寻找“菜单”的工作示例时,我尝试了“Pico”。但以下几点失败了:Menu “想要”;菜单“;示例——Pico演示失败,menu,rascal,Menu,Rascal,在为我正在编写的DSL寻找“菜单”的工作示例时,我尝试了“Pico”。但以下几点失败了: rascal>import demo::lang::Pico::Plugin; |plugin://rascal_eclipse/src/org/rascalmpl/eclipse/library/demo/lang/Pico/Plugin.rsc|(1791,48,<71,6>,<71,54>): The called signature: action(str, void
rascal>import demo::lang::Pico::Plugin;
|plugin://rascal_eclipse/src/org/rascalmpl/eclipse/library/demo/lang/Pico/Plugin.rsc|(1791,48,<71,6>,<71,54>): The called signature: action(str, void (...)),
does not match any of the declared (overloaded) signature patterns:
Menu = action(str,void (Tree, loc))
Menu = action(str,void (str, loc))
rascal>import-demo::lang::Pico::Plugin;
|plugin://rascal_eclipse/src/org/rascalmpl/eclipse/library/demo/lang/Pico/Plugin.rsc|(1791,48,,):被调用的签名:action(str,void(…),
不匹配任何已声明(重载)的签名模式:
菜单=动作(str,void(Tree,loc))
菜单=动作(str,void(str,loc))
如果我注释掉“Plugin.rsc”的第71-73行,它会成功加载,但当然我没有“菜单”。有人能给我指出一个解决方案(不需要太多Eclipse或Java专业知识:)或一个不同的“菜单”工作示例吗
谢谢
我的环境:
流氓:(我不知道怎么打印这个版本,但是其中一个
文件是
rascal_eclipse_0.7.3.201506091957.jar)
Eclipse:适用于RCP和RAP开发人员版本:Mars发行版(4.5.0)
Java:version“1.8.0_51”操作系统:Linux Mint 17 Qiana
弹出菜单可以添加为您的注册语言的贡献,使用
弹出窗口(菜单)
构造函数。创建所需的贡献后,调用提供构造的贡献
数据类型的registerContribution(..)
(在util::IDE中定义)函数
例如,在Pico中,贡献定义如下:
public set[Contribution] Pico_CONTRIBS = {
popup(
menu("Pico",[
action("Evaluate Pico program", evalPicoProgram),
action("Compile Pico to ASM", compilePicoProgram),
action("Show Control flow graph", visualizePicoProgram)
])
)
};
evalpico程序
、compileepioprogram
和visualizePicoProgram
的签名为
public void _name_(Tree x, loc selection) {
...
}
最终,将使用以下代码注册捐款:
registerContributions("Pico", Pico_CONTRIBS);
在Pico示例中,注册的菜单包含类型错误的操作构造函数。这确实是流氓的一个错误。动作构造函数的签名在过去发生了变化,Pico插件模块没有相应地更新
我做了必要的修改,应该在Rascal最新的不稳定版本中修复。也许你可以在这里复制Pico代码,只是为了完整性