1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-inria-spoon

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Maven Центр Статус рабочего процесса GHA тестов Статус покрытия Рейтинг поддерживаемости Переобходимость сборок

Spoon

Spoon — это открытая библиотека для анализа, переопределения, преобразования и транспиляции исходного кода на Java. Она парсит исходные файлы для создания хорошо спроектированного дерева разбора с мощными API для анализа и преобразования. Поддерживает современные версии Java до Java 20. Spoon является официальным проектом открытого программного обеспечения INRIA и членом консорциума открытого программного обеспечения OW2.

Документация

Последняя официальная документация доступна по адресу https://spoon.gforge.inria.fr.

Академическое использование

Если вы используете Spoon в академических целях, пожалуйста, цитируйте: Renaud Pawlak, Martin Monperrus, Nicolas Petitprez, Carlos Noguera, Lionel Seinturier. "Spoon: Библиотека для реализации анализов и преобразований исходного кода на Java". В журнале Software: Practice and Experience, Wiley-Blackwell, 2015. DOI: 10.1002/spe.2346.``` @article{pawlak:hal-01169705, TITLE = "{Spoon: Library for Implementing Analyses and Transformations of Source Code in Java}", 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 with Spoon (development, training, extension), you can leave a comment at the following address: https://github.com/INRIA/spoon/issues/3251

## Get Started in 2 Seconds

> **Java Version:** Spoon version 10 and above requires Java 11 or later. The latest Spoon version compatible with Java 8 is 9.1.0, and we do not plan to backport bug fixes or new features to Spoon 9. Note that while Spoon may require JDK 11+, it still supports processing source code for older versions of Java.

Get the latest stable release via Maven, see <https://search.maven.org/artifact/fr.inria.gforge.spoon/spoon-core>

And start using it:

```java
CtClass l = Launcher.parseClass("class A { void m() { System.out.println(\"yeah\");} }");

Documentation:


Создайте свой первый pull request для улучшения документации, см. [doc](https://github.com/INRIA/spoon/tree/master/doc)! Начните исправление первого бага! Сообщество открыто, уважительно и терпеливо. Все внешние вклады приветствуются.

## Философия проектирования

R1) Метамодель Spoon максимально приближена к концепциям языка.

R2) Модель программы Spoon полна и звучит правильно.

R3) Текстовая версия модели Spoon хорошо оформлена и семантически эквивалентна исходной программе.

R4) API анализа и преобразования интуитивно понятен и регулярен.

R5) Преобразовательные операторы спроектированы так, чтобы как можно быстрее предупреждать о недействительных программах. Это делается либо через статическую проверку типов, либо через динамическую проверку при использовании операторов.

R6) Когда это возможно, текстовая версия модели Spoon максимально приближена к исходной программе.

### Компиляция

Чтобы скомпилировать Spoon, вам необходим Java Development Kit (JDK) и Maven:

git clone https://github.com/INRIA/spoon cd spoon mvn compile


Чтобы запустить тесты:

mvn test


### Скачивание

Последняя версия: <https://search.maven.org/remote_content?g=fr.inria.gforge.spoon&a=spoon-core&v=LATEST&c=jar-with-dependencies> - [Javadoc](https://spoon.gforge.inria.fr/mvnsites/spoon-core/apidocs/index.html)

Maven:

```xml
<dependency>
    <groupId>fr.inria.gforge.spoon</groupId>
    <artifactId>spoon-core</artifactId>
    <!-- См. отрендеренное значение выпуска по адресу https://spoon.gforge.inria.fr/ -->
    <version>{{site.spoon_release}}</version>
</dependency>
```## Версии<! -- . * Marker comment.  -->- 31 августа 2023 года, Spoon 10. 4. 1 [(история версий)](https://github.com/INRIA/spoon/releases/tag/v10. 4. 1)
 - 6 июля 2023 года, Spoon 10. 4. 0 [(история версий)](https://github.com/INRIA/spoon/releases/tag/v10. 4. 0)
 - 13 марта 2023 года, Spoon 10. 3. 0 [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-10. 3. 0)
 - октябрь 2022 года, Spoon 10. 2. 0 [(история версий)](https://github.com/INRIA/spoon/pull/4946)
 - апрель 2022 года, Spoon 10. 1. 0 [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-10. 1. 0)
 - октябрь 2021 года, Spoon 10. 0. 0 [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-10. 0. 0)
 - август 2021 года, Spoon 9. 1. 0 [(история версий)](https://github.com/INRIA/spoon/pull/4104)
 - март 2021 года, Spoon 9. 0. 0 [(история версий)](https://github.com/INRIA/spoon/issues/3845)
 - октябрь 2020 года, Spoon 8. 3. 0 [(история версий)](https://github.com/INRIA/spoon/pull/3647)
 - июль 2020 года, Spoon 8. 2. 0 [(история версий)](https://github.com/INRIA/spoon/pull/3501)
 - март 2020 года, Spoon 8. 1. 0 [(история версий)](https://github.com/INRIA/spoon/pull/3310)
 - ноябрь 2019 года, Spoon 8. 0. 0 [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-8. 0. 0)
 - июль 2019 года, Spoon 7. 5. 0 выпущена [(история версий)](https://github.com/INRIA/spoon/pull/3057)
 - май 2019 года, Spoon 7. 4. 0 выпущена [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-7. 4. 0)
 - 10 февраля 2019 года, Spoon 7. 3. 0 выпущена [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-7. 3. 0)
 - 4 декабря 2018 года, Spoon 7. 2. 0 выпущена [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-7. 2. 0)
 - 10 октября 2018 года, Spoon 7. 1. 0 выпущена [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-7. 1. 0)
 - 4 июля 2018 года, Spoon 7. 0. 00 выпущена [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-7.0.0)
- 8 марта 2018 года, Spoon 6.2.0 выпущена [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-6.2.0)
- 20 декабря 2017 года, Spoon 6.1.0 выпущена, счастливого Рождества! :christmas_tree: [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-6.1.0)
- 17 ноября 2017 года, Spoon 6.0.0 выпущена! Проверьте [(историю версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-6.0.0), там есть несколько изменений, несовместимых с предыдущими версиями :warning:
- 6 сентября 2017 года, Spoon 5.9.0 выпущена [(история версий)](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.9.0)

*возвращение к работе* релиз!- 11 июля 2017 года: выпущена версия Spoon 5.8.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.8.0) Летний релиз :beer: Предпочтительнее предыдущей версии: исправлено множество ошибок.
- 1 июня 2017 года: выпущена версия Spoon 5.7.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.7.0)
- 16 марта 2017 года: выпущена версия Spoon 5.6.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.6.0) Весенний релиз :-)
- 11 января 2017 года: выпущена версия Spoon 5.5.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.5.0). С Новым Годом!
- 27 октября 2016 года: выпущена версия Spoon 5.4.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.4.0).
- 19 сентября 2016 года: выпущена версия Spoon 5.3.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.3.0).
- 30 июня 2016 года: выпущена версия Spoon 5.2.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.2.0).
- 22 июня 2016 года: выпущена версия Spoon 5.1.1 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.1.1).
- 21 марта 2016 года: выпущена версия Spoon 5.1.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.1.0).
- 12 февраля 2016 года: выпущена версия Spoon 5.0.2 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.0.2).
- 3 февраля 2016 года: выпущена версия Spoon 5.0.1 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.0.1).
- 25 января 2016 года: выпущена версия Spoon 5.0.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.0.0).
- 18 ноября 2015 года: выпущена версия Spoon 4.4. 1 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-5.5.0).
 - 16 ноября 2015 года: выпущена версия Spoon 4.4.0 [(\[история изменений\])](https://github.com/INRIA/spoon/releases/tag/spoon-core-4.4.0).
 - 22 сентября 2015 года: выпущена версия Spoon 4.3.0 [(\[история изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2015-September/001803.html).
 - 15 июня 2015 года: выпущена версия Spoon 4.2.0 [(\[история изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2015-June/001781.html).
 - 7 мая 2015 года: выпущена версия Spoon 4.1.0 [(\[история изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2015-May/001774.html).
 - 8 апреля 2015 года: выпущена версия Spoon 4.0.0 [(\[история изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2015-April/001769.html).
 - 11 февраля 2015 года: выпущена версия Spoon 3.1 [(\[журнал изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2015-February/001741.html).
 - 9 декабря 2014 года: выпущена версия Spoon 3.0 [(\[журнал изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2014-December/001721.html).
 - 12 ноября 2014 года: выпущена версия Spoon 2.4 [(\[журнал изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2014-November/001710.html).
 - 9 октября 2014 года: выпущена версия Spoon 2.3.1 [(\[журнал изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2014-October/001688.html).
 - 12 сентября 2014 года: выпущена версия Spoon 2.1 [(\[журнал изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2014-September/001683.html).
 - 2 апреля 2014 года: выпущена версия Spoon 2.0 [(\[журнал изменений\])](https://lists.gforge.inria.fr/pipermail/spoon-discuss/2014-March/001639.html).
 - 30 сентября 2013 года: выпущена версия Spoon 1.6.
 - 12 апреля 2012 года: выпущена версия Spoon 1.5.

## ЛицензияSpoon является свободным и открытым программным обеспечением, дважды лицензирован под лицензией CeCILL-C (французский эквивалент LGPL) и лицензией MIT.

## JProfiler

Разработка Spoon осуществляется с помощью JProfiler, Java профилировщика компании ej-technologies GmbH. JProfiler поддерживает развитие Spoon, предоставляя полноценный Java профилировщик бесплатно. Мы благодарим компанию ej-technologies GmbH за эту поддержку.

[![JProfiler](https://www.ej-technologies.com/images/product_banners/jprofiler_large.png)](https://www.ej-technologies.com/products/jprofiler/overview.html)

## Вкладчики GitHubЭтот список генерируется с помощью `chore/generate-contributor-list.py`. Если вы не указаны в списке или хотите иметь своё полное имя, пожалуйста, отправьте сообщение по адресу https://github.com/INRIA/spoon/issues/3909.

* адамджрейн
* Алциде Фонсека
* Александр Шопов
* Аман Шарма
* андрюбвоги
* Антрэ Круз
* Антрэ Силва
* Антуан Мотье
* Антон Ликсель
* аргиус
* Арнауд Блюин
* арсенкхай
* Артамм
* Артур Бош
* Арвид Сиберов
* арян
* АшутОС Кумар Верма
* авувильер
* Аксель Хауинд
* Бенжамин Данглот
* Беноît Корну
* Карлос Ногуера
* Чеки Гюлчю
* чамп
* чарм
* хрисквадрат
* христоф Дюфур
* христофер Стокес
* клеманс бартц
* клемэнт форнье
* цезарь сОТО Валеро
* данниел боуберт
* дариус сас
* дэвид бернард
* дидье донсез
* диОРСЕТ Янн
* дорота копчык
* дуфаукс
* дуэйнб
* дья-тел
* эдди т
* егор бредихин
* фабьен думини
* фан лонг
* фангчен
* фав
* фавио демарко
* фернАНда мАДЕРАЛ
* филип краковски
* габриэль чаперон бургос
* гибахоуе
* глюкзханг
* грегор зейтлингер
* гтоисон
* гийом туисон
* гериаrd палиго
* ханнес грЮле
* харис аджемович
* хекторсм
* хенри чу
* герве бОтемю
*horia константин
*i-al-истаннен
*intrигус-lgtm
*jакоббраун
*ян галински
*jon
*kai лу
*lakshya a agrawal
*левентов
*lionel синтуриер
*lodart
*lucas
*lukas krejci
*luke merrick
*марсел мансир
*марсел стайнбек
*мартин монперрус
*мартин витлингер
*мартинвитт
*матиас мартиНЕЗ
*максим стЕфанов
*максим клемент
*меHди кайтУе
*michael тaже
*mickael истрия
*miguel созино рамалью*mikael Förberg
*mr. Pine
*Muhhammet Ali Akbey
*Nicolás Harland
*Nicholas Pashminaier
*Nicolas Petitpré
*Noah Santchi-Konney
*Olver Barais
*Ondřej Sebeček
*Patrick Schmitt
*Pavel Vojtěchovský
*Perioxid90
*Philippe Ombredanne
*Phillip Schichtel
*Priyanka-28
*Quentin Le Dilavrec
*Raymogg
*Renaud Pauleac
*Reza Gharibi
*Rhys Compton
*Rick Kellogg
*Ryanard van Tonger
*Rohitesh Kumar Jain
*Roman Levontov
*Riyo Taishi
*Sander Ploegsmas
*Santos-Samuel
*Scootafew
*Scott Dickerson
*Scott Pinwell
*Sebastián Lamela Marquetti
*Sergey Fedorov
*Shantanu
*Simon Larsen
*Simon Urla
*Spencer Williams
*SRLM
*St0newall
*Stephan Wolf
*StepSecurity Bot
*Sebastien Bertrand
*The Spoon Bot
*Thimo Seize
*Tomasz Dyrée
*Tiago Dr Carvalho
*Tomasz Zieliński
*Urs Keller
*Viktor
*Vincenzo Musco
*Wolfgang Schmiesing
*Wouter Smekenk
*Wreulicke
*Yann Diocet
*YOGYA Tulip Gamage
*Zhang Xindong
*Дмитрий

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Spoon — это библиотека, которая используется для синтаксического анализа исходного кода на Java. Она позволяет преобразовать файлы с исходным кодом Java в структуру абстрактного синтаксического дерева (AST) и предоставляет мощные API для анализа и трансформации. Библиотека поддерживает последние версии Java 11 и 12. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-inria-spoon.git
git@api.gitlife.ru:oschina-mirror/mirrors-inria-spoon.git
oschina-mirror
mirrors-inria-spoon
mirrors-inria-spoon
master