JavaParser:如何添加新的语言元素
我想创建一个Java transpiler,它将读取几乎所有的Java代码(称为JavaHash),并在另一端发出“纯”Java代码。特别是,我想在hashmap成员前面添加一个新标记,即hashtag“#”,这样我就可以像访问JavaScript哈希对象一样访问它:JavaParser:如何添加新的语言元素,java,javaparser,Java,Javaparser,我想创建一个Java transpiler,它将读取几乎所有的Java代码(称为JavaHash),并在另一端发出“纯”Java代码。特别是,我想在hashmap成员前面添加一个新标记,即hashtag“#”,这样我就可以像访问JavaScript哈希对象一样访问它: Map<String, String> foo = new HashMap<String, String>(); ... foo.put("name", "Roger"); ... String name
Map<String, String> foo = new HashMap<String, String>();
...
foo.put("name", "Roger");
...
String name = #foo.name;
mapfoo=newhashmap();
...
foo.put(“姓名”、“罗杰”);
...
字符串名称=#foo.name;
我无法让JavaParser执行任何操作,只能在“#”标签上抛出一个错误
有没有办法在解析令牌之前捕获它们?这绝非小事,但却是可行的 JavaParser基于,它用来生成解析器代码。然后,解析器使用代码模型类创建一个抽象语法树 如果要添加新的语言元素,则需要:
- 实现代码模型类李>
- 扩展用于解析器生成的语法
顺便说一下,JavaParser是构建您想要的东西的非常好的基础。恭喜你的选择,事实上,这是交易的一半。也许你会喜欢用kotlin来代替。它具有映射属性访问权限。