Skip to content

Instantly share code, notes, and snippets.

Forked from mattmcd/Hello.g4
Created January 26, 2016 14:27
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
Simple ANTLR4 grammar example
// define a grammar called Hello
grammar Hello;
r : 'hello' ID;
ID : [a-z]+ ;
WS : [ \t\r\n]+ -> skip ;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
public class Hello {
public static void main( String[] args) throws Exception
HelloLexer lexer = new HelloLexer( new ANTLRFileStream(args[0]));
CommonTokenStream tokens = new CommonTokenStream( lexer );
HelloParser parser = new HelloParser( tokens );
ParseTree tree = parser.r();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk( new HelloWalker(), tree );
public class HelloWalker extends HelloBaseListener {
public void enterR(HelloParser.RContext ctx ) {
System.out.println( "Entering R : " + ctx.ID().getText() );
public void exitR(HelloParser.RContext ctx ) {
System.out.println( "Exiting R" );
all: Hello.class Hello.g4
antlr4 Hello.g4
javac Hello*.java
hello world
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment