|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--coins.ffront.F77Hir
フィールドの概要 | |
(パッケージプライベート) FirList |
assignList
|
(パッケージプライベート) FirToHir |
fFirToHir
|
(パッケージプライベート) int |
fLine
|
(パッケージプライベート) FirList |
programBody
|
コンストラクタの概要 | |
F77Hir(SymRoot sRoot,
HirRoot hRoot,
IoRoot iRoot)
|
メソッドの概要 | |
void |
addFirstStmt(FStmt pStmt)
|
FStmt |
aGoto(Token pIdent,
FirList pOptLabels)
make Fir node of assigned goto statement [f77.jay] ifable_statement : ASSIGN_GOTO IDENT opt_labels { $$ = fHir.aGoto($2, $3); } |
FStmt |
aIf(Node pNode,
Token pMinusLab,
Token pZeroLab,
Token pPlusLab)
make Fir node of arithmetic if statement [f77.jay] ifable_statement : ARITH_IF '(' expr ')' label ',' label ',' label { $$ = fHir.aIf($3, $5, $7, $9); } |
Token |
argLabel(Token pLabel)
make Fir node of '*' label argument [f77.jay] arg : '*' label { $$ = fHir.argLabel($2); } |
FStmt |
assignLabel(Token pLabel,
Token pIdent)
make Fir node of label assign statement [f77.jay] ifable_statement : ASSIGN label TO IDENT { $$ = fHir.assignLabel($2, $4); } |
FStmt |
assignOrFunc(Node pLeft,
Node pRight)
make Fir node of assign statement or statement function statement [f77.jay] ifable_statement : LET left_name '=' expr { $$ = fHir.assignOrFunc($2, $5); } |
FStmt |
backspace(FirList p1)
|
FStmt |
backspaceF(Node p1)
|
Node |
blockDataBody(Node p1,
Node p2,
Node p3)
|
Node |
blockDataSubp(Node p1)
make Fir node of block data subprogram [f77.jay] program_unit : block_data_subprogram { $$ = fHir.blockDataSubp($1); } |
Node |
blockDataSubProgram(Node p1,
Node p2)
|
Node |
blockIfPart(Node pExp,
FirList pTail)
make Fir node of block_if_part [f77.jay] block_if_part : IF '(' expr ')' THEN EOS part_tail { $$ = fHir.blockIfPart($3, $7); } |
FStmt |
blockIfStmt(Node pIfPart,
FirList pOptElseIfs,
FirList pOptElse)
make Fir node of block if statement [f77.jay] executable_statement : block_if_part opt_else_if_parts opt_else_part END_IF { $$ = fHir.blockIfStmt($1, $2, $3); } |
FStmt |
call(Token pIdent,
FirList pOptArgs)
make Fir node of call statement [f77.jay] ifable_statement : CALL IDENT opt_actual_args { $$ = fHir.call($2, $3); } |
FStmt |
cGoto(FirList pLabels,
Node pExp)
make Fir node of computed goto statement [f77.jay] ifable_statement : COMP_GOTO '(' label_list ')' expr { $$ = fHir.cGoto($3, $5); } |
protected boolean |
checkConstNumber(Node node)
make Fir node of complex constant [f77.jay] complex_const : '(' expr ',' expr ')' { $$ = fHir.constComplex($2, $4); } |
FStmt |
closeStmt(FirList p1)
|
FStmt |
completeStmt(Token pLabel,
FStmt pStmt)
make Fir node of optionally labeled statement [f77.jay] complete_statement : opt_label_def statement EOS { $$ = fHir.completeStmt($1, $2); } |
Node |
constComplex(Node pReal,
Node pImag)
|
Node |
constItem(Token p1,
Node p2)
|
FStmt |
continueStmt()
make Fir node of continue statement [f77.jay] ifable_statement : CONTINUE { $$ = fHir.continueStmt(); } |
Node |
dataSeq(FirList p1,
FirList p2)
|
Node |
dataVal(Node p1,
Node p2)
|
Node |
dataVarDoList(Node p1,
Node p2)
|
Node |
dataVarOne(Node p1)
|
FStmt |
doLabeled(Token pLabel,
Node pDoSpec)
make Fir node of labeled do statement [f77.jay] executable_statement : DO label do_spec { $$ = fHir.doLabeled($2, $3); } |
Node |
doSpec(Token pIdent,
Node pExp1,
Node pExp2,
Node pOptStep)
make Fir node of do_spec [f77.jay] do_spec : IDENT '=' expr ',' expr opt_step { $$ = fHir.doSpec($1, $3, $5, $6); } |
FStmt |
doUnLabeled(Node p1,
Node p2)
make Fir node of unlabeled do statement [f77.jay] executable_statement : DO do_spec EOS do_tail { $$ = fHir.doUnLabeled($2, $4); } |
Node |
elseIfPart(Node pExp,
FirList pTail)
make Fir node of else_if_part [f77.jay] opt_else_if_parts : { $$ = fList.list(); } | opt_else_if_parts ELSE_IF '(' expr ')' THEN EOS part_tai { $$ = $1.addLast(fHir.elseIfPart($4, $8)); } |
Node |
enclosed(Node pExp)
make Fir node of parenthesized expression [f77.jay] expr : '(' expr ')' { $$ = fHir.enclosed($2); } |
FStmt |
endfile(FirList p1)
|
FStmt |
endfileF(Node p1)
|
FStmt |
endStmt(Token pLabel)
make Fir node of end statement [f77.jay] end statement : opt_label_def END EOS { $$ = fHir.endStmt($1); } |
Node |
executableProgram(Node pUnit)
make Hir from the Fir node of a program_unit and initializes for next program_unit [f77.jay] executable_program : program_unit { $$ = fHir.executableProgram($1); } |
Node |
executableProgram(Node pExPrgrm,
Node pUnit)
make Hir from the Fir node of next program_unit and initializes ... ??? |
Node |
exprBinary(int op,
Node e1,
Node e2)
make Fir node of binary expression [f77.jay] expr : expr '*' expr { $$ = fHir.exprBinary(HIR.OP_MULT, $1, $3); } | expr '/' expr { $$ = fHir.exprBinary(HIR.OP_DIV, $1, $3); } | expr '+' expr { $$ = fHir.exprBinary(HIR.OP_ADD, $1, $3); } | expr '-' expr { $$ = fHir.exprBinary(HIR.OP_SUB, $1, $3); } | expr GREATER_THAN expr { $$ = fHir.exprBinary(HIR.OP_CMP_GT, $1, $3); } | expr EQUAL expr { $$ = fHir.exprBinary(HIR.OP_CMP_EQ, $1, $3); } | expr LESS_THAN expr { $$ = fHir.exprBinary(HIR.OP_CMP_LT, $1, $3); } | expr NOT_EQUAL expr { $$ = fHir.exprBinary(HIR.OP_CMP_NE, $1, $3); } | expr LESS_OR_EQUAL expr { $$ = fHir.exprBinary(HIR.OP_CMP_LE, $1, $3); } | expr GREATER_OR_EQUAL expr { $$ = fHir.exprBinary(HIR.OP_CMP_GE, $1, $3); } | expr AND expr { $$ = fHir.exprBinary(HIR.OP_AND, $1, $3); } | expr OR expr { $$ = fHir.exprBinary(HIR.OP_OR, $1, $3); } | expr EQV expr { $$ = fHir.expUnary(HIR.OP_NOT, fHir.exprBinary(HIR.OP_XOR, $1, $3)); } | expr NEQV expr { $$ = fHir.exprBinary(HIR.OP_XOR, $1, $3); } |
Node |
exprCat(Node p1,
Node p2)
make Fir node of concatenated expression [f77.jay] expr : expr DOUBLE_SLASH expr { $$ = fHir.exprCat($1, $3); } |
Node |
exprPower(Node pNode1,
Node pNode2)
make Fir node of powered expression [f77.jay] expr : expr POWER expr { $$ = fHir.exprPower( $1, $3); } |
Node |
exprUnary(int op,
Node pExp)
make Fir node of unary expression [f77.jay] expr : '-' expr %prec UMINUS { $$ = fHir.exprUnary(HIR.OP_NEG, $2); } | NOT expr { $$ = fHir.exprUnary(HIR.OP_NOT, $2); } |
FStmt |
format(Node p1)
|
Node |
funcSubProgram(FStmt pFuncStmt,
FirList pBody)
make Fir node of function subprogram [f77.jay] program_unit : function_stmt program_body { $$ = fHir.funcSubProgram($1, $2); } |
int |
getLineNo()
|
FirList |
getProgramBody()
|
FStmt |
gotoStmt(Token pLabel)
make Fir node of goto statement [f77.jay] ifable_statement : GOTO label { $$ = fHir.gotoStmt($2); } |
FStmt |
ifStmt(Node pExp,
FStmt pStmt)
make Fir node of if statement [f77.jay] executable_statement : IF '(' expr ')' ifable_statement { $$ = fHir.ifStmt($3, $5); }} |
FStmt |
inquire(FirList p1)
|
Node |
ioClause(Token pIdent,
Node pExpr)
|
Node |
ioItemDoList(FirList pList)
public Node ioItemDoList(FirList pList, Node pDoSpec) { // ioRoot.dbgToHir.print(8, "io_item :'(' do_list do_spec ')' \n"); return new DoList(pList, pDoSpec, fFirToHir); } |
Node |
ioItemExpr(Node pExpr)
|
Token |
label(Token pIntConst)
make Fir node of statement label [f77.jay] label : INT_CONST { $$ = fHir.label($1); } |
Node |
leftName(Token pIdent,
FirList argList)
make Fir node of subscripted variable or function call [f77.jay] left_name : IDENT '(' arg_list ')' { $$ = fHir.leftName($1, $3); } |
Node |
leftNameSubstr(Token pIdent,
FirList pArgs,
Pair pSubstr)
|
Node |
mainProgram(FirList pBody)
make Fir node of main program [f77.jay] program_unit : program_stmt program_body { $$ = fHir.mainProgram($2); } | program_body { $$ = fHir.mainProgram($1); } |
FStmt |
openStmt(FirList p1)
|
FStmt |
pause(Node p1)
make Fir node of pause statement [f77.jay] ifable_statement : PAUSE expr { $$ = fHir.pause($2); } |
FStmt |
printStmt(Node pFormat,
FirList pOptIoList)
|
FStmt |
readFStmt(Node p1,
Node p2)
|
FStmt |
readStmt(Node p1,
Node p2)
|
FStmt |
returnStmt(Node pOptExpr)
make Fir node of return statement [f77.jay] ifable_statement : RETURN opt_expr { $$ = fHir.returnStmt($2); } |
FStmt |
rewind(FirList p1)
|
FStmt |
rewindF(Node p1)
|
void |
setF77Sym(F77Sym fSym)
|
FStmt |
stop(Node p1)
make Fir node of stop statement [f77.jay] ifable_statement : STOP expr { $$ = fHir.stop($2); } |
Node |
subrSubProgram(FStmt pSubrStmt,
FirList pBody)
make Fir node of subroutine subprogram [f77.jay] program_unit : subroutine_stmt program_body { $$ = fHir.subrSubProgram($1, $2); } |
Pair |
substring(Node p1,
Node p2)
|
Node |
value(char p1,
Node p2)
|
FStmt |
writeStmt(FirList pCiList,
FirList pOptIoList)
|
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
int fLine
FirList programBody
FirList assignList
FirToHir fFirToHir
コンストラクタの詳細 |
public F77Hir(SymRoot sRoot, HirRoot hRoot, IoRoot iRoot)
メソッドの詳細 |
public void setF77Sym(F77Sym fSym)
public FirList getProgramBody()
public void addFirstStmt(FStmt pStmt)
public int getLineNo()
public Node executableProgram(Node pUnit)
pUnit
- program_unit node
public Node executableProgram(Node pExPrgrm, Node pUnit)
pUnit
- program_unit node
public Node mainProgram(FirList pBody)
pBody
- statement list
public Node funcSubProgram(FStmt pFuncStmt, FirList pBody)
pFuncStmt
- function statementpBody
- statement list
public Node subrSubProgram(FStmt pSubrStmt, FirList pBody)
pSubrStmt
- subroutine statementpBody
- statement list
public Node blockDataSubp(Node p1)
p1
-
public FStmt endStmt(Token pLabel)
pLabel
- optional label
public FStmt completeStmt(Token pLabel, FStmt pStmt)
pLabel
- optional labelpStmt
-
public Node blockDataSubProgram(Node p1, Node p2)
public Node blockDataBody(Node p1, Node p2, Node p3)
public FStmt format(Node p1)
public Node dataSeq(FirList p1, FirList p2)
public Node dataVal(Node p1, Node p2)
public Node value(char p1, Node p2)
public Node constItem(Token p1, Node p2)
public Node dataVarOne(Node p1)
public Node dataVarDoList(Node p1, Node p2)
public FStmt doLabeled(Token pLabel, Node pDoSpec)
pLabel
- pDoSpec
-
public FStmt doUnLabeled(Node p1, Node p2)
p1
- p2
-
public FStmt ifStmt(Node pExp, FStmt pStmt)
pExp
- pStmt
-
public FStmt blockIfStmt(Node pIfPart, FirList pOptElseIfs, FirList pOptElse)
pIfPart
- pOptElseIfs
- pOptElse
-
public Node blockIfPart(Node pExp, FirList pTail)
pExp
- pTail
-
public Node elseIfPart(Node pExp, FirList pTail)
pExp
- pTail
-
public Node doSpec(Token pIdent, Node pExp1, Node pExp2, Node pOptStep)
pIdent
- pExp1
- pExp2
- pOptStep
-
public FStmt assignOrFunc(Node pLeft, Node pRight)
pLeft
- pRight
-
public FStmt assignLabel(Token pLabel, Token pIdent)
pLabel
- pIdent
-
public FStmt continueStmt()
public FStmt gotoStmt(Token pLabel)
pLabel
-
public FStmt aGoto(Token pIdent, FirList pOptLabels)
pIdent
- pOptLabels
-
public FStmt cGoto(FirList pLabels, Node pExp)
pLabels
- pExp
-
public FStmt aIf(Node pNode, Token pMinusLab, Token pZeroLab, Token pPlusLab)
pNode
- pMinusLab
- pZeroLab
- pPlusLab
-
public FStmt call(Token pIdent, FirList pOptArgs)
pIdent
- pOptArgs
-
public FStmt returnStmt(Node pOptExpr)
pOptExpr
-
public FStmt pause(Node p1)
p1
-
public FStmt stop(Node p1)
p1
-
public Token argLabel(Token pLabel)
pLabel
-
public Token label(Token pIntConst)
pIntConst
-
public FStmt printStmt(Node pFormat, FirList pOptIoList)
public FStmt writeStmt(FirList pCiList, FirList pOptIoList)
public FStmt readStmt(Node p1, Node p2)
public FStmt readFStmt(Node p1, Node p2)
public FStmt openStmt(FirList p1)
public FStmt closeStmt(FirList p1)
public FStmt backspace(FirList p1)
public FStmt backspaceF(Node p1)
public FStmt endfile(FirList p1)
public FStmt endfileF(Node p1)
public FStmt rewind(FirList p1)
public FStmt rewindF(Node p1)
public FStmt inquire(FirList p1)
public Node ioClause(Token pIdent, Node pExpr)
public Node ioItemExpr(Node pExpr)
public Node ioItemDoList(FirList pList)
public Node enclosed(Node pExp)
pExp
-
public Node exprUnary(int op, Node pExp)
op
- pExp
-
public Node exprBinary(int op, Node e1, Node e2)
op
- e1
- e2
-
public Node exprPower(Node pNode1, Node pNode2)
pNode1
- pNode2
-
public Node exprCat(Node p1, Node p2)
p1
- p2
-
public Node leftName(Token pIdent, FirList argList)
pIdent
- argList
-
public Node leftNameSubstr(Token pIdent, FirList pArgs, Pair pSubstr)
public Pair substring(Node p1, Node p2)
protected boolean checkConstNumber(Node node)
public Node constComplex(Node pReal, Node pImag)
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |