else.java

来自「编译原理“龙书”(Compilers: Principles, Techniqu」· Java 代码 · 共 20 行

JAVA
20
字号
package inter;import symbols.*;public class Else extends Stmt {   Expr expr; Stmt stmt1, stmt2;   public Else(Expr x, Stmt s1, Stmt s2) {      expr = x; stmt1 = s1; stmt2 = s2;      if( expr.type != Type.Bool ) expr.error("boolean required in if");   }   public void gen(int b, int a) {      int label1 = newlabel();   // label1 for stmt1      int label2 = newlabel();   // label2 for stmt2      expr.jumping(0,label2);    // fall through to stmt1 on true      emitlabel(label1); stmt1.gen(label1, a); emit("goto L" + a);      emitlabel(label2); stmt2.gen(label2, a);   }}

⌨️ 快捷键说明

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