JAVACC

JavaCC是一个用于生成词法和语法分析器的工具,它读取.JJ文件并生成Java代码。用户需下载解压后设置环境变量,通过BNF生产式定义语法规则,如示例中的数字加法解析。
摘要由CSDN通过智能技术生成

JavaCC全称为Java Compiler Compiler,它是一个生成器,用于生成词法分析器(lexical analysers)和语法分析器(parsers);JavaCC本身并不是词法分析器和语法分析器,它是一个生成器!JavaCC通过读取一个后缀为.jj的描述文件中的特定描述,来生成词法分析器和语法分析器,并且生成的词法分析器和语法分析器使用Java书写的

1. 安装;

        下载地址: https://github.com/javacc/javacc/tree/master#download

        

2. 解压 

javacc-javacc-7.0.12.zip 文件, 在解压目录创建 target 目录,将 bootstrap 目录下的javacc.jar copy 到 target 目录下;

 创建环境变量JAVACC_HOME; 并且在 PATH 路径下增加配置:%JAVACC_HOME%\scripts,指向 scripts 目录;

 

验证:

 

文档:

https://www.engr.mun.ca/~theo/JavaCC-Tutorial/javacc-tutorial.pdf

 良心玩家:

https://www.cnblogs.com/suhaha/p/11733487.html

词法分析器:

SKIP : { "\n" | "\r" | "\r\n" }

TOKEN : { < PLUS : "+" > }

语法分析器

  语法分析器的描述由BNF生产式构成。可以看到,语法分析器的描述看起来跟java的方法定义形式有点相似。

void Start() :
{}
{
    <NUMBER>
    (
        <PLUS>
        <NUMBER>
    )*
    <EOF>
}

上面的BNF生产式指定了合法的token序列的规则:必须以NUMBER token开头,以EOF token结尾,而在NUMBER和EOF中间,可以是0至多个PLUS和NUMBER的token,而且必须是PLUS后跟着NUMBER。

想起内容去 良心玩家哪里看;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值