2.antlr4開發
- 2019 年 12 月 20 日
- 筆記
2.antlr4開發
上一篇:1.ANTLR4 helloworld基礎開發與IDEA插件使用
獲取源碼
antlr4.7.2
1.通過MyHelloVisitor實現HelloVisitor
package wang.xiaolei.lei; import org.antlr.v4.runtime.tree.ErrorNode; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.RuleNode; import org.antlr.v4.runtime.tree.TerminalNode; /** * 作者: wangxiaolei * 時間: 2019/12/12 * 微信公眾號:從入門到精通 * 微信:chinesedream2 */ public class MyHelloVisitor implements HelloVisitor { @Override public Object visitR(HelloParser.RContext ctx) { return null; } @Override public Object visit(ParseTree tree) { return null; } @Override public Object visitChildren(RuleNode node) { return null; } @Override public Object visitTerminal(TerminalNode node) { return null; } @Override public Object visitErrorNode(ErrorNode node) { return null; } }
2.編寫main函數
package wang.xiaolei.lei; import org.antlr.v4.runtime.CharStream; import org.antlr.v4.runtime.CharStreams; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTree; /** * 作者: wangxiaolei * 時間: 2019/12/12 * 微信公眾號:從入門到精通 * 微信:chinesedream2 */ public class HelloMain { public static void main(String ...args) { CharStream input = CharStreams.fromString("hellotworld"); // 構造詞法分析器 HelloLexer lexer=new HelloLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); // 實例化解析器 HelloParser parser = new HelloParser(tokens); ParseTree tree = parser.r(); MyHelloVisitor myHelloVisitor = new MyHelloVisitor(); myHelloVisitor.visit(tree); } }
運行 HelloMain

3.如果改變輸入如 helltworld
就會檢測出問題

上一篇:1.ANTLR4 helloworld基礎開發與IDEA插件使用