|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--coins.ffront.HirUtility
HIR wrapper class
フィールドの概要 | |
(パッケージプライベート) FirToHir |
fHir
|
(パッケージプライベート) TypeUtility |
fTypeUtil
|
(パッケージプライベート) HIR |
hir
|
(パッケージプライベート) HirRoot |
hirRoot
|
(パッケージプライベート) Sym |
sym
|
(パッケージプライベート) SymRoot |
symRoot
|
コンストラクタの概要 | |
HirUtility(FirToHir fth,
HIR h)
|
メソッドの概要 | |
(パッケージプライベート) Exp |
castIfNeeded(Exp exp,
Type type)
return cast expression if cast is needed |
(パッケージプライベート) Exp |
castToInteger(Exp exp)
cast to integer. |
Exp |
checkAssignExpType(Exp pExp1,
Exp pExp2)
Add type conversion node if necessary. |
(パッケージプライベート) Type |
checkTwoExpType(Exp arg1,
Exp arg2)
return more complex type between two exp. |
Exp |
convToDouble(Exp pExp)
|
(パッケージプライベート) void |
dp(java.lang.String msg)
|
Exp |
makeArgAddr(FStmt pCallStmt,
Exp pExp)
Make a call-by-address node from pExp. |
Stmt |
makeAssignStmt(Exp lExp1,
Exp lExp2)
return checked assign statement |
Exp |
makeBooleanExp(Exp e)
return boolean checked exp |
Stmt |
makeCharacterAssignStmt(Exp e1,
Exp e2,
Exp l1,
Exp l2)
return character assign exp |
FortranCharacterExp |
makeCharsConstNode(java.lang.String lexem)
|
(パッケージプライベート) ComplexExp |
makeComplexExp(Exp pExp)
Make ComplexExp node from Exp node of _complex_struct. |
(パッケージプライベート) ComplexExp |
makeComplexExpByType(Exp rexp,
Exp iexp,
Type type)
|
(パッケージプライベート) ComplexExp |
makeComplexExpFromVar(Var v)
|
Exp |
makeConstDouble0Node()
|
Exp |
makeConstInt0Node()
|
Exp |
makeConstInt1Node()
|
Exp |
makeConstReal0Node()
|
Exp |
makeConstReal1Node()
|
(パッケージプライベート) DoubleComplexExp |
makeDoubleComplexExp(Exp pExp)
|
Exp |
makeDoubleConstNode(java.lang.String lexem)
|
Exp |
makeFalseConstNode()
|
Exp |
makeFloatConstNode(java.lang.String lexem)
|
FortranCharacterExp |
makeFortranCharacterExp(Exp body,
Exp len)
|
(パッケージプライベート) Stmt |
makeIfStmt(Exp cond,
Stmt thenStmt,
Stmt elseStmt)
make if statement. it's treat with 'and' 'or' like: if EXP1 and EXP2 T else F end => IF EXP1 IF EXP2 T END goto ELSE_L ELSE ELSE_L: E END if EXP1 or EXP2 T else E end => IF EXP1 THEN_L: T ELSE IF EXP2 goto THEN_L END E END |
Exp |
makeIntConstNode(int num)
|
Exp |
makeIntConstNode(java.lang.String lexem)
|
Exp |
makeLongConstNode(int num)
|
Exp |
makeNullNode()
|
Exp |
makeSubpExp(Subp subp)
make subpNode to pointer of subp node SubpNode -> &(SubpNode) |
Exp |
makeSubpNode(java.lang.String pSubpName,
int pType,
IrList pParamList,
int visibility)
Make subprogram node |
Exp |
makeTrueConstNode()
|
(パッケージプライベート) Exp |
makeTyped0Node(Type type)
|
(パッケージプライベート) Stmt |
qassign(Var var,
java.lang.String ident,
Exp exp)
qualified assign |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
FirToHir fHir
TypeUtility fTypeUtil
Sym sym
HIR hir
SymRoot symRoot
HirRoot hirRoot
コンストラクタの詳細 |
public HirUtility(FirToHir fth, HIR h)
メソッドの詳細 |
public Exp makeArgAddr(FStmt pCallStmt, Exp pExp)
pCallStmt
- pExp
-
DoubleComplexExp makeDoubleComplexExp(Exp pExp)
ComplexExp makeComplexExp(Exp pExp)
pExp
- Exp node of _complex_struct
ComplexExp makeComplexExpByType(Exp rexp, Exp iexp, Type type)
ComplexExp makeComplexExpFromVar(Var v)
public Exp makeNullNode()
public Exp makeConstInt1Node()
public Exp makeConstInt0Node()
public Exp makeConstReal0Node()
public Exp makeConstDouble0Node()
public Exp makeConstReal1Node()
public Exp makeIntConstNode(java.lang.String lexem)
public Exp makeIntConstNode(int num)
public Exp makeLongConstNode(int num)
public Exp makeFloatConstNode(java.lang.String lexem)
public Exp makeDoubleConstNode(java.lang.String lexem)
public Exp makeTrueConstNode()
public Exp makeFalseConstNode()
public FortranCharacterExp makeCharsConstNode(java.lang.String lexem)
public FortranCharacterExp makeFortranCharacterExp(Exp body, Exp len)
public Exp checkAssignExpType(Exp pExp1, Exp pExp2)
pExp1
- pExp2
-
public Stmt makeAssignStmt(Exp lExp1, Exp lExp2)
public Exp makeBooleanExp(Exp e)
public Stmt makeCharacterAssignStmt(Exp e1, Exp e2, Exp l1, Exp l2)
public Exp makeSubpNode(java.lang.String pSubpName, int pType, IrList pParamList, int visibility)
public Exp makeSubpExp(Subp subp)
public Exp convToDouble(Exp pExp)
Stmt qassign(Var var, java.lang.String ident, Exp exp)
Exp castToInteger(Exp exp)
Type checkTwoExpType(Exp arg1, Exp arg2)
Exp castIfNeeded(Exp exp, Type type)
Exp makeTyped0Node(Type type)
void dp(java.lang.String msg)
Stmt makeIfStmt(Exp cond, Stmt thenStmt, Stmt elseStmt)
if EXP1 and EXP2 T else F end => IF EXP1 IF EXP2 T END goto ELSE_L ELSE ELSE_L: E END if EXP1 or EXP2 T else E end => IF EXP1 THEN_L: T ELSE IF EXP2 goto THEN_L END E END
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |