software,

ANTLR installation and usage on ubuntu 14.04

Follow Apr 14, 2016 · 1 min read

ANTLR installation and usage on ubuntu 14.04

In this article we will look at installation and usage of ANTLRsoftware

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It’s widely used to build languages, tools, and frameworks.

Download

Antlr repository can be downloaded by running the below commands

git clone https://github.com/antlr/antlr4.git

Pre Requisites

Antlr requires Apache maven build manager for Java projects.

sudo apt-get install maven maven2

python 3.5

  • Download the source files from
https://www.python.org/downloads/source/
  • build and install python 3.5
./configure
make
sudo make install

Compile

Antlr can be compiled by executing the below command

mvn compile
mvn install

This will deploy antlr in the default location

~/.m2/repository

The main antlr jar files is located at

~/.m2/repository/org/antlr/antlr4/4.5/antlr4-4.5.jar

to use this we need to set classpath as follows

export CLASSPATH=$CLASSPATH:~/.m2/repository/org/antlr/antlr4/4.5/antlr4-4.5.jar

Execution

Put the following grammar inside file Hello.g4

// Define a grammar called Hello
grammar Hello;
r  : 'hello' ID ;         // match keyword hello followed by an identifier
ID : [a-z]+ ;             // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines

Then run ANTLR the tool on it:

$ alias antlr4='java -Xmx500M -cp "~/.m2/repository/org/antlr/antlr4/4.5/antlr4-4.5.jar:$CLASSPATH" org.antlr.v4.Tool'

$ alias grun='java org.antlr.v4.runtime.misc.TestRig'

$ antlr4 Hello.g4
$ javac Hello*.java

To test it run the following command

$ grun Hello r -tree input.txt

contents of input.txt file is hello world

This will give a GUI with parse tree displayed in the output

That pops up a dialog box showing that rule r matched keyword hello followed by identifier parrt.

Reference

  • https://raw.githubusercontent.com/antlr/antlr4/master/doc/getting-started.md1
Written by