coins.ffront
クラス EquivManager.EquivGroup

java.lang.Object
  |
  +--coins.ffront.EquivManager.EquivGroup
含まれているクラス:
EquivManager

class EquivManager.EquivGroup
extends java.lang.Object

Equivalence group.

    ex) (A B) (B C) is group "(A B C)"

    each of the equivalence variables has "height"
    (in this case, all var's heights are 0)
    
    ex) (A(2), B(3), C) (all vars is real type)
        A's heigth is 4.
        B's height is 0.
        C's        is 8. (real type 1 word is 4 bytes).

    as C notation.
    
    union{
      struct{
        char padding[4]
        real var;
      }A;
      struct{
        real var;
      }B;
      struct{
        char padding[4]
        real var;
      }C;
    }equiv1;

    ex) If Common variable and Equivalence variable mix, modify global common
        block union(region)type like this:
    f:
    common /B1/ a,b
    equivalence (a,x), (b,y)

    => Global Scope
    union{
      struct{
        real a;
        real b;
      } unit_name_A;

      union{
        struct{
          real var;
        }x;
      }unit_name_A_x;
    
      union{
        struct{
          real padding[1];
          real var;
        }y;
      }unit_name_A_y;
    
    } BlockA;
    
    access to x:
      BlockA.unit_name_A_a.x.var;
    


入れ子クラスの概要
(パッケージプライベート)  class EquivManager.EquivGroup.EquivElem
          equiv element class.
 
フィールドの概要
(パッケージプライベート)  java.util.Map table_
           
 
コンストラクタの概要
(パッケージプライベート) EquivManager.EquivGroup(FirList vars)
          build equiv group with some equivalence variables
 
メソッドの概要
(パッケージプライベート)  void addElems(FirList vars)
          add new equivalence group. new group must be related with this equiv group
(パッケージプライベート)  void addElems(FirList vars, int base)
          with base
(パッケージプライベート)  void addIDsToTable(Var v)
           
(パッケージプライベート)  Elem addUnionElem(EquivManager.EquivGroup.EquivElem ee, int max, SymTable c_table)
           
(パッケージプライベート)  int getHeight(java.lang.String ident)
           
(パッケージプライベート)  int getMaxHeight()
           
(パッケージプライベート)  int getNodeHeight(Node n)
           
(パッケージプライベート)  java.lang.String getNodeLexem(Node n)
          Node must be type Token or Pair.
(パッケージプライベート)  Type getNodeType(Node n)
           
(パッケージプライベート)  boolean isContainNode(Node n)
          (A B C) + B => true
(パッケージプライベート)  boolean isContainNodes(FirList vars)
          (A B C) + (B X) => true
(パッケージプライベート)  Type makeEquivTypeUnder(SymTable c_table)
           
(パッケージプライベート)  java.lang.String searchBlockVariable()
          If contain block(common) variable, return this indentifier.
 java.lang.String toString()
           
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

table_

java.util.Map table_
コンストラクタの詳細

EquivManager.EquivGroup

EquivManager.EquivGroup(FirList vars)
build equiv group with some equivalence variables

メソッドの詳細

addIDsToTable

void addIDsToTable(Var v)

addElems

void addElems(FirList vars)
add new equivalence group. new group must be related with this equiv group


addElems

void addElems(FirList vars,
              int base)
with base


getNodeHeight

int getNodeHeight(Node n)

getHeight

int getHeight(java.lang.String ident)

getMaxHeight

int getMaxHeight()

searchBlockVariable

java.lang.String searchBlockVariable()
If contain block(common) variable, return this indentifier. If not, return null.


makeEquivTypeUnder

Type makeEquivTypeUnder(SymTable c_table)

addUnionElem

Elem addUnionElem(EquivManager.EquivGroup.EquivElem ee,
                  int max,
                  SymTable c_table)

isContainNode

boolean isContainNode(Node n)
(A B C) + B => true


isContainNodes

boolean isContainNodes(FirList vars)
(A B C) + (B X) => true


getNodeLexem

java.lang.String getNodeLexem(Node n)
Node must be type Token or Pair.


getNodeType

Type getNodeType(Node n)

toString

public java.lang.String toString()
オーバーライド:
クラス java.lang.Object 内の toString