zoukankan      html  css  js  c++  java
  • 1.JavaCC安装与测试

      下面介绍的是JavaCC在windows系统中的安装与小代码测试过程。

    一、JavaCC安装

      步骤 :在JavaCC的官网首页下载JavaCC,然后配置电脑的环境变量,接着在dos命令行里就可以使用了。

    1. 下载

      官方下载地址:https://javacc.org/download
      我下载的是5.0版本,如下图

    2. 将官网下载的安装包解压到任意目录

    3. 配置环境变量

      创建JAVACC_HOME

      配置path

    4. 测试

      在命令提示符窗口输入javacc命令进行测试,如果出现了如下所示的使用帮助,表示安装成功

      在安装完成之后,接下来测试一个代码小例子。就像你安装完成JDK之后,除了通过java -version测试JDK是否安装成功之外,还可以执行一个Hello World代码一样。


    二、JavaCC测试小例子

    1. 词法描述文件

      JavaCC的语法描述文件是 扩展名为.jj 的文件,测试所用的语法描述文件内容如下,该描述文件的功能是解析正整数加法运算,并进行计算的解析器的语法描述文件:

    options {
        STATIC = false;
    }
    
    PARSER_BEGIN(Adder)
    package com.susu.testJavaCC;
    import java.io.*;
    public class Adder {
        public static void main(String[] args) {
            for (String arg : args) {
                try {
                    System.out.println(evaluate(arg));
    //                return(evaluate(arg));
                } catch (ParseException ex) {
                    System.err.println(ex.getMessage());
                }
            }
        }
    
        public static long evaluate(String src) throws ParseException {
            Reader reader = new StringReader(src);
            return new Adder(reader).expr();
        }
    }
    PARSER_END(Adder)
    
    SKIP: { <[" ", "	", "
    ", "
    "]> }
    TOKEN: {
        <INTEGER: (["0"-"9"])+>
    }
    
    long expr():
    {
        Token x, y;
    }
    {
        x=<INTEGER> "+" y=<INTEGER> <EOF>
        {
            return Long.parseLong(x.image) + Long.parseLong(y.image);
        }
    }
    

      将上述语法描述文件保存成任意以.jj为后缀 的文件,比如demo1.jj,然后在命令提示符窗口中,依次执行下面的步骤。

    2. 使用javacc命令处理demo1.jj文件


      处理成功之后如上图所示,会有提示成功,并且生成Adder.java和其他辅助类。

    3. 编译

      使用javac命令编译上一步生成的Adder.java文件,从而生成Adder.class文件

    4. 使用Adder类进行测试

      正确输出1+7的结果,测试成功。

  • 相关阅读:
    PAT (Advanced Level) 1080. Graduate Admission (30)
    PAT (Advanced Level) 1079. Total Sales of Supply Chain (25)
    PAT (Advanced Level) 1078. Hashing (25)
    PAT (Advanced Level) 1077. Kuchiguse (20)
    PAT (Advanced Level) 1076. Forwards on Weibo (30)
    PAT (Advanced Level) 1075. PAT Judge (25)
    PAT (Advanced Level) 1074. Reversing Linked List (25)
    PAT (Advanced Level) 1073. Scientific Notation (20)
    PAT (Advanced Level) 1072. Gas Station (30)
    PAT (Advanced Level) 1071. Speech Patterns (25)
  • 原文地址:https://www.cnblogs.com/suhaha/p/11697827.html
Copyright © 2011-2022 走看看