CUP 解析器生成器 JavaCUP

码农软件 · 软件分类 · 语法解析工具 · 2019-12-12 13:57:53

软件介绍

JavaCUP 是 Java 语言实现的 CUP 解析器生成器。

示例代码:

// Simple Example Scanner Class 
// scanner.java
import java_cup.runtime.*;
import java.io.*;
//import sym;

public class scanner implements java_cup.runtime.Scanner {
  /* single lookahead character */
  protected static int next_char;
  // since cup v11 we use SymbolFactories rather than Symbols
  private SymbolFactory sf = new DefaultSymbolFactory();
  private static FileReader fileReader;
  public scanner(FileReader fr){
      this.fileReader=fr;
  }
  /* advance input by one character */
  protected static void  advance()
    throws java.io.IOException
    { next_char = fileReader.read(); }

  /* initialize the scanner */
  public static void init()
    throws java.io.IOException
    { advance(); }

  /* recognize and return the next complete token */
  public Symbol next_token()
    throws java.io.IOException
    {
      for (;;)
        switch (next_char)
      {
        case '0': case '1': case '2': case '3': case '4': 
        case '5': case '6': case '7': case '8': case '9': 
          /* parse a decimal integer */
          int i_val = 0;
          do {
            i_val = i_val * 10 + (next_char - '0');
            advance();
          } while (next_char >= '0' && next_char <= '9');
        return sf.newSymbol("NUMBER",sym.NUMBER, new Integer(i_val));

        case ';': advance(); return sf.newSymbol("SEMI",sym.SEMI);
        case '+': advance(); return sf.newSymbol("PLUS",sym.PLUS);
        case '-': advance(); return sf.newSymbol("MINUS",sym.MINUS);
        case '*': advance(); return sf.newSymbol("TIMES",sym.TIMES);
        case '/': advance(); return sf.newSymbol("DIVIDE",sym.DIVIDE);
        case '%': advance(); return sf.newSymbol("MOD",sym.MOD);
        case '(': advance(); return sf.newSymbol("LPAREN",sym.LPAREN);
        case ')': advance(); return sf.newSymbol("RPAREN",sym.RPAREN);

        case -1: return sf.newSymbol("EOF",sym.EOF);

        default: 
          /* in this simple scanner we just ignore everything else */
          advance();
        break;
      }
    }
};

 

本文地址:https://codercto.com/soft/d/20988.html

计算机动画的算法基础

计算机动画的算法基础

鲍虎军 金小刚 彭群生 / 浙江大学出版社 / 2000-12 / 60.00元

《计算机应用技术前沿丛书:计算机动画的算法基础》主要内容简介:20世纪是一个科技、经济空前发展的时代,从世纪初相对论、量子理论的创立到今天以信息产业为龙头的高科技产业成为经济发展的第一支柱,人类社会发生了根本性的变革。而在这场以科学技术为社会发展直接动因的变革中,意义最深远、影响最广泛的就是计算机及其相关技术的发展和应用。在过去的50年里,计算机已从最初的协助人类进行精密和复杂运算的单一功能的运算......一起来看看 《计算机动画的算法基础》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具