grammar Grammar;
program : 'Hello' ID ';'
;
ID : [a-zA-Z]+ ;
WS : [ \t\r
]+ -> skip ;
java -jar antlr-4.9.2-complete.jar -o generated -visitor Grammar.g4
program(name) ::= <<
public class <<name>> {
public static void main(String[] args) {
System.out.println("Hello, <<name>>!");
}
}
>>
import org.stringtemplate.v4.ST;
import org.stringtemplate.v4.STGroup;
import org.stringtemplate.v4.STGroupFile;
public class Main {
public static void main(String[] args) {
STGroup group = new STGroupFile("template.stg");
ST template = group.getInstanceOf("program");
template.add("name", "World");
String result = template.render();
System.out.println(result);
}
}
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.9.2</version>
</dependency>
<dependency>
<groupId>org.stringtemplate</groupId>
<artifactId>stringtemplate</artifactId>
<version>4.0.2</version>
</dependency>