ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Code transformation With Spoon Presentation

2022-01-26 02:04:48  阅读:198  来源: 互联网

标签:Code 代码 spoon Factory Spoon meta model 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,代码,spoon,Factory,Spoon,meta,model,Presentation
来源: https://www.cnblogs.com/N3ptuner/p/15845220.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有