mirror of
https://github.com/ethauvin/bld-antlr4.git
synced 2025-04-25 00:37:12 -07:00
34 lines
No EOL
1.5 KiB
Markdown
34 lines
No EOL
1.5 KiB
Markdown
# [Bld](https://github.com/rife2/rife2/wiki/What-Is-Bld) extension to generate ANTLR4 parsers
|
|
|
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
[](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
|
|
[](https://github.com/rife2/bld-antlr4/releases/latest)
|
|
[](https://github.com/rife2/bld-antrl4/actions/workflows/bld.yml)
|
|
|
|
An extension for generating Java sources from ANTLR4 parsers.
|
|
|
|
This is an example usage:
|
|
|
|
```java
|
|
private final Antlr4Operation antlr4Operation_ = new Antlr4Operation();
|
|
@BuildCommand
|
|
public void generateGrammar()
|
|
throws Exception {
|
|
antlr4Operation_.executeOnce(o -> o
|
|
.sourceDirectories(List.of(new File(srcMainDirectory(), "antlr")))
|
|
.outputDirectory(new File(buildDirectory(), "generated"))
|
|
.visitor()
|
|
.longMessages());
|
|
}
|
|
|
|
// compileOperation_ is part of the main project
|
|
public void compile()
|
|
throws Exception {
|
|
generateGrammar();
|
|
compileOperation_.executeOnce(o -> o
|
|
.fromProject(this)
|
|
.mainSourceDirectories(List.of(antlr4Operation_.outputDirectory())));
|
|
}
|
|
```
|
|
|
|
The complete document of `Antrl4Operation` can be found in its [javadocs](https://rife2.github.io/bld-antlr4/rife/bld/extension/Antlr4Operation.html). |