antlr
# MyLanguage.g
grammar MyLanguage;
startRule: 'Hello' ID EOF;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
import org.stringtemplate.v4.*;
public class MyLanguageExample {
public static void main(String[] args) {
String input = "Hello John";
ANTLRInputStream inputStream = new ANTLRInputStream(input);
MyLanguageLexer lexer = new MyLanguageLexer(inputStream);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
MyLanguageParser parser = new MyLanguageParser(tokenStream);
ParseTree tree = parser.startRule();
ST template = new ST("Hello, <name>!");
template.add("name", tree.getChild(1).getText());
System.out.println(template.render());
}
}