`
guoyunsky
  • 浏览: 854315 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
3d3a22a0-f00f-3227-8d03-d2bbe672af75
Heritrix源码分析
浏览量:206245
Group-logo
SQL的MapReduce...
浏览量:0
社区版块
存档分类
最新评论

JavaCC学习进阶(一) 通过JavaCC实现HelloWorld

 
阅读更多

      以前接触过JavaCC,但没怎么深入.周末花了点时间大概学习了下.至于概念性的东西,网上一搜一大把,这里还是实战为主.一步步的深入.毕竟这东西不常用,哪天突然要用了,回过来看下,或许就能想起.由于我也是初学,博客顶多充其量是个笔记.希望对自己有用的同时,对大家也有用.

      JavaCC也算得上是一门语言了,不过比较特殊.以前看Lucene源码的时候接触过,但由于Lucene的搜索语法并不复杂,所以大概看了下便能看懂.最近开始看Pig源码,其中Pig Latin也是通过JavaCC解析.由于Pig Latin相对复杂.可能Lucene只是实现SQL中的like,而Pig则是所有.所以Pig Latin相对就要复杂多了.如此,JavaCC也不得不去熟悉下.

       这里先贴代码,通过JavaCC实现HelloWorld.

 

PARSER_BEGIN(HelloWorld)

public class HelloWorld{
	public static void main(String[] args){
		System.out.println("Hello World");
	}
}

PARSER_END(HelloWorld)

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

 

   看起来很简单,我这里取名为HelloWorld.jj.然后通过JavaCC生成,JavaC编译,以及运行.如下步骤:

   1)JavaCC编译

      javacc HelloWorld.jj

      会有如下提示,则表示编译成功:

Java Compiler Compiler Version 5.0 (Parser Generator)
(type "javacc" with no arguments for help)
Reading from file HelloWorld.jj . . .
File "TokenMgrError.java" is being rebuilt.
File "ParseException.java" is being rebuilt.
File "Token.java" is being rebuilt.
File "SimpleCharStream.java" is being rebuilt.
Parser generated successfully.

    然后可以在你的HelloWorld.jj文件所在的目录下,发现会生成如下文件:

    HelloWorld.java  HelloWorldConstants.java  HelloWorldTokenManager.java ParseException.java 

    SimpleCharStream.java  Token.java TokenMgrError.java

   

   2)编译java文件

      javac *.java

   3) 运行HelloWorld

      java HelloWorld

 

  如果控制台看到Hello World就标明这个JavaCC HelloWorld之旅成功!

 

更多技术文章、感悟、分享、勾搭,请用微信扫描:

分享到:
评论

相关推荐

    JavaCC学习心得

    JavaCC 学习心得 JavaCC 是一种强大的解析器生成器,可以根据用户的需求生成解释器。下面是对 JavaCC 的学习心得,分为工作原理、使用方法和深层认识三个方面。 工作原理: 1.1 结构综述: JavaCC 文件可以分为...

    javacc学习手册(个人总结)

    javacc学习手册 javacc是一款功能强大的编译器生成工具,可以生成词法分析器和语法分析器。下面是javacc的详细知识点: javacc安装 1. 安装JDK,并设置环境变量PATH路径。 2. 下载javacc,例如下载4.0版本的zip包...

    javacc6.0安装及学习示例

    学习示例通常包含了一系列逐步进阶的教程,展示了如何使用JavaCC来解析不同类型的语法结构。这些例子可能会涵盖从简单的算术表达式到复杂的数据结构和控制流语句,帮助初学者快速掌握JavaCC的基本用法。通过动手实践...

    JavaCC学习与应用

    ### JavaCC 学习与应用知识点详解 #### 一、JavaCC 概述 - **定义**:JavaCC(Java Compiler Compiler)是一款用于Java开发的语法分析生成器工具,能够根据给定的文法文件自动生成Java代码,这些Java代码能够解析...

    JAVACC简易教程学习

    通过本教程的学习,我们可以了解到JavaCC作为一款强大的工具,在处理复杂的语言解析任务方面具有显著的优势。无论是对于初学者还是经验丰富的开发者而言,掌握JavaCC的基本用法都能极大提升工作效率。此外,通过对...

    基于JavaCC的c语言编译器前端实现

    这个项目“基于JavaCC的C语言编译器前端实现”显然旨在教授如何使用JavaCC来创建一个C语言的编译器前端。 在编译器设计中,前端主要负责词法分析、语法分析和语义分析。词法分析是将源代码转换为一系列的单词项...

    javacc学习心得.doc

    JavaCC学习心得 JavaCC 是一个词法分析生成器和语法分析生成器,能够生成词法分析器和语法分析器的 Java 代码。词法分析器可以将字符串解析为一个一个的标识符(Token),并且可以把这些标识符归类。语法分析器会分析...

    JavaCC实现MiniC语言的编译

    在本项目中,"JavaCC实现MiniC语言的编译"是一个实践性的任务,目的是利用JavaCC来构建一个小型的C语言编译器——MiniC。这个编译器能够解析、理解和转换C语言的基本元素,如变量声明、表达式、控制结构等。 1. **...

    javacc 学习心得

    本文档旨在分享通过两周多的学习后对JAVACC的理解与心得,主要内容涵盖其工作原理、使用方法及深入认识等方面。 #### 二、JAVACC的工作原理 **1. 结构综述** JAVACC文件结构主要包括以下几个部分: - **参数列表...

    javacc 词法分析器

    总之,JavaCC是一个强大的工具,用于生成词法分析器和解析器,它支持面向对象的编程,并允许开发者专注于语言文法的定义,而不是底层解析算法的实现。在给定的项目中,`testcc`目录的代码可能包含了一些使用JavaCC...

    javacc实现cmm语法分析

    JavaCC(Java Compiler Compiler)是一种广泛使用的工具,用于生成解析器和词法分析器,尤其在处理复杂的语法和解析任务时。...通过查看和理解这些文件,你可以更深入地学习JavaCC和CMM解析的实现细节。

    基于JavaCC的Python编译器的设计与实现+全部资料齐全+部署文档 优秀项目

    基于JavaCC的Python编译器,实现了Python的一些基本语法从词法分析、语法分析和语义分析三方面进行编译器的设计与实现实现了以Java为语言,以JavaCC为编译器自动生成工具,语法模仿Python的编译器+全部资料齐全+部署...

    Test.rar 使用Javacc编写的简易计算器

    但是,通过学习JavaCC,你可以深入理解编译原理和解析技术,这对于提升编程能力,特别是处理语言解析和数据处理问题,是非常有益的。 总的来说,"Test.rar"中的简易计算器项目提供了一个很好的实践平台,让你能亲手...

    javacc-4.0以及 javacc-5.0下载

    JavaCC(Java Compiler Compiler)是Java语言的一个开源工具,用于生成词法分析器(lexical analyzers)和语法分析器(parsers)。它基于LL(k)语法解析策略,允许开发者使用简洁的BNF(巴科斯范式)语法来定义语言或...

    Java写的cmm词法分析器(源代码)及javacc学习心得文档

    JavaCC通过JJTree和JTB等工具,支持BNF(巴科斯范式)样式的语法描述,使得开发者可以方便地进行编译器设计和实现。 在Java写的CMM词法分析器源代码中,我们可以期待看到以下几个关键部分: 1. **词法规则定义**:...

    JavaCC

    总结起来,JavaCC是一个功能强大且灵活的Java语法分析工具,它允许开发者通过定义文法来生成解析器和词法分析器,从而处理各种语言和数据格式的解析任务。通过使用JavaCC,开发者可以轻松地构建自己的编译器、解释器...

    javacc安装包javacompilercompiler

    JavaCC(Java Compiler Compiler)是一款强大的词法分析和语法分析工具,主要用于生成解析器和词法分析器。它是Java语言的版本,适用于构建基于Java的解析器,如编译器、解释器或查询处理器。JavaCC的核心是它能将一...

    CMM语言解释器JAVA实现(javacc5.0)

    总的来说,"CMM语言解释器JAVA实现(javacc5.0)"项目是一个典型的编译原理实践,它涉及到语言设计、解析技术以及程序执行等多个方面的知识。通过这个项目,开发者可以深入理解编程语言的底层工作原理,同时也能提升...

    javacc+jjtree使用教程

    - `javacc minijava.jj`命令执行后,JavaCC会生成更多的Java源代码,包括一个解析器类(如`MiniJavaParser.java`)和其他辅助类,这些类用于处理词法分析、语法分析和构建AST。 - 解析器类(如`MiniJavaParser`)...

Global site tag (gtag.js) - Google Analytics