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 + -
显示快捷键?