Introduction to ANTLR4

Introduction to ANTLR4

Preparing the environment

First of all, let’s define some PATHs and variables that will ease the execution of the required tools.

Execute (just once):

cat /assig/$USER/cl/tcshrc.CL-GRAU.antlr4 >> ~/.tcshrc && source ~/.tcshrc

Session 1

The first session consists of building a calculator able to compute simple aritmethic expressions.

We are provided a base grammar Calc.g4, and different example programs that traverse the generated tree.

Your professor will explain the initial example and how each example works.

You should then finish the calculator adding other operations.

  • You will find the examples for this season in folder /assig/$USER/cl/files/intro.tgz in FIB inLab server, or you can get it from here.

Useful tools for grammar development

To develop and debug our grammar, it is useful to visualize the parse trees it builds.

Antlr4 provides grun, a java tool able to provide this visualization.

Since grun is written in java, it requires the java classes for our grammar. Our Makefile creates only C++ classes, so we will need to compile the java version:

antlr4 myGrammar.g4
javac *.java

Once this is done, we can run grun to obtain the tree for a given input:

To display the tree in parenthesized format:

grun myGrammar myInitialSymbol -tree inputfile

To display the tree in graphical format:

grun myGrammar myInitialSymbol -gui inputfile

In both above commands inputfile may be ommited and typed in stdin ending with ctl-D