|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcoins.ffront.EquivManager.EquivGroup
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;
| Nested Class Summary | |
(package private) class |
EquivManager.EquivGroup.EquivElem
equiv element class. |
| Field Summary | |
(package private) java.util.Map |
table_
|
| Constructor Summary | |
(package private) |
EquivManager.EquivGroup(FirList vars)
build equiv group with some equivalence variables |
| Method Summary | |
(package private) void |
addElems(FirList vars)
add new equivalence group. |
(package private) void |
addElems(FirList vars,
int base)
with base |
(package private) void |
addIDsToTable(Var v)
|
(package private) Elem |
addUnionElem(EquivManager.EquivGroup.EquivElem ee,
int max,
SymTable c_table)
|
(package private) int |
getHeight(java.lang.String ident)
|
(package private) int |
getMaxHeight()
|
(package private) int |
getNodeHeight(Node n)
|
(package private) java.lang.String |
getNodeLexem(Node n)
Node must be type Token or Pair. |
(package private) Type |
getNodeType(Node n)
|
(package private) boolean |
isContainNode(Node n)
(A B C) + B => true |
(package private) boolean |
isContainNodes(FirList vars)
(A B C) + (B X) => true |
(package private) Type |
makeEquivTypeUnder(SymTable c_table)
|
(package private) java.lang.String |
searchBlockVariable()
If contain block(common) variable, return this indentifier. |
java.lang.String |
toString()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
java.util.Map table_
| Constructor Detail |
EquivManager.EquivGroup(FirList vars)
| Method Detail |
void addIDsToTable(Var v)
void addElems(FirList vars)
void addElems(FirList vars,
int base)
int getNodeHeight(Node n)
int getHeight(java.lang.String ident)
int getMaxHeight()
java.lang.String searchBlockVariable()
Type makeEquivTypeUnder(SymTable c_table)
Elem addUnionElem(EquivManager.EquivGroup.EquivElem ee,
int max,
SymTable c_table)
boolean isContainNode(Node n)
boolean isContainNodes(FirList vars)
java.lang.String getNodeLexem(Node n)
Type getNodeType(Node n)
public java.lang.String toString()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||