JavaCC 介绍
JJTree
JJTree为了让JJ文件具有生成分析树的能力。
实践
下载 Eclipse JavaCC plugin(http://www.easyeclipse.org/site/plugins/javacc.html
)
在公司win7下载的easy-javacc-1.5.7.exe
一个示例程序
options {
LOOKAHEAD = 1;
CHOICE_AMBIGUITY_CHECK = 2;
OTHER_AMBIGUITY_CHECK = 1;
STATIC = true;
DEBUG_PARSER = false;
DEBUG_LOOKAHEAD = false;
DEBUG_TOKEN_MANAGER = false;
ERROR_REPORTING = true;
JAVA_UNICODE_ESCAPE = false;
UNICODE_INPUT = false;
IGNORE_CASE = false;
USER_TOKEN_MANAGER = false;
USER_CHAR_STREAM = false;
BUILD_PARSER = true;
BUILD_TOKEN_MANAGER = true;
SANITY_CHECK = true;
FORCE_LA_CHECK = false;
}
PARSER_BEGIN(Simple1)
/** Simple brace matcher. */
public class Simple1 {
/** Main entry point. */
public static void main(String args[]) throws ParseException {
Simple1 parser = new Simple1(System.in);
parser.Input();
}
}
PARSER_END(Simple1)
/** Root production. */
void Input() :
{}
{
MatchedBraces() ("\n"|"\r")* <EOF>
}
/** Brace matching production. */
void MatchedBraces() :
{}
{
"{" [ MatchedBraces() ] "}"
}
cmmJavaCC和cmmJJTree
问题1:运行cmmJJTree,执行到SimpleNode.dump("")抛异常。
附
1.参考1 http://www.cnblogs.com/Gavin_Liu/archive/2009/03/07/1405029.html
2.其他知识点:
分享到:
相关推荐
JavaCC和JJTree是用于构建解析器和抽象语法树(AST)的工具,常用于编译器设计和解析复杂语法的场景。它们是Java语言的版本,类似于其他编程语言中的YACC和LEX。 1. **JavaCC**: - JavaCC(Java Compiler ...
有关完整详细文档,请参阅https://javacc.github.io/javacc/。内容介绍特征一个例子教程常问问题入门从命令行在 IDE 中重建 JavaCC社区支持文档资源由 JavaCC 提供支持执照介绍特征JavaCC 生成自上而下(递归下降)...
### JavaCC 入门知识点详解 #### 一、JavaCC简介 JavaCC(Java Compiler Compiler)是一款用于构建解析器的工具,尤其适用于那些希望开发编译器、解释器或脚本引擎的程序员。通过JavaCC,用户可以轻松地实现语法...
4. 语法树预处理器(TREE BUILDING PREPROCESSOR):javacc与jjtree同时发布,jjtree是一个功能强大的语法树预处理器。 5. 定制化:javacc提供了很多的功能选项,来定制它的行为还有它所产生的分析器程序的行为。 6....
jjTree 是 JavaCC 的一个重要工具,定义了 Java 接口节点,所有分析树节点都必须执行。该接口提供的方法操作,如母公司设置的节点,新增的儿童和检索它们。JJTree 经营有两种模式,简单的和多(由于缺乏更好的条件)...
在本文中,我们将探讨JavaCC的基础知识,包括如何使用它来构建解析器,并通过实例展示如何使用JJTree辅助工具生成解析树。 首先,让我们理解BNF和EBNF。它们是形式语言的描述方法,用于定义文法规则,使得解析器...
相一致 JavaCC还提供JJTree工具来帮助我们建立语法树 JJDoc工具为我们的源文件生成BNF范式 巴科斯 诺尔范式 文档 Html ">JavaCC JavaCompilerCompiler 是一个用JAVA开发的最受欢迎的语法分析生成器 这个分析生成器...
JavaCC(Java Compiler Compiler)是Java语言的一个开源工具,用于生成词法分析器(lexical analyzer)和语法分析器(parser)的源代码。这个工具基于经典的LL(k)和LR(1)解析技术,并且支持自定义语法和语义动作。在...
【JavaCC入门详解】 JavaCC(Java Compiler Compiler)是一种基于Java的词法分析器和语法分析器生成器,常用于构建解析器和编译器。它允许开发者使用规范的语法描述语言来定义语言的结构,然后自动生成解析器代码,...
8. **JJTree工具**:JavaCC附带的JJTree工具用于生成AST节点类,使得用户可以自定义AST的结构和行为。 9. **可扩展性**:JavaCC允许用户插入自定义的Java代码,可以在解析过程中执行任意的Java逻辑,增强了工具的...
JavaCC,全称为Java Compiler Compiler,是一款强大的工具,用于生成Java源代码的解析器和词法分析器。它是基于LL(k)语法分析方法的,支持自定义语法,并且可以处理复杂的语言结构。JavaCC在软件工程领域,尤其是...
JavaCC(Java Compiler Compiler)是一种强大的词法和语法解析工具,用于生成Java源代码的解析器和词法分析器。这个工具广泛应用于处理结构化文本输入,如编程语言、配置文件或者任何需要解析的定制语言。JavaCC的...
JavaCC(Java Compiler Compiler)是Java语言的一个开源工具,用于生成词法分析器(lexical analyzers)和语法分析器(parsers)。它基于LL(k)语法解析策略,允许开发者使用简洁的BNF(巴科斯范式)语法来定义语言或...
JavaCC通过JJTree和JTB等工具,支持BNF(巴科斯范式)样式的语法描述,使得开发者可以方便地进行编译器设计和实现。 在Java写的CMM词法分析器源代码中,我们可以期待看到以下几个关键部分: 1. **词法规则定义**:...
3. **JJTree(语法树生成器)**: 可选组件,用于生成抽象语法树,便于后续处理和代码生成。 4. **用户定义的非终结符和动作**: 用户可以在JJT文件中定义自己的非终结符,同时插入Java代码作为动作,这些动作会在解析...
3. **JJTree插件**:JavaCC还包含一个名为JJTree的插件,它用于生成抽象语法树的节点类。通过JJTree,开发者可以方便地创建自定义的语法树结构,这对于进行语义分析和代码生成非常有用。 4. **JavaCC语法**:JavaCC...
JavaCC,全称为Java Compiler Compiler,是一款强大的工具,主要用于生成解析器和词法分析器,尤其是在处理复杂的语法和解析任务时。它是一个基于Java的开源软件,被广泛应用于构建编译器、解释器以及各种语言处理...
JavaCC和JJTree是两个强大的工具,用于生成Java解析器和抽象语法树(AST)。JavaCC(Java Compiler Compiler)是一个自动生成词法分析器和语法分析器的工具,而JJTree是JavaCC的一个扩展,专注于生成AST。 1. **...