Learning to Process Code
Processing code automatically permits to increase productivity exponentially.
Do you need to extract information from code?
Migrate to another framework or even another language?
Verify some patterns and rules are respected?
You can do all of this and more by processing code automatically.
In this blog I present several examples referring to Java and C#.
In particular I am a core contributor of JavaParser and the mantainer of the JavaSymbolSolver, the leading platform to process Java code, used by companies, researchers and single individuals.
What resources you will find here
So I thought I could help by creating these resources:
- a free book on JavaParser: me and other two top contributors sat down and wrote this book to teach you everything you need to know on JavaParser
- an email course: learn JavaParser by receiving emails every couple of days
- posts: I have written several posts to present different aspects of JavaParser and more are coming
Whichever path you pick these resources should help you getting started. If you feel something is missing or you do not know where to start from feel write to write at [email protected]. I will do my best to help you.
Free Book: Javaparser Visited

This book teaches you how to use JavaParser and the JavaSymbolSolver to process, analyze, transform, and generate Java code.
It is written by the mantainer of JavaParser (Danny van Bruggen, a.k.a. Matozoid), the mantainer of JavaSymbolSolver (me, Federico Tomassetti) and Nicholas Smith, an experienced Java consultant and key contributor to JavaParser.
We have listened to the community, learnt what issues they were facing when learning how to use JavaParser and poured everything into this book.
Checklist: 5 things to get right when building a language

Get a free course on JavaParser
Receive 5 lessons on JavaParser and the JavaSymbolSolver directly in your inbox.
More posts
- Go To Definition in the Language Server Protocol
- Interview with Cédric Brun on modeling area
- Interview with Matteo Mortari on process automation
- Interview with Meinte Boersma on Domain-Specific Languages
- Integrating Code Completion in Visual Studio Code – With the Language Server Protocol
- Interview with Scott McKinney on improving static typing
- Code Completion with ANTLR4-c3
- How to write a transpiler
- Getting started with ANTLR: building a simple expression language
- Quick Domain-Specific Languages in Python with textX
- JaRIKo, an RPG Interpreter in Kotlin
- The Great New ANTLR 4.8
- A complete tutorial on the Drools business rule engine
- Creating a Transpiler: From VBA to VB.NET
- Blazor: .NET in the Browser
- Getting started with ANTLR in C#
- Understand WebAssembly: Why It Will Change the Web
- The Fun (and Madness) of Esoteric Programming Languages
- Parsing in Java: Tools and Libraries
- The Difference Between a Compiler and an Interpreter
- 68 Resources To Help You To Create Programming Languages
- Language Server Protocol: A Language Server For DOT With Visual Studio Code
- The ANTLR Mega Tutorial
- Why You Should Know the Language Server Protocol
- Interview with Thorsten Ball, author of “Writing an Interpreter in Go”
- Best posts on Language Engineering
- Create a simple parser in C# with Sprache
- The Important Changes in the New ANTLR 4.6
- Kanvas: Generating a Simple IDE From Your ANTLR Grammar
- Interesting things happening in Language Engineering
- Writing a very simple JS editor
- Getting started with Roslyn: transforming C# code
- Generating bytecode
- Building a compiler for your own language: validation
- Building a compiler for your own language: model-to-model transformations
- Building a compiler for your own language: from the parse tree to the Abstract Syntax Tree
- Building autocompletion for an editor based on ANTLR
- How to create an editor with syntax highlighting for your language using ANTLR and Kotlin
- A book on creating languages and supporting tools
- Polyglot Software Development: My PhD Thesis