官网:
https://javacc.github.io/javacc/
https://github.com/javacc/javacc#getting-started
安装
下载解压
执行:
mvn package
将 javacc-7.0.10.jar 重命名为 javacc.jar
并将目录下的scripts文件夹加入到环境变量中。
执行javacc命令验证是否成功。
测试
官网例子,解析大括号
合法:
{}, }}} // … etc
非法:
{}{}, }{}}, { }, {x} // … etc
新建文件 Parser.jj:
PARSER_BEGIN(Example)
/** Simple brace matcher. */
public class Example {
/** Main entry point. */
public static void main(String args[]) throws ParseException {
Example parser = new Example(System.in);
parser.Input();
}
}
PARSER_END(Example)
/** Root production. */
void Input() :
{}
{
MatchedBraces() ("\n"|"\r")* <EOF>
}
/** Brace matching production. */
void MatchedBraces() :
{}
{
"{" [ MatchedBraces() ] "}"
}
执行命令:
javac Example.java
java Example