unary.java

来自「A compiler for a subset of the Java lang」· Java 代码 · 共 37 行

JAVA
37
字号
package inter;import lexer.*; import symbols.*;public class Unary extends Op {   public Expr expr;   public Unary(Token tok, Expr x) {    // handles minus, for ! see Not      super(tok, null);  expr = x;      type = Type.max(Type.Int, expr.type);      if (type == null ) error("type error");   }   public Expr gen() { return new Unary(op, expr.reduce()); }   public String toString()   {	   expr.toString();	   if(expr.type == Type.Int)	   {		   return "ineg " + expr.lvaIdx + "\n";	   }	   else if(expr.type == Type.Float)	   {		   return "fneg " + expr.lvaIdx + "\n";	   }	   else if(expr.type == Type.Complex)	   {		   return "fneg\n" + "fstore " + LocalVarArray.curlength + "\n"		   		+ "fneg\n" + "fload " + LocalVarArray.curlength + "\n";	   }	   else {		   return null;	   }   }}

⌨️ 快捷键说明

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