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之旅成功!

你可能感兴趣的:(helloworld)