Want to learn more about DSLs, parsers, interpreters, compilers and language design?
Create a simple parser in C# with Sprache

Create a simple parser in C# with Sprache

Everybody loves ANTLR, but sometimes it may be overkill. On the other hand, a regular expression just doesn’t cut it or it may be too complicated to maintain. What a developer can do in such cases ? He uses Sprache. As its creators say: Sprache is a simple, lightweight library for constructing parsers directly in […]

Extracting JavaDoc documentation from source files using JavaParser

A lot of people are using JavaParser for the most different goals. One of these is extracting documentation. In this short post we will see how you can print all the JavaDoc comments associated to classes or interfaces. Code is available on GitHub: https://github.com/ftomassetti/javadoc-extractor Getting all the Javadoc comments for classes We are reusing DirExplorer, a supporting […]

The important changes in the new ANTLR 4.6

The Important Changes in the New ANTLR 4.6

After almost a year since the last major release, there is a new ANTLR version: 4.6. There are many news: new targets, better performance, better error handling and several improvements in the development of ANTLR itself. New targets The most impactful news is probably the new targets: C++, Go and Swift. Of course getting C++ […]

Kanvas: Generating a Simple IDE From Your ANTLR Grammar

What is an editor? An editor is, for me, the main tool I use for work. As a Language Engineer I create new languages, I use existing ones and I need different tools to work with them. I would like to be able to hack all of them together, in a customized IDE I can […]

Interesting things happening in Language Engineering

If you read this blog you will know that I strongly believe in the power of languages. So I am very biased, of course, but I have the feeling that the Language Engineering community is growing and more interesting stuff is coming up. For this I thought it was a good idea to finish the […]

Implementing Lexical Preservation for JavaParser

Many users of JavaParser are asking to implement lexical preservation, i.e., the ability of parsing a Java source file, modifying the AST and get back the modified Java source code keeping the original layout. Currently this is not supported by JavaParser: you can parse all Java 8 code with JavaParser, get an AST but then the […]

Writing a very simple JS editor

  There are nice web editors out there which are ready to be used: you just download them and plug them in your page. I have used myself both CodeMirror and ACE in the past. For example I wrote a plugin for CodeMirror to support PlantUML. However there is an issue with these editors: they […]

Observers for AST nodes in JavaParser

We are getting closer to the first Release Candidate for JavaParser 3.0. One of the last features we added was support for observing changes to all nodes of the Abstract Syntax Tree. While I wrote the code for this feature I received precious feedback from Danny van Bruggen (a.k.a. Matozoid) and Cruz Maximilien. So I […]

Interview with Erik Dietrich on Static Analysis and a data driven approach to refactoring

Erik Dietrich is a well known Software Architect with a long experience in consulting. His blog (DaedTech) is a source of thoughtful insights on software development. In particular I was very interested by his usage of static analysis and code metrics in his consulting work. I am myself a relatively young consultant and I thought […]

5 things I have learnt working as a Consultant Software Architect

  I have been working as a Software Engineer for several years, however I have been a full time consultant only for the last one year and a half. I have a background of different experiences: working for small and big companies, in different countries, getting a PhD. The previous things I have done have […]

Course: Using ANTLR Like A Professional

ANTLR Course Image

A complete video course on parsing and ANTLR, that will teach you how to build parser for everything from programming languages to data formats.
Taught from professionals that build parsers for a living.

Strumenta – Consulting

If you need help designing and developing DSLs, languages, parsers, compilers, interpreters, and editors you can check the services page of the Consulting studio we founded: Strumenta. Strumenta Logo

Blog Categories