javacc

Java开源 语法分析器类别列表网址:http://www.open-open.com/55.htm
 JavaCC 
Java Compiler Compiler 是一个用JAVA开发的最受欢迎的语法分析生成器。这个分析生成器工具可以读取上下文无关且有着特殊意义的语法并把它转换成可以识别且匹配该语法的JAVA程序。它还提供JJTree等工具来帮助我们建立语法树。JavaCC plug-in:一个用于辅助JavaCC应用程序开发的Eclipse插件.

 ANTLR 
ANTLR(ANother Tool for Language Recognition)它是这样的一种工具,它可以接受词文法语言描述,并能产生识别这些语言的语句的程序。作为翻译程序的一部分,你可以使用简单的操作符和动作来参数化你的文法,使之告诉ANTLR怎样去创建抽象语法树(AST)和怎样产生输出。ANTLR知道怎样去生成识别程序,语言包括Java,C++,C#.

 Chaperon 
Chaperon是一个可以把有结构的Text转换成XML.它包括一个强大的LALR(1)解析器来解析Text和一个可以用来创建XML文档的Tree builder。

 JFlex  
JFlex是一个Java的词法/语法分析生成器。

 SableCC 
SableCC是一个用来生成编译器和分析器的面向对象的框架。这个框架是基于两个基本的设计决策:首先是利用面向对象技术自动构建精确的典型的抽象语法树。第二,这个框架使用经过扩展的Visitor访问者模式来生成tree-walker类。

 Beaver  
Beaver是一个LALR(1) 语法分析生成器。它读取一些上下文无关的语法并把它转换成一个利用该语法描述的语言分析器(一个Java类)。

 JTopas  
JTopas这个开源项目提供了一个很小,容易使用的用来分析特殊Text数据的Java类包。这些数据可以是来自包含一些注释的简单配置文件,HTML,XML,RTF stream,和来自其程序语言的源代码等。有时需要解释所有的Text数据,而有时只需解释其中重要的部分。

 runcc 
runcc是一种在运行时生成parsers和lexers的语法分析生成器。它自带一个Java和XML分析器的例子。

 CUP 
一个LALR(Lookahead Left to Right Parsing)语法/词法分析生成器.


从网址https://javacc.dev.java.net/servlets/ProjectDocumentList下载javacc-4.0beta1.zip
然后解压缩文件javacc-4.0beta1.zip到javacc-4.0beta1
注意它不支持jdk1.2
支持>=Version jdk1.4
你需要安装jdk1.4,一般把jdk1.4的相关文件放在c:/jdk1.4目录下
将javacc-4.0beta1文件夹复制到c:/jdk1.4目录下,然后需要把javacc-4.0beta1文件夹中的所有文件复制到c:/jdk1.4/bin目录下
在环境变量中-->Adminstrator的用户变量: path为:          .;c:/jdk1.4/bin
                                        classpath为:      c:/jdk1.4/lib/tools.jar;c:/jdk1.4/lib/dt.jar

javaCC使用的各种语言的Grammar 文件在网址http://www.cobase.cs.ucla.edu/pub/javacc/有很多 ,
例如Ada, ASN.1,C,C++,C++ to Html, DCL, DU, DTD, EcmaScript, Express, GDMO, HEL,
HTML, IDL, InfoSapient, Java, Java to HTML, JavaScript, JEP, Oberon, ODL, OQL, PGN,
Python, PHP, Quilt, Rational Rose, RMAIL, RPC, RTF, Scheme, Simkin, SPL, SpecC, SQL,
STEP, StruQL, VHDL, VRML, Visual Basic, XPath/XSLT pattern, XPath/XSLT, XML, XML, XQuery

CommandLine as follows:
javacc Grammar.jj
javac  *.java
java   Grammar
Ctrl+c结束输入状态 退出到jdk1.4/bin目录下


javac的语法文件:javacc-4.0beta1/examples/JavaCCGrammar/JavaCC.jj
你需要把JavaCC.jj文件名改成:JavaCCParser.jj
c:/jdk1.4/bin/javajj JavaCCParser.jj
c:/jdk1.4/bin/javac  *.java
c:/jdk1.4/bin/java   JavaCCParser


你可能感兴趣的:(javacc)