level.java

来自「编译原理大作业---tiger编译器 包括semant,translate,m」· Java 代码 · 共 37 行

JAVA
37
字号
package Translate;public class Level {   // public per poterlo utilizzare   // nel costruttore di Semant   public Frame.Frame frame;   // il primo accesso dei formals e' lo STATIC LINK   // livello padre   public Level parent;   public AccessList formals;   public Level(Level parent,Symbol.Symbol name, Util.BoolList fmls) {      frame = parent.frame.newFrame(new Temp.Label(name),new Util.BoolList(true, fmls));      this.parent = parent;      formals = set_formals(frame.formals.tail);      // System.out.println("formals attuali= " + formals);   }   public Level(Frame.Frame f) {      frame = f;      parent = null;      formals = null;   }   // prende il Frame.Access a cui attaccare   // il livello corrente per restituire il Translate.Access   public Access allocLocal(boolean escape) {      return new Access(this,frame.allocLocal(escape));   }   private AccessList set_formals(Frame.AccessList ff) {      if(ff==null) return null;      return new AccessList(new Access(this, ff.head), set_formals(ff.tail));   }}

⌨️ 快捷键说明

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