We do our best to share what we know about Language Engineering. On our blog you can find hundreds of articles. We took all the feedback and questions we received, to create products to teach how to best work in a more organized way.

How to create pragmatic,
lightweight languages

This book will teach you all you need to know to create your own programming languages and Domain Specific Languages.
You will learn about:

  • Parsing
  • Validation
  • Typesystem
  • Writing interpreters
  • Compile to JVM bytecode
  • Generate executables using the LLVM
  • Creating editors for your languages

Using ANTLR
Like a Professional

This video course will teach you everything about ANTLR:

  • How to define grammars and the typical patterns
  • Listeners and Visitors
  • Error handling
  • Testing
  • Actions
  • Semantic predicates
  • Lexical modes
  • Designing a grammar
  • The best practices we follow

Cobol parser

We developed a commercial Cobol parser which handles Cobol 85 and all of its dialects that we are aware of.

The parser can be used in two different ways:

  1. As a Java library (usable from Java, Kotlin, Scala, Groovy and all possible JVM languages)
  2. As a command line tool that produces an Abstract Syntax Tree in JSON or XML format. In this way the parser can be integrated with any software able to process JSON or XML


Open Source Projects

JavaParser

JavaParser

JavaParser is a simple and lightweight set of tools to parse Java, under a business friendly license.

We created JavaSymbolSolver, a Symbol Solver for Java which is built on top of JavaParser and now is part of the main project.

The parser is extra lightweight (no dependencies at all!) and can give you super fast an AST for your Java code. Sometimes an AST is not enough because you want:

  • Understand to which element a certain name refer: a field? A variable?
  • You need to know the type of a complex expression
  • You want to get a list of all the interfaces implemented (also indirectly) by a certain class

JavaSymbolSolver does the extra work to answer this questions for you.
JavaParser is used in dozens of open-source and commercial projects.

ANTLR Kotlin

We wrote the Kotlin target for ANTLR.

This is the only target that permits to obtain one parser that can run both on the browser and on the JVM.
We did that by creating a code generator that generate a Kotlin multi-platform library.

Kanvas

Kanvas

Kanvas is a truly hackable editor: simple, lightweight, understandable

Kanvas is a very simple editor built in Kotlin and intended to be extended and hacked.
It is very simple to customize it to handle a language defined using ANTLR.
We created because in many cases we need a simple text editor for the DSLs we create for our clients. We needed an easy way to get a standalone editor for a DSL, with minimal dependencies and a simple structure. There were not a light option on the menu, so we added one.