JavaCC语法分析器

 

JavaCC (Java Compiler Compiler)是Java实现的语法分析器,用以根据用户自定义规则进行上下文无关语法内容的分析工作,以简化编译器开发时编写涉及词法、语法、语义规则处理代码时的工程量。

较之C语言实现的简化编译构造程序LEX (Lexical Analyzers)和YACC (Yet Another Compiler Compiler),JavaCC使用递归下降的语法分析方法,定义的文法规则表达范围广泛。JavaCC不直接生成分析树或抽象语法树(AST ),但提供建立分析树或AST生成的预处理器JJTree ,JJTree采用压栈出栈的递归方法生成分析树,为JavaCC的输入进行预处理。

JavaCC在使用方面上手迅速,编译JavaCC生成的Java代码时,仅在标准JDK支持下,无需第三方JAR即可完成。首先,使用者按照JavaCC语法规范 编写源文件,将标记(Token)、词法和语法规则、以及每个解析阶段中发生的行为定义在*.jj文件中。

之后,使用JavaCC编译器编译*.jj文件,可以生成Java代码实现的特定语言分析器。生成的源程序包含:*Parser.java(语法分 析器)、*TokenManager.java(词法分析器)、TokenMgrError.java(错误处理程序)、Token. java (标记信息)、*Constants.java (分析器中使用的常量)、SimpleCharStream.java (字符流类)等源文件。在使用javac将源代码编译为class之后,就可以运行JavaCC生成的语法分析器来执行语法分析工作。

在JavaCC项目中,还提供了JJDOC 工具,用以生成BNF范式 表示的语法文档。同时,JavaCC项目为用户提供了可直接使用的语法库和实例代码,存放在examples目录中,其中包含文本邮件处理、JJTree示例、解释器实现等面向不同应用的示例。

OGSA-DQP 项目中,也使用了类似的查询编译器Polar*,来生成OQL对象查询 树的语法解析 结果,以解析分布式查询内容并绘制OQL查询树。

目前NetBeans IDE已提供了JavaCC编写和编译插件 ,支持*.jj文件的语法加亮和直接编译。在NetBeans IDE中借助JavaCC构建新语言的更多细节,请查看NetBeans Wiki中的详细教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值