JavaCC--Linuxのインストールと使用

5199 ワード

  • 概要
  • 取付
  • を使用
    概要
    JavaCC    https://javacc.java.net/。
    JavaCC        、          ,            YACC      Lex。JavaCC SUN                , Java Compiler Compiler   ,          。  JavaCC                 ,         ,             。JavaCC   Java     ,                    。             BNF EBNF  。
    

    インストール
  • antのインストールにはant-1.5が必要である.3以上のバージョンでJavaCCを構築します.ダウンロードアドレスhttp://ant.apache.org/bindownload.cgi. #tar-xzvf apache-ant-1.9を解凍する.7-bin.tar.gz#apache-ant-1.9でインストールが成功したかどうかを確認します.7/binディレクトリでコマンドを実行:./antはantのインストールに成功したことを示すメッセージを提示します:Buildfile:build.xml does not exist! Build failed
  • JavaCC(1)JavaCC公式サイトでjavacc-6.0 srcをダウンロードする.zipパッケージ.(2)javaccルートディレクトリjavacc-6.0でコマンドを実行する:apache-ant-1.9.7/bin/antここでantの絶対パスを指定するか、antが存在するパスをPATH環境変数に加えてantを直接指すことができます.JavaCCのインストールに成功したヒント:BUILD SUCCESSFUL.同時にjavacc-6.0/bin/libディレクトリの下でjavaccを生成する.jarパッケージ.このファイルの内容は大体以下の通りである:
        " zip.vim version v22                                                                                                                
        " Browsing zipfile /home/zfl/test/javacc-6.0src/javacc-6.0/bin/lib/javacc.jar
        " Select a file with cursor and press ENTER
    
        META-INF/
        META-INF/MANIFEST.MF
        org/
        org/javacc/
        org/javacc/jjdoc/
        org/javacc/jjdoc/test/
        org/javacc/jjtree/
        org/javacc/parser/
        org/javacc/parser/test/
        org/javacc/utils/
        templates/
        templates/cpp/
        javacc.class
        jjdoc.class
        jjtree.class
        org/javacc/JavaCCTestCase.class
        org/javacc/Version.class
        org/javacc/jjdoc/BNFGenerator.class
    
    JavaCCコードパッケージのディレクトリexamplesを使用するのはJavaCCが持参した例であり、ここではSimpleExamplesを例に挙げる:Simple 1.jjは括弧に一致する(This is a simple JavaCC grammar that recognizes a set of left braces followed by the same number of right braces and finally followed by zero or more line terminators and finally an end of file.).
    (1)  javacc(  PATH   javacc.jar   ,    javacc ,       。      ,           javacc。)
    /javacc-6.0/bin/lib   :
    [zfl@search-engine---dev4 lib]$ java -cp javacc.jar javacc Simple1.jj 
    Java Compiler Compiler Version 6.0_1 (Parser Generator)
    (type "javacc" with no arguments for help)
    Reading from file Simple1.jj . . .
    File "TokenMgrError.java" does not exist.  Will create one.
    File "ParseException.java" does not exist.  Will create one.
    File "Token.java" does not exist.  Will create one.
    File "SimpleCharStream.java" does not exist.  Will create one.
    Parser generated successfully.
    [zfl@search-engine---dev4 lib]$ ll
    total 440
    -rw-rw-r-- 1 zfl zfl   6147 May 18 03:18 ParseException.java
    -rw-rw-r-- 1 zfl zfl   7203 May 18 03:18 Simple1.java
    -rw-rw-r-- 1 zfl zfl   2512 May 17 22:29 Simple1.jj
    -rw-rw-r-- 1 zfl zfl    429 May 18 03:18 Simple1Constants.java
    -rw-rw-r-- 1 zfl zfl   5238 May 18 03:18 Simple1TokenManager.java
    -rw-rw-r-- 1 zfl zfl  12351 May 18 03:18 SimpleCharStream.java
    -rw-rw-r-- 1 zfl zfl   4055 May 18 03:18 Token.java
    -rw-rw-r-- 1 zfl zfl   4399 May 18 03:18 TokenMgrError.java
    -rwxrwxrwx 1 zfl zfl 386322 May 17 21:13 javacc.jar
    
    (2)  JavaCC   Java  ,      .class  
    [zfl@search-engine---dev4 lib]$ javac *.java
    [zfl@search-engine---dev4 lib]$ ll
    total 476
    -rw-rw-r-- 1 zfl zfl   3038 May 18 03:24 ParseException.class
    -rw-rw-r-- 1 zfl zfl   6147 May 18 03:18 ParseException.java
    -rw-rw-r-- 1 zfl zfl   5134 May 18 03:24 Simple1.class
    -rw-rw-r-- 1 zfl zfl   7203 May 18 03:18 Simple1.java
    -rw-rw-r-- 1 zfl zfl   2512 May 17 22:29 Simple1.jj
    -rw-rw-r-- 1 zfl zfl    423 May 18 03:24 Simple1Constants.class
    -rw-rw-r-- 1 zfl zfl    429 May 18 03:18 Simple1Constants.java
    -rw-rw-r-- 1 zfl zfl   3877 May 18 03:24 Simple1TokenManager.class
    -rw-rw-r-- 1 zfl zfl   5238 May 18 03:18 Simple1TokenManager.java
    -rw-rw-r-- 1 zfl zfl   6609 May 18 03:24 SimpleCharStream.class
    -rw-rw-r-- 1 zfl zfl  12351 May 18 03:18 SimpleCharStream.java
    -rw-rw-r-- 1 zfl zfl    985 May 18 03:24 Token.class
    -rw-rw-r-- 1 zfl zfl   4055 May 18 03:18 Token.java
    -rw-rw-r-- 1 zfl zfl   2307 May 18 03:24 TokenMgrError.class
    -rw-rw-r-- 1 zfl zfl   4399 May 18 03:18 TokenMgrError.java
    -rwxrwxrwx 1 zfl zfl 386322 May 17 21:13 javacc.jar
    
    (3)     ,          ,     ;         ,     。
    [zfl@search-engine---dev4 lib]$ java Simple1
    {{}
    Exception in thread "main" ParseException: Encountered " "
    " "
    "" at line 1, column 4. Was expecting: "}" ... at Simple1.generateParseException(Simple1.java:239) at Simple1.jj_consume_token(Simple1.java:177) at Simple1.MatchedBraces(Simple1.java:57) at Simple1.Input(Simple1.java:14) at Simple1.main(Simple1.java:9) [zfl@search-engine---dev4 lib]$ java Simple1 {}{} Exception in thread "main" ParseException: Encountered " "{" "{ "" at line 1, column 3. Was expecting one of: "
    " ... "\r" ... at Simple1.generateParseException(Simple1.java:239) at Simple1.jj_consume_token(Simple1.java:177) at Simple1.Input(Simple1.java:42) at Simple1.main(Simple1.java:9) [zfl@search-engine---dev4 lib]$ java Simple1 {{{{{}}}}} [zfl@search-engine---dev4 lib]$ java Simple1 {}