📄 whilenode.java
字号:
package ast.statement;
public class WhileNode extends StatementNode {
private ast.booleanExpr.JSubBooleanNode expr = null;
private ast.IJSubNode statement;
public String toString (String prefix) {
return prefix + "while";
}
public WhileNode (ast.booleanExpr.JSubBooleanNode expr, ast.IJSubNode statement){
this.expr = expr;
this.statement = statement;
}
public void dump(String prefix) {
System.out.println ("if");
expr.dump (prefix + " ");
if (statement != null)
statement.dump (prefix + " ");
}
public void codegen () {
int labelStart = codegen.WriteCode.getLabel ();
int labelEnd = codegen.WriteCode.getLabel ();
codegen.WriteCode.genLabel (labelStart);
expr.codegen (labelEnd, false);
if (statement != null) {
statement.codegen ();
codegen.WriteCode.genGoto (labelStart);
}
codegen.WriteCode.genLabel (labelEnd);
}
public int getDepth () {
int nExprDepth = expr == null? 0: expr.getDepth ();
int nstatementDepth = statement == null? 0: statement.getDepth ();
return java.lang.Math.max (nExprDepth, nstatementDepth);
}
public String getXMLType () {
return "while";
}
public void genXML (java.io.PrintStream p, String prefix) {
p.println (prefix + "<whilestatement>");
expr.genXML (p, prefix + " ");
if (statement != null)
statement.genXML (p, prefix + " ");
p.println (prefix + "</whilestatement>");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -