Skip to content

funkwerk/antlr-d

Repository files navigation

ANTRLR D Target

The ANTLR D Target represents an full featured and tested port of ANTLR 4.

This covers the runtime library, the tool to translate the syntax into D code and the tests for the runtime library. See also ANTLR version 4.9.2.

Like other language ports, this D runtime library uses UTF-8.

Install

  1. Download or clone the package
  2. Change directory to the root of the package and call dub.
  3. You will find the generated ANTLR D-runtime library in lib/libantlr-d.a
  4. The ANTLR tool for D will be generated by make build_examples (./build.ps1 build_examples on windows) in build/antlr4-4.9.2/tool/target/antlr4-4.9.2-complete.jar

Consider providing a shortcut to make it easy to use ANTLR. For example, define an alias:

alias antlr4='java -jar path/to/antlr-d/build/antlr4-4.9.2/tool/target/antlr4-4.9.2-complete.jar'

Dependencies

ANTLR tool

  • java 1.8
  • maven
  • 7-Zip (Only on windows)

Examples

Check out the two simple but complete examples:

  1. Building a Calculator Using a Listener
  2. Building a Calculator Using a Visitor

Extension versus other ANTLR runtime versions

The data type to store text is Variant. This is handy for the rewriting feature on an indent-based syntax like Python. In this case we need a structure representing the text as well as the number of indents.