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,
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
- Semantic predicates
- Lexical modes
- Designing a grammar
- The best practices we follow
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:
- As a Java library (usable from Java, Kotlin, Scala, Groovy and all possible JVM languages)
- 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
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.
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 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.