C/C++教程

Code transformation With Spoon Presentation

本文主要是介绍Code transformation With Spoon Presentation,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题

代码转换需要越来越多的库

  • JDT
    • 用于Eclipse相关开发
    • read, generate, analyse and transform source code
    • API和meta model难以理解
  • APT(Annotation Processing Tool)
    • SUN,之后由Oracle开发
    • 在开源软件中广泛使用,现代化
    • meta model受限, 不能进行代码转换

Spoon介绍

  • 更完善的meta model
  • Processor: 一次程序分析由查询和分析代码组成。在Spoon中,这一对概念在processor中实现。Processor是专用于分析一种编程元素的类。
  • Factory: 创建新的程序元素,为其赋值并添加到已存在的AST上。Factory是以上功能的入口,每个factory有其自己的职责。比如CoreFactory创建空节点,CodeFactory创建一个可以打印的节点
    https://fr.slideshare.net/GrardPaligot/code-transformation-with-spoon 48开始,直观对应program elements和meta model。
  • Template: template可用于代码转换。这些模板会进行静态类型检查,保证生成的代码是正确的。相比于使用Factory,模板可以大量简化代码
  • Query: 对于给定的AST,通过一系列filter来进行复杂的查询。

Spoon的基本用法

final SpoonAPI spoon = new Launcher();
spoon.addInputResource("/src/main/java/");
spoon.setSourceOutputDirectory("/target/");
spoon.addProcessor(new AwesomeProcessor());
spoon.run();

最后给了些练习,略过

这篇关于Code transformation With Spoon Presentation的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!