周末翻出三年前的杰作“jpy”,专为人工智能开发的dsl语言,不仅编译无法通过,而且一连串的疑问映入眼帘。这…这…这些文件/内容都是干啥的啊,为什么如此设计?
技术千万条,专研第一条,自嗨无笔记,迟早两行泪。自从有了Maven/Gradle,编译不通过真是家常便饭了。可能最后啥都不缺,也得是和最新IDE不匹配。最简单的做法还是全部从来吧,不就是搬一下代码吗!
说真的,我就是新建了一个空的工程,运用十年的搬代码功力,成功拯救了老项目。然后一切都顺利解决了,顺便还回想起之前的一些兜底(坑)方案,这可是核心技术。
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public JpWithOpenCall createJpWithOpenCall()
{
JpWithOpenCallImpl jpWithOpenCall = new JpWithOpenCallImplCustom();
return jpWithOpenCall;
}
下图,运行得还不错,已经能正常编译 jpy 代码,不仅输出了Java,而且得到了预期的结果。在接下来的日子,终于可以和大家一起探索 xText 了。想必,我工作上也是用不到该技术,但毕竟曾研究过2个月,把这些分享给有需要的人。
以下,正确输出的Java代码,以及运行的结果。其中,centipede是我实现的java版本的numpy。
在我分享之前,大家可以先去xText的官网看看 Xtext - Documentation