Setting up ANTLR4 on Windows

I am using ANTLR for a Compilers course, and working on a windows box. Getting ANTLR to work is not difficult since it is just a Java jar file. The quick start instructions on the ANTLR website seem really straightforward, and they probably are if you know what you are doing. However, I had a bit of trouble getting the handy antlr4 and grun commands to work properly in my environment. This is likely due to my Unix/Linux background and because I am not used to messing with environment variables and batch files on windows.

Adding things to the PATH and creating bash aliases in Linux is a piece of cake. This is a bit trickier on Windows so I figured I would make a short tutorial to help anyone else who does not know what they are doing like me.

Download Antlr

You can get the latest ANTLR from here. Save this file to C:\Javalib

Add ANTLR to the CLASSPATH

CLASSPATH is an environmental variable. In order to set an environmental variable in Windows you will need to do the following.

  1. Open Up File Explorer
  2. Right Click on This PC
  3. Select Properties
  4. On the left hand side of the new window select Advanced system settings
  5. On the bottom of this screen select Environment Variables…
  6. This is a new computer with no CLASSPATH variable so I had to add a new one. If you have used other Java Libraries it is possible that you may already have CLASSPATH defined. If you see CLASSPATH under System Variables append it with C:\Javalib\antlr-4.5.3-complete.jar; If you do not have a CLASSPATH variable defined, select **New…* and then enter CLASSPATH for the Variable Name, and C:\Javalib\antlr-4.5.3-complete.jar for the Variable value.

Create batch commands for ANTLR Tool and TestRig

In order to make ANTLR easier to run from the command line we will need to add two simple batch files somewhere in the PATH. I decided to put these in C:\Javalib in order to keep them organized and together. C:\Javalib is not in the PATH by default so we must append the existing PATH variable just like we did in the previous step.

  1. Open Up File Explorer
  2. Right Click on This PC
  3. Select Properties
  4. On the left hand side of the new window select Advanced system settings
  5. On the bottom of this screen select Environment Variables…
  6. Find the PATH variable
  7. Append ;C:\Javalib\; to the existing PATH variable

Now we need to create the batch files.

  1. Create a new file in C:\Javalib called antlr4.bat
  2. In this file enter java org.antlr.v4.Tool %*
  3. Save this file
  4. Create a new file in C:\Javalib called grun.bat
  5. In this file enter java org.antlr.v4.runtime.misc.TestRig %*
  6. Save this file

This will now allow us to enter antrl4 and grun into a command prompt and launch ANTLR or the Testing Suite respectively.

Make Sure Everything Works

To make sure that all of this worked;

  1. Open up a Command Prompt or Powershell
  2. Enter the command antlr4
  3. You should see something like this:
Screenshot of ANTLR4 in Command Prompt

Screenshot of ANTLR4 in Command Prompt

  1. Enter the command grun
  2. You should see somethign like this:
Screenshot of grun in Command Prompt

Screenshot of grun in Command Prompt

Congrats, you are ready to hack on compilers now. Next, check out The Definitive ANTLR Reference book to learn everything there is to know about ANTLR.

If you made it this far, you should probably follow me on twitter. 🙂

This entry was posted in Hacking and tagged , . Bookmark the permalink.

9 Responses to Setting up ANTLR4 on Windows

  1. Pingback: Installing Leiningen on Windows « levlaz

  2. Thanks! I’ve been fiddling with this process for way longer than I should’ve.

  3. m aditya says:

    yes it help me too

  4. Don Reba says:

    I’m surprised they didn’t bother to make an installer.

    • levlaz says:

      Yeah I find that to be true with a lot of various Java libraries. They assume that you know whats going on and that you will place the jar in the appropriate place.

  5. qcyaner 瞿 says:

    Thanks a lot ! I installed antlr 4.5 as the method from link “https://github.com/antlr/antlr4/blob/master/doc/getting-started.md”, but the command in grun.bat it gives dose not match antlr 4.5 but for the 4.7. I finally find the correct comman here.

Leave a Reply

Your email address will not be published. Required fields are marked *