Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Spoon is a metaprogramming library to analyze and transform Java source code. 🥄 is made with ❤️, 🍻 and ✨. It parses source files to build a well-designed AST with powerful analysis and transformation API.

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE-CECILL-C.txt
MIT
LICENSE-MIT.txt
Unknown
LICENSE-short.txt
NotificationsYou must be signed in to change notification settings

INRIA/spoon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maven CentralGHA tests Workflow StatusCoverage StatusMaintainability RatingReproducible Builds

Spoon

Spoon is an open-source library to analyze, rewrite, transform, transpile Java source code. It parses source files to build a well-designed AST with powerful analysis and transformation API. It supports modern Java versions up to Java 20. Spoon is an official Inria open-source project, and member of theOW2 open-source consortium.

Documentation

The latest official documentation is available athttps://spoon.gforge.inria.fr/.

Academic usage

If you use Spoon for academic purposes, please cite: Renaud Pawlak, Martin Monperrus, Nicolas Petitprez, Carlos Noguera, Lionel Seinturier. “Spoon: A Library for Implementing Analyses and Transformations of Java Source Code”. In Software: Practice and Experience, Wiley-Blackwell, 2015. Doi: 10.1002/spe.2346.

@article{pawlak:hal-01169705,  TITLE = "{Spoon: A Library for Implementing Analyses and Transformations of Java Source Code}",  AUTHOR = {Pawlak, Renaud and Monperrus, Martin and Petitprez, Nicolas and Noguera, Carlos and Seinturier, Lionel},  JOURNAL = "{Software: Practice and Experience}",  PUBLISHER = "{Wiley-Blackwell}",  PAGES = {1155-1179},  VOLUME = {46},  URL = {https://hal.archives-ouvertes.fr/hal-01078532/document},  YEAR = {2015},  doi = {10.1002/spe.2346},}

Professional support

If you need professional support on Spoon (development, training, extension), you are welcome to post a comment on#3251

Getting started in 2 seconds

Java version: Spoon version 10 and up requires Java 11 or later. Spoon 9.1.0 is the final Spoon release compatiblewith Java 8, and we do not plan to backport any bug fixes or features to Spoon 9. Note that Spoon can of course stillconsume source code for older versions of Java, but it needs JDK 11+ to run.

Get latest stable version with Maven, seehttps://search.maven.org/artifact/fr.inria.gforge.spoon/spoon-core

And start using it:

CtClassl =Launcher.parseClass("class A { void m() { System.out.println(\"yeah\");} }");

Documentation:

Contributing in 2 seconds

Create your first pull request to improve the documentation, seedoc! Proceed with your first bug fix! The community is open-minded, respectful and patient. All external contributions are welcome.

Design Philosophy

R1) The Spoon metamodel is as close as possible to the language concepts.

R2) The Spoon model of a program is complete and sound.

R3) The text version of a Spoon model is well-formed and semantically equivalent to the original program.

R4) The analysis and transformation API is intuitive and regular.

R5) Transformation operators are designed to warn as fast as possible about invalid programs. This is done either with static type checking or with dynamic checks when the operators are used.

R6) When feasible, the text version of a Spoon model is close to the original one.

Compiling

To compile Spoon, you need a Java Development Kit (JDK) and Maven:

git clone https://github.com/INRIA/spooncd spoonmvn compile

To run the tests:

mvn test

Download

Latest version:https://search.maven.org/remote_content?g=fr.inria.gforge.spoon&a=spoon-core&v=LATEST&c=jar-with-dependencies -Javadoc

Maven:

<dependency>    <groupId>fr.inria.gforge.spoon</groupId>    <artifactId>spoon-core</artifactId><!-- See rendered release value at https://spoon.gforge.inria.fr/-->    <version>{{site.spoon_release}}</version></dependency>

Releases

License

Spoon is Free and Open Source, double-licensed under the (CeCILL-C license - French equivalent to LGPL) and the MIT license.

JProfiler

Spoon is developed with the help of JProfiler, a Java profiler by ej-technologies GmbH. JProfiler supports the development of Spoon by providing its full-featured Java Profiler for free. We thank ej-technologies GmbH for this support.

JProfiler

Github Contributors

This list is generated bychore/generate-contributor-list.py. If you're not listed or you'd like to have your full name, please post to#3909.

  • adamjryan
  • Alcides Fonseca
  • Alexander Shopov
  • Aman Sharma
  • andrewbwogi
  • André Cruz
  • André Silva
  • Antoine Mottier
  • Anton Lyxell
  • argius
  • Arnaud Blouin
  • arsenkhy
  • Artamm
  • Artur Bosch
  • Arvid Siberov
  • aryan
  • Ashutosh Kumar Verma
  • aveuiller
  • Axel Howind
  • Benjamin DANGLOT
  • Benoit Cornu
  • Carlos Noguera
  • Ceki Gülcü
  • chammp
  • Charm
  • ChrisSquare
  • Christophe Dufour
  • Christopher Stokes
  • Clemens Bartz
  • Clément Fournier
  • César Soto Valero
  • Daniel Bobbert
  • Darius Sas
  • David Bernard
  • Didier Donsez
  • Diorcet Yann
  • Dorota Kopczyk
  • dufaux
  • dwayneb
  • dya-tel
  • Eddie T
  • Egor Bredikhin
  • Fabien DUMINY
  • Fan Long
  • fangzhen
  • fav
  • Favio DeMarco
  • Fernanda Madeiral
  • Filip Krakowski
  • Gabriel Chaperon Burgos
  • gibahjoe
  • GitHub Actions Bot
  • GluckZhang
  • Gregor Zeitlinger
  • gtoison
  • Guillaume Toison
  • Gérard Paligot
  • Hannes Greule
  • Haris Adzemovic
  • HectorSM
  • Henry Chu
  • Hervé Boutemy
  • Horia Constantin
  • I-Al-Istannen
  • intrigus-lgtm
  • jakobbraun
  • Jan Galinski
  • jon
  • Kai Luo
  • Lakshya A Agrawal
  • leventov
  • Lionel Seinturier
  • lodart
  • Lucas
  • Lukas Krejci
  • Luke Merrick
  • Marcel Manseer
  • Marcel Steinbeck
  • Martin Monperrus
  • Martin Wittlinger
  • MartinWitt
  • Matias Martinez
  • Maxim Stefanov
  • Maxime CLEMENT
  • Mehdi Kaytoue
  • Michael Täge
  • Mickael Istria
  • Miguel Sozinho Ramalho
  • Mikael Forsberg
  • Mr. Pine
  • Muhammet Ali AKBAY
  • Nicolas Harrand
  • Nicolas Pessemier
  • Nicolas Petitprez
  • Noah Santschi-Cooney
  • Olivier Barais
  • Ondřej Šebek
  • Patrick Schmitt
  • Pavel Vojtechovsky
  • peroksid90
  • Philippe Ombredanne
  • Phillip Schichtel
  • priyanka-28
  • Quentin LE DILAVREC
  • raymogg
  • Renaud Pawlak
  • Reza Gharibi
  • Rhys Compton
  • Rick Kellogg
  • Rijnard van Tonder
  • Rohitesh Kumar Jain
  • Roman Leventov
  • Ryota Hiyoshi
  • Sander Ploegsma
  • santos-samuel
  • scootafew
  • Scott Dickerson
  • Scott Pinwell
  • Sebastian Lamelas Marcote
  • Sergey Fedorov
  • Shantanu
  • Simon Larsén
  • Simon Urli
  • Spencer Williams
  • srlm
  • ST0NEWALL
  • Stefan Wolf
  • StepSecurity Bot
  • Sébastien Bertrand
  • The Spoon Bot
  • Thimo Seitz
  • Thomas Durieux
  • tiagodrcarvalho
  • Tomasz Zieliński
  • Urs Keller
  • Viktor
  • Vincenzo Musco
  • Wolfgang Schmiesing
  • Wouter Smeenk
  • Wreulicke
  • Yann Diorcet
  • Yogya Tulip Gamage
  • Zhang Xindong
  • Дмитрий

About

Spoon is a metaprogramming library to analyze and transform Java source code. 🥄 is made with ❤️, 🍻 and ✨. It parses source files to build a well-designed AST with powerful analysis and transformation API.

Topics

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE-CECILL-C.txt
MIT
LICENSE-MIT.txt
Unknown
LICENSE-short.txt

Security policy

Stars

Watchers

Forks

Languages


[8]ページ先頭

©2009-2025 Movatter.jp