我正在寻求开发一种工具,该工具将采用以下格式的简化代码:
MyObject
{
[Get, Construct]
String name;
[Get, Construct]
String description;
[Get, Set]
Boolean isAlive;
}
并且会输出 java/C# 代码,例如:
public class MyObject {
public MyObject(
String name,
String description) {
this.name = name;
this.description = description;
}
public String getName() {
return this.name;
}
public String getDescription() {
return this.description;
}
public Boolean getIsAlive() {
return this.isAlive;
}
public Boolean setIsAlive(
Boolean isAlive) {
this.isAlive = isAlive;
}
private String name;
private String description;
private Boolean isAlive;
}
这样做的目的基本上是让我的生活更轻松,因为我最近所做的很多事情都是制作简单地反射(reflect)我们项目逻辑模型中事物的对象。
我已经知道如何编写输出,但我只是想知道;
A)是否有任何工具可以做这种事情? B) 是否有任何库(C# 或 java 中的)对解析输入语言有用?我知道它是一种自定义语言,但它与 C# 有很多相似之处。我想知道是否有什么可以节省我的时间?
最佳答案
我在 Xtext 上获得了很多很好的经验,Xtext 是一个官方的 Eclipse 项目。它具有许多开箱即用的有用功能,拥有相当活跃的社区,易于扩展/可定制并且记录良好。 Xtext 根据语法定义生成自定义 DSL 环境,并支持针对 eclipse 本身、intellJ 和 Web 环境 - 更多信息:https://eclipse.org/Xtext/
此外还有https://www.jetbrains.com/mps/它针对同一问题提供了类似的解决方案。一个亮点可能是投影编辑。
这两种工具都在另一个抽象级别上工作,例如使用 ANTLR 并提供许多解决方案,包括创建针对您的个人目标语言的自定义生成器以生成例如代码 - 一旦您进入并且它符合您的要求,它将使您的生活变得更轻松。
关于java - 如何轻松解析自定义编程语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207756/