0

我正在尝试将Spoon representationJava 代码转换为其他代码;让我们说一个JSONXML表示或进入其他Java model

我不知道如何以及从哪里开始。

  • 我是否必须为 Spoon 元模型processor的每一片叶子编写一个(要编写很多处理器)?
  • 我是否必须编写一个处理器来分析每个并具有自上而下的方法(其中将包含大量instanceof检查)?
  • 我必须写一个Scanner基于树的表示吗?

最后一个问题:当转换一个元素(比如说 a )时,如何以一种独特的方式CtIf识别它的父元素(a )?CtBlock

假设它将输出以下内容:

[
  {
    type: block,
    id: ???,
    ...,
  },
  ...,
  {
    type: if,
    parent: ???, (the block above)
    ...,
  }
]

我有点迷茫,需要一些帮助:) 谢谢!

4

1 回答 1

1

最简单的方法是实现自定义漂亮打印机(查看https://github.com/INRIA/spoon/blob/master/src/main/java/spoon/reflect/visitor/DefaultJavaPrettyPrinter.java)和通过覆盖将其传递给启动器。

于 2017-04-20T14:08:45.630 回答