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

📄 numbercompare.java

📁 A framework written in Java for implementing high-level and dynamic languages, compiling them into J
💻 JAVA
字号:
package gnu.jemacs.lang;import gnu.math.*;import gnu.mapping.*;public class NumberCompare extends ProcedureN{  // Return codes from Numeric.compare:  static final int RESULT_GRT = 1;  static final int RESULT_EQU = 0;  static final int RESULT_LSS = -1;  static final int RESULT_NAN = -2;  static final int RESULT_NEQ = -3;  static final int TRUE_IF_GRT = 16;  static final int TRUE_IF_EQU = 8;  static final int TRUE_IF_LSS = 4;  static final int TRUE_IF_NAN = 2;  static final int TRUE_IF_NEQ = 1;  int flags;  public static final NumberCompare $Eq   = make("=",TRUE_IF_EQU);  public static final NumberCompare $Gr   = make(">",TRUE_IF_GRT);  public static final NumberCompare $Gr$Eq= make(">=",TRUE_IF_GRT|TRUE_IF_EQU);  public static final NumberCompare $Ls   = make("<",TRUE_IF_LSS);  public static final NumberCompare $Ls$Eq= make("<=",TRUE_IF_LSS|TRUE_IF_EQU);  public static NumberCompare make(String name, int flags)  {    NumberCompare proc = new NumberCompare();    proc.setName(name);    proc.flags = flags;    return proc;  }  public Object apply2 (Object arg1, Object arg2)  {    if (apply2(flags, arg1, arg2))      return ELisp.TRUE;    else      return ELisp.FALSE;  }  public static boolean apply2 (int flags, Object arg1, Object arg2)  {    Numeric num1 = ELisp.asNumber(arg1);    Numeric num2 = ELisp.asNumber(arg2);    return ((1 << (3 + num1.compare(num2))) & flags) != 0;  }  public Object applyN (Object[] args)  {    //  if (args.length < 2)    //  throw new WrongArguments(this.name(),2,"(< x1 x2 ...)");    for (int i = 0;  i < args.length - 1;  i++)      {	Object arg1 = args[i];	Object arg2 = args[i+1];	if (! apply2(flags, arg1, arg2))	  return ELisp.FALSE;      }    return ELisp.TRUE;  }}

⌨️ 快捷键说明

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