⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stdlib.java

📁 A very smaller script interpretor that java based system. Can work on j2se / j2me / win C++ platform
💻 JAVA
字号:
package gscript;

import java.util.*;
import gscript.Interpreter;

/**
 * 标准方法库 standard method lib
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
public class Stdlib
    extends Lib {

  {
    methodNames = new String[] {
        "print" //0 向控制台输出字符串
        , "min" //1 求最小值
        , "max" //2 求最大值
        , "asize" //3 求数组大小
        , "abs" //4 求取对值
        , "random" //5 得到一个随机数
        , "mod" //6 取余
        , "println" //7 输出回车
        , "ssize" //8 字符串长度
    };
  }

  public DataType call(Vector para, int methodID) {
    switch (methodID) {
      case 0:
        return print(para);
      case 1:
        return min(para);
      case 2:
        return max(para);
      case 3:
        return asize(para);
      case 4:
        return abs(para);
      case 5:
        return random();
      case 6:
        return mod(para);
      case 7:
        return println(para);
      case 8:
        return ssize(para);
    }
    return null;
  }

  /**
   * 向控制台输出字符串
   *
   * @param para String
   * @return Object
   */
  private DataType print(Vector para) {
    String s = ( (DataType) (Interpreter.vPopBack(para))).getString();
    System.out.print(s);
    return null;
  }

  /**
   * 向控制台输出字符串
   *
   * @param para String
   * @return Object
   */
  private DataType println(Vector para) {
    DataType dt = (DataType) Interpreter.vPopBack(para);
    String s = dt == null ? null : dt.getString();
    if (s == null) {
      System.out.println();
    }
    else {
      System.out.println(s);
    }
    return null;
  }

  /**
   * 求最小值
   *
   * @param para int
   * @return Integer
   */
  private Int min(Vector para) {
    int x = ( (Int) Interpreter.vPopBack(para)).getVal();
    int y = ( (Int) Interpreter.vPopBack(para)).getVal();
    return new Int(x > y ? y : x);
  }

  /**
   * 求最大值
   *
   * @param para int
   * @return Integer
   */
  private Int max(Vector para) {
    int x = ( (Int) Interpreter.vPopBack(para)).getVal();
    int y = ( (Int) Interpreter.vPopBack(para)).getVal();
    return new Int(x > y ? x : y);
  }

  /**
   * 求数组大小
   *
   * @param para int
   * @return Integer
   */
  private Int asize(Vector para) {
    Array arr = (Array) Interpreter.vPopBack(para);
    return new Int(arr.elements.length);
  }

  /**
   * 求最大值
   *
   * @param para int
   * @return Integer
   */
  private Int abs(Vector para) {
    int x = ( (Int) Interpreter.vPopBack(para)).getVal();
    return new Int(Math.abs(x));
  }

  //随机数基石
  private static Random random = new Random(); //定义一个随机值

  /**
   * 产生一个随机数,这个数一定是正数
   * @return int 返回一个正数
   */
  public static DataType random() {
    return new Int(random.nextInt());
  }

  /**
   * 取余
   *
   * @param para int
   * @return gscript.Int
   */
  private Int mod(Vector para) {
    int x = ( (Int) Interpreter.vPopBack(para)).getVal();
    int y = ( (Int) Interpreter.vPopBack(para)).getVal();
    return (new Int(x % y));
  }

  /**
   * 字符串长度
   *
   * @param para int
   * @return Integer
   */
  private Int ssize(Vector para) {
    String s = Interpreter.vPopBack(para).toString();
    return new Int(s.length());
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -