antlr4_builder 0.1.1 
antlr4_builder: ^0.1.1 copied to clipboard
Plugin for generating dart parser code from ANTLR4 .g4 grammar.
antlr4_builder #
A Dart package that integrates ANTLR4 grammar processing into the build_runner ecosystem, allowing you to automatically generate Dart lexer and parser files from your ANTLR4 grammars.
Features #
- Automated Code Generation: Automatically generates Dart lexer, parser, listener, and base listener files from 
.g4grammar files during the build process. build_runnerIntegration: Seamlessly integrates with Dart'sbuild_runnerfor efficient and incremental builds.- ANTLR JAR Management: Automatically downloads the necessary ANTLR4 JAR if not already present, simplifying setup.
 - Temporary File Management: Utilizes 
ScratchSpacefor robust and clean management of temporary files generated during the ANTLR processing. - Configurable ANTLR Version: Allows specifying the ANTLR version to use for code generation.
 
Getting started #
Prerequisites #
- Java Development Kit (JDK) (required for the ANTLR tool)
 - Dart SDK (version 3.0.0 or higher)
 build_runnerin your project'sdev_dependencies.
Installation #
Add antlr4 to your project's pubspec.yaml under dependencies:
dependencies:
  antlr4: ^4.13.0 # Required for generated ANTLR code
And add antlr4_builder and build_runner to your dev_dependencies:
dev_dependencies:
  antlr4_builder: ^0.1.0 # Replace with the actual latest version
  build_runner: ^2.0.0 # Replace with the actual latest version
Run dart pub get to fetch the new dependencies.
Configuration #
Create or update your build.yaml file in the root of your project to enable the antlr4_builder:
targets:
  $default:
    builders:
      antlr4_builder|antlrBuilder:
        enabled: true
        options:
          # Specify the ANTLR version to use
          version: "4.13.2" 
          # Other options
          # ...
          # generate_listener: true
          # generate_visitor: true
          # extra_args: ["-Werror"]
Configuration Options #
The following options can be configured in your build.yaml under the options key:
version: (String, required) Specifies the version of the ANTLR tool to use.generate_listener: (boolean, optional) Controls whether to generate a parse tree listener. Defaults totrue. Corresponds to the ANTLR-listenerand-no-listenerflags.generate_visitor: (boolean, optional) Controls whether to generate a parse tree visitor. Defaults tofalse. Corresponds to the ANTLR-visitorand-no-visitorflags.extra_args: (List
Usage #
For a complete example, refer to the example/ directory in this repository.
Running the Example #
To run the example project:
- Navigate to the 
exampledirectory:cd example - Fetch the example project's dependencies:
dart pub get - Run 
build_runnerto generate the ANTLR Dart files:dart run build_runner build - Run the example application:
You should see "Parsing successful!" in the console output.dart run bin/main.dart