JavaCC -- 生成C++代码

  • 概述
  • 生成C++代码方法
  • 测试

概述

JavaCC官网地址https://javacc.java.net/。最新版本的JavaCC可以生成C++代码。

生成C++代码方法

  1. 执行make命令

    /javacc-6.0/examples/JavaGrammars/cpp目录即是例子JavaGrammars对应的生成C++代码的目录。
    在cpp目录下,执行make命令。生成文件如下:

    //wjavaparser和javaparser为可执行文件,gen目录下为C++代码。
    [abc@search-engine—dev4 cpp]$ ll -t
    total 1060
    -rwxrwxr-x 1 abc abc 334815 May 18 03:43 wjavaparser
    -rwxrwxr-x 1 abc abc 591173 May 18 03:43 javaparser
    drwxrwxr-x 2 abc abc 4096 May 18 03:43 gen

  2. gen目录文件介绍

    [abc@search-engine—dev4 gen]$ ll
    total 320
    //字符流处理类
    -rw-rw-r– 1 abc abc 5405 May 18 03:43 CharStream.cc
    -rw-rw-r– 1 abc abc 9053 May 18 03:43 CharStream.h
    //错误处理
    -rw-rw-r– 1 abc abc 3605 May 18 03:43 ErrorHandler.h
    -rw-rw-r– 1 abc abc 1125 May 18 03:43 JavaCC.h
    //语法分析类,入口函数是CompilationUnit(),cpp目录下的main.cc中调用词函数
    -rw-rw-r– 1 abc abc 88963 May 18 03:43 JavaParser.cc
    -rw-rw-r– 1 abc abc 60321 May 18 03:43 JavaParser.h
    -rw-rw-r– 1 abc abc 20989 May 18 03:43 JavaParserConstants.h
    //常量定义
    -rw-rw-r– 1 abc abc 80347 May 18 03:43 JavaParserTokenManager.cc
    -rw-rw-r– 1 abc abc 4523 May 18 03:43 JavaParserTokenManager.h
    //语法分析错误的时候抛出异常
    -rw-rw-r– 1 abc abc 6384 May 18 03:43 ParseException.cc
    -rw-rw-r– 1 abc abc 3194 May 18 03:43 ParseException.h
    //代表分词后的一个个Token
    -rw-rw-r– 1 abc abc 2393 May 18 03:43 Token.cc
    -rw-rw-r– 1 abc abc 3717 May 18 03:43 Token.h
    //词法分析器
    -rw-rw-r– 1 abc abc 848 May 18 03:43 TokenManager.h
    //词法分析错误时抛出异常
    -rw-rw-r– 1 abc abc 3696 May 18 03:43 TokenMgrError.cc
    -rw-rw-r– 1 abc abc 2623 May 18 03:43 TokenMgrError.h

测试

JavaGrammars例子是用来分析Java代码语法的。
执行:./javaparser xxx.txt
或者
./wjavaparser xxx.txt
输入文件xxx.txt中是Java代码/C++代码等要测试的代码。
对于非Java代码会报错。

你可能感兴趣的:(Java)