前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.antlr4开发

2.antlr4开发

作者头像
王小雷
发布2019-12-20 16:27:50
8300
发布2019-12-20 16:27:50
举报
文章被收录于专栏:王小雷王小雷

2.antlr4开发

上一篇:1.ANTLR4 helloworld基础开发与IDEA插件使用

获取源码

antlr4.7.2

1.通过MyHelloVisitor实现HelloVisitor

代码语言:javascript
复制
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函数

代码语言:javascript
复制
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("hello\tworld");

        // 构造词法分析器
        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.如果改变输入如 hell\tworld就会检测出问题

在这里插入图片描述
在这里插入图片描述

上一篇:1.ANTLR4 helloworld基础开发与IDEA插件使用

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.antlr4开发
    • 获取源码
      • 1.通过MyHelloVisitor实现HelloVisitor
        • 2.编写main函数
          • 3.如果改变输入如 hell\tworld就会检测出问题
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档