Suche senden
Hochladen
Groovy AST Demystified
•
1 gefällt mir
•
7,712 views
Andres Almiray
Folgen
Technologie
Business
Melden
Teilen
Melden
Teilen
1 von 42
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Andres Almiray
Frida Android run time hooking - Bhargav Gajera & Vitthal Shinde
Frida Android run time hooking - Bhargav Gajera & Vitthal Shinde
NSConclave
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
JS Fest 2018. Виталий Ратушный. ES X
JS Fest 2018. Виталий Ратушный. ES X
JSFestUA
Refactoring a go project
Refactoring a go project
Dan Tran
Test Driven In Groovy
Test Driven In Groovy
Christopher Bartling
Kurzeinführung: Atom Publishing Protocol
Kurzeinführung: Atom Publishing Protocol
Dirk Haun
JavaScript Qualitätssicherung
JavaScript Qualitätssicherung
Sebastian Springer
Empfohlen
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Andres Almiray
Frida Android run time hooking - Bhargav Gajera & Vitthal Shinde
Frida Android run time hooking - Bhargav Gajera & Vitthal Shinde
NSConclave
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
JS Fest 2018. Виталий Ратушный. ES X
JS Fest 2018. Виталий Ратушный. ES X
JSFestUA
Refactoring a go project
Refactoring a go project
Dan Tran
Test Driven In Groovy
Test Driven In Groovy
Christopher Bartling
Kurzeinführung: Atom Publishing Protocol
Kurzeinführung: Atom Publishing Protocol
Dirk Haun
JavaScript Qualitätssicherung
JavaScript Qualitätssicherung
Sebastian Springer
Development Principles & Philosophy
Development Principles & Philosophy
François-Guillaume Ribreau
Testing of javacript
Testing of javacript
Lei Kang
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JSFestUA
Heroku & Sinatra
Heroku & Sinatra
myles_byrne
Introduction to Griffon
Introduction to Griffon
James Williams
Navigating the wild seas of es6 modules
Navigating the wild seas of es6 modules
Gil Tayar
PuppetConf 2014 Killer R10K Workflow Without Notes
PuppetConf 2014 Killer R10K Workflow Without Notes
Phil Zimmerman
Asynchronous JavaScript and Promises
Asynchronous JavaScript and Promises
Senthil Kumar
New adventures in 3D
New adventures in 3D
Rob Bateman
Flexible Types in Kotlin - JVMLS 2015
Flexible Types in Kotlin - JVMLS 2015
Andrey Breslav
AwayJS - Open Source Workflow for WebGL
AwayJS - Open Source Workflow for WebGL
Rob Bateman
Gtg12
Gtg12
Poga Po
Designing Imperfection in Tiqav
Designing Imperfection in Tiqav
Shimpei Makimoto
Javaone - Getting Funky with Groovy
Javaone - Getting Funky with Groovy
Andres Almiray
Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008
Andrea Francia
DEF CON 23 - Topher Timzen and Ryan Allen - hijacking arbitrary NET APP Contr...
DEF CON 23 - Topher Timzen and Ryan Allen - hijacking arbitrary NET APP Contr...
Felipe Prado
Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)
Boise Web Technologies Group
Connecting NSClient++ to Icinga, Elasticsearch and Graphite - Icinga Camp Sto...
Connecting NSClient++ to Icinga, Elasticsearch and Graphite - Icinga Camp Sto...
Icinga
Null, the Abyss
Null, the Abyss
Keishin Yokomaku
GitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo Management
John Anderson
Griffon Update Gr8conf 2013
Griffon Update Gr8conf 2013
Andres Almiray
GroovyでJSON2014
GroovyでJSON2014
Yasuharu Hayami
Weitere ähnliche Inhalte
Was ist angesagt?
Development Principles & Philosophy
Development Principles & Philosophy
François-Guillaume Ribreau
Testing of javacript
Testing of javacript
Lei Kang
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JSFestUA
Heroku & Sinatra
Heroku & Sinatra
myles_byrne
Introduction to Griffon
Introduction to Griffon
James Williams
Navigating the wild seas of es6 modules
Navigating the wild seas of es6 modules
Gil Tayar
PuppetConf 2014 Killer R10K Workflow Without Notes
PuppetConf 2014 Killer R10K Workflow Without Notes
Phil Zimmerman
Asynchronous JavaScript and Promises
Asynchronous JavaScript and Promises
Senthil Kumar
New adventures in 3D
New adventures in 3D
Rob Bateman
Flexible Types in Kotlin - JVMLS 2015
Flexible Types in Kotlin - JVMLS 2015
Andrey Breslav
AwayJS - Open Source Workflow for WebGL
AwayJS - Open Source Workflow for WebGL
Rob Bateman
Gtg12
Gtg12
Poga Po
Designing Imperfection in Tiqav
Designing Imperfection in Tiqav
Shimpei Makimoto
Javaone - Getting Funky with Groovy
Javaone - Getting Funky with Groovy
Andres Almiray
Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008
Andrea Francia
DEF CON 23 - Topher Timzen and Ryan Allen - hijacking arbitrary NET APP Contr...
DEF CON 23 - Topher Timzen and Ryan Allen - hijacking arbitrary NET APP Contr...
Felipe Prado
Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)
Boise Web Technologies Group
Connecting NSClient++ to Icinga, Elasticsearch and Graphite - Icinga Camp Sto...
Connecting NSClient++ to Icinga, Elasticsearch and Graphite - Icinga Camp Sto...
Icinga
Null, the Abyss
Null, the Abyss
Keishin Yokomaku
GitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo Management
John Anderson
Was ist angesagt?
(20)
Development Principles & Philosophy
Development Principles & Philosophy
Testing of javacript
Testing of javacript
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
Heroku & Sinatra
Heroku & Sinatra
Introduction to Griffon
Introduction to Griffon
Navigating the wild seas of es6 modules
Navigating the wild seas of es6 modules
PuppetConf 2014 Killer R10K Workflow Without Notes
PuppetConf 2014 Killer R10K Workflow Without Notes
Asynchronous JavaScript and Promises
Asynchronous JavaScript and Promises
New adventures in 3D
New adventures in 3D
Flexible Types in Kotlin - JVMLS 2015
Flexible Types in Kotlin - JVMLS 2015
AwayJS - Open Source Workflow for WebGL
AwayJS - Open Source Workflow for WebGL
Gtg12
Gtg12
Designing Imperfection in Tiqav
Designing Imperfection in Tiqav
Javaone - Getting Funky with Groovy
Javaone - Getting Funky with Groovy
Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008
DEF CON 23 - Topher Timzen and Ryan Allen - hijacking arbitrary NET APP Contr...
DEF CON 23 - Topher Timzen and Ryan Allen - hijacking arbitrary NET APP Contr...
Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)
Connecting NSClient++ to Icinga, Elasticsearch and Graphite - Icinga Camp Sto...
Connecting NSClient++ to Icinga, Elasticsearch and Graphite - Icinga Camp Sto...
Null, the Abyss
Null, the Abyss
GitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo Management
Andere mochten auch
Griffon Update Gr8conf 2013
Griffon Update Gr8conf 2013
Andres Almiray
GroovyでJSON2014
GroovyでJSON2014
Yasuharu Hayami
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
kyon mm
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Uehara Junji
Grailsでシステム構築
Grailsでシステム構築
Megumi Sato
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
Desktop|Embedded Application API JSR
Desktop|Embedded Application API JSR
Andres Almiray
簡単!Groovy入門
簡単!Groovy入門
Lee Choong Geun
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
Xtext And Grails20091218
Xtext And Grails20091218
Akira Tanaka
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
Yohei Yasukawa
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
Ryota Murohoshi
Andere mochten auch
(12)
Griffon Update Gr8conf 2013
Griffon Update Gr8conf 2013
GroovyでJSON2014
GroovyでJSON2014
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Grailsでシステム構築
Grailsでシステム構築
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Desktop|Embedded Application API JSR
Desktop|Embedded Application API JSR
簡単!Groovy入門
簡単!Groovy入門
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
Xtext And Grails20091218
Xtext And Grails20091218
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
Ähnlich wie Groovy AST Demystified
AST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres Almiray
ZeroTurnaround
Groovy AST Demystified
Groovy AST Demystified
Andres Almiray
Groovy AST Transformations
Groovy AST Transformations
hendersk
Effecient javascript
Effecient javascript
mpnkhan
The Ring programming language version 1.8 book - Part 91 of 202
The Ring programming language version 1.8 book - Part 91 of 202
Mahmoud Samir Fayed
Code documentation
Code documentation
Adégòkè Obasá
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson
GWTcon
Ast transformation
Ast transformation
Gagan Agrawal
Commenting in Agile Development
Commenting in Agile Development
Jan Rybák Benetka
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
James Williams
Javaone2008 Bof 5101 Groovytesting
Javaone2008 Bof 5101 Groovytesting
Andres Almiray
Boosting Your Testing Productivity with Groovy
Boosting Your Testing Productivity with Groovy
James Williams
Go 1.10 Release Party - PDX Go
Go 1.10 Release Party - PDX Go
Rodolfo Carvalho
Charla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo Web
Mikel Torres Ugarte
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
Guillaume Laforge
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008
Guillaume Laforge
All things that are not code
All things that are not code
Mobile Delivery Days
New comand autocad
New comand autocad
edikuroc
Midiendo la calidad de código en WTF/Min (Revisado EUI Abril 2014)
Midiendo la calidad de código en WTF/Min (Revisado EUI Abril 2014)
David Gómez García
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Guillaume Laforge
Ähnlich wie Groovy AST Demystified
(20)
AST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres Almiray
Groovy AST Demystified
Groovy AST Demystified
Groovy AST Transformations
Groovy AST Transformations
Effecient javascript
Effecient javascript
The Ring programming language version 1.8 book - Part 91 of 202
The Ring programming language version 1.8 book - Part 91 of 202
Code documentation
Code documentation
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson
Ast transformation
Ast transformation
Commenting in Agile Development
Commenting in Agile Development
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
Javaone2008 Bof 5101 Groovytesting
Javaone2008 Bof 5101 Groovytesting
Boosting Your Testing Productivity with Groovy
Boosting Your Testing Productivity with Groovy
Go 1.10 Release Party - PDX Go
Go 1.10 Release Party - PDX Go
Charla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo Web
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008
All things that are not code
All things that are not code
New comand autocad
New comand autocad
Midiendo la calidad de código en WTF/Min (Revisado EUI Abril 2014)
Midiendo la calidad de código en WTF/Min (Revisado EUI Abril 2014)
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Mehr von Andres Almiray
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Andres Almiray
Liberando a produccion con confianza
Liberando a produccion con confianza
Andres Almiray
Liberando a produccion con confidencia
Liberando a produccion con confidencia
Andres Almiray
OracleDB Ecosystem for Java Developers
OracleDB Ecosystem for Java Developers
Andres Almiray
Softcon.ph - Maven Puzzlers
Softcon.ph - Maven Puzzlers
Andres Almiray
Maven Puzzlers
Maven Puzzlers
Andres Almiray
Oracle Database Ecosystem for Java Developers
Oracle Database Ecosystem for Java Developers
Andres Almiray
JReleaser - Releasing at the speed of light
JReleaser - Releasing at the speed of light
Andres Almiray
Building modular applications with the Java Platform Module System and Layrry
Building modular applications with the Java Platform Module System and Layrry
Andres Almiray
Going Reactive with g rpc
Going Reactive with g rpc
Andres Almiray
Building modular applications with JPMS and Layrry
Building modular applications with JPMS and Layrry
Andres Almiray
Taking Micronaut out for a spin
Taking Micronaut out for a spin
Andres Almiray
Apache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and You
Andres Almiray
What I wish I knew about Maven years ago
What I wish I knew about Maven years ago
Andres Almiray
What I wish I knew about maven years ago
What I wish I knew about maven years ago
Andres Almiray
The impact of sci fi in tech
The impact of sci fi in tech
Andres Almiray
Gradle Ex Machina - Devoxx 2019
Gradle Ex Machina - Devoxx 2019
Andres Almiray
Creating Better Builds with Gradle
Creating Better Builds with Gradle
Andres Almiray
Interacting with the Oracle Cloud Java SDK with Gradle
Interacting with the Oracle Cloud Java SDK with Gradle
Andres Almiray
Gradle ex-machina
Gradle ex-machina
Andres Almiray
Mehr von Andres Almiray
(20)
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Liberando a produccion con confianza
Liberando a produccion con confianza
Liberando a produccion con confidencia
Liberando a produccion con confidencia
OracleDB Ecosystem for Java Developers
OracleDB Ecosystem for Java Developers
Softcon.ph - Maven Puzzlers
Softcon.ph - Maven Puzzlers
Maven Puzzlers
Maven Puzzlers
Oracle Database Ecosystem for Java Developers
Oracle Database Ecosystem for Java Developers
JReleaser - Releasing at the speed of light
JReleaser - Releasing at the speed of light
Building modular applications with the Java Platform Module System and Layrry
Building modular applications with the Java Platform Module System and Layrry
Going Reactive with g rpc
Going Reactive with g rpc
Building modular applications with JPMS and Layrry
Building modular applications with JPMS and Layrry
Taking Micronaut out for a spin
Taking Micronaut out for a spin
Apache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and You
What I wish I knew about Maven years ago
What I wish I knew about Maven years ago
What I wish I knew about maven years ago
What I wish I knew about maven years ago
The impact of sci fi in tech
The impact of sci fi in tech
Gradle Ex Machina - Devoxx 2019
Gradle Ex Machina - Devoxx 2019
Creating Better Builds with Gradle
Creating Better Builds with Gradle
Interacting with the Oracle Cloud Java SDK with Gradle
Interacting with the Oracle Cloud Java SDK with Gradle
Gradle ex-machina
Gradle ex-machina
Kürzlich hochgeladen
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
RankYa
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Dilum Bandara
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
LoriGlavin3
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Miki Katsuragi
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Manik S Magar
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Fwdays
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
charlottematthew16
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
Sri Ambati
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
Kürzlich hochgeladen
(20)
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Groovy AST Demystified
1.
GROOVY AST CÉDRIC CHAMPEAU ANDRES ALMIRAY
2.
GET THE CODE https://github.com/melix/ast-workshop Setup
gradle 1.6 (or use gradlew) Browse docs/gen/workshop.html
3.
AGENDA AST, How did
we get here? AST Transformations Building your own AST Excercises
4.
AST, HOW DID WE GET HERE?
5.
6.
7.
8.
9.
10.
11.
AST TRANSFOR MATIONS
12.
E V I L G E N I U S
13.
14.
15.
16.
17.
STANDARD GROOVY DISTRO INCLUDES: *
@EqualsAndHashCode * @ToString * @TupleConstructor * @Canonical * @InheritConstructors * @IndexedProperty * @Lazy * @PackageScope * @NotYetImplemented * @AutoClone * @AutoExternalize * @Synchronized * @Field * @Grab * @GrabResolver * @CompileStatic * @TypeChecked * @ASTTest
18.
STANDARD GROOVY DISTRO INCLUDES: *
@Bindable * @Vetoable * @ListenerList * @ConditionalInterrupt * @ThreadInterrupt * @TimedInterrupt * @WithReadLock * @WithWriteLock * @Newify * @Log * @Slf4j * @Log4j * @Commons * @Singleton * @Immutable * @Delegate * @Category * @Mixin
19.
GROOVY ECOSYSTEM BRINGS: * @ByteCode *
@Scalify * GContracts * @Invariant * @Requires * @Ensures * Grails * @Entity * @TestFor * Griffon * @EventPublisher * @Threading * @PropertyListener * @MVCAware * @MessageSourceAware * @ResourceResolverAware * @ResourcesAware * @ThreadingAware
20.
GLOBALAST TRANSFORMATIONS Groovy – Grab Grails
– GORM API Griffon – Threading injection Spock – the whole shebang
21.
BUILDING YOUR OWN AST
22.
23.
LOCALAST TRANSFORMATION 1. Define an
@interface • Easy peasy … right? 2. Define AST implementation • huh …… 3. Profit!
24.
GLOBALAST TRANSFORMATION 1. Add AST
implementation entry to • META-INF/services/ org.codehaus.groovy.transform.ASTTransformation 2. Define AST implementation • ??? !!! ??? !!! 3. Profit!
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
ADDITIONAL TOOLS AST browser AST
Builder
37.
38.
39.
40.
41.
42.
Thank You! @cedricchampeau @aalmiray
Jetzt herunterladen