coins.ffront
クラス BlockIfStmt

java.lang.Object
  |
  +--coins.ffront.FStmt
        |
        +--coins.ffront.BlockIfStmt
すべての実装インタフェース:
Node

public class BlockIfStmt
extends FStmt

Block IF statement: block_if_part opt_else_if_parts opt_else_part END_IF


フィールドの概要
(パッケージプライベート)  Stmt fElsePart
           
(パッケージプライベート)  Stmt fThenPart
           
 
クラス coins.ffront.FStmt から継承したフィールド
defLabel, fDeclMgr, fESMgr, fHir, fHirUtil, fLine, fSymTable, fTypeUtil, generatedStmts, hir, stmt
 
コンストラクタの概要
BlockIfStmt(Node pIfPart, FirList pOptElseIfs, FirList pOptElse, int line, FirToHir pfHir)
           
 
メソッドの概要
 void print(int level, java.lang.String spaces)
           
 void process()
          Translate block if statement IF (e1) THEN // fIfPart.left s1 // fIfPart.right ELSE IF (e2) THEN // fOptElseIfs.get(0).left s2 // fOptElseIfs.get(0).right ELSE IF (e3) THEN // fOptElseIfs.get(1).left s3 // fOptElseIfs.get(1).right ELSE s4 // fOptElse END IF to if (e1) s1 else { if (e2) s2 else { if (e3) s3 else s4 } }
 java.lang.String toString()
           
 
クラス coins.ffront.FStmt から継承したメソッド
addGeneratedStmt, addGeneratedStmtFirst, addLabel, addResultTo, dp, getLabelString, getResult, hasNotLabel, makeArgAddr, makeExp, mergeSymTable, preprocess, setLineAndFileInfo, setSymTable
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

fThenPart

Stmt fThenPart

fElsePart

Stmt fElsePart
コンストラクタの詳細

BlockIfStmt

public BlockIfStmt(Node pIfPart,
                   FirList pOptElseIfs,
                   FirList pOptElse,
                   int line,
                   FirToHir pfHir)
メソッドの詳細

print

public void print(int level,
                  java.lang.String spaces)
定義:
インタフェース Node 内の print
オーバーライド:
クラス FStmt 内の print

toString

public java.lang.String toString()
定義:
インタフェース Node 内の toString
オーバーライド:
クラス FStmt 内の toString

process

public void process()
Translate block if statement
   IF (e1) THEN       // fIfPart.left
     s1               // fIfPart.right
   ELSE IF (e2) THEN  // fOptElseIfs.get(0).left
     s2               // fOptElseIfs.get(0).right
   ELSE IF (e3) THEN  // fOptElseIfs.get(1).left
     s3               // fOptElseIfs.get(1).right
   ELSE
     s4               // fOptElse
   END IF
 to
   if (e1) s1
   else { if (e2) s2
          else { if (e3) s3
                 else s4  }
        }
 

オーバーライド:
クラス FStmt 内の process