coins.ffront
クラス F77Hir

java.lang.Object
  |
  +--coins.ffront.F77Hir

public class F77Hir
extends java.lang.Object


フィールドの概要
(パッケージプライベート)  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
 

フィールドの詳細

fLine

int fLine

programBody

FirList programBody

assignList

FirList assignList

fFirToHir

FirToHir fFirToHir
コンストラクタの詳細

F77Hir

public F77Hir(SymRoot sRoot,
              HirRoot hRoot,
              IoRoot iRoot)
メソッドの詳細

setF77Sym

public void setF77Sym(F77Sym fSym)

getProgramBody

public FirList getProgramBody()

addFirstStmt

public void addFirstStmt(FStmt pStmt)

getLineNo

public int getLineNo()

executableProgram

public 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); }

パラメータ:
pUnit - program_unit node
戻り値:
null

executableProgram

public Node executableProgram(Node pExPrgrm,
                              Node pUnit)
make Hir from the Fir node of next program_unit and initializes ... ??? (Sequence of program_units is not yet considered) //##68 [f77.jay] executable_program : executable_program program_unit { $$ = fHir.executableProgram($1, $2); }

パラメータ:
pUnit - program_unit node
戻り値:
null

mainProgram

public 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); }

パラメータ:
pBody - statement list
戻り値:
Fir node of program_body

funcSubProgram

public Node funcSubProgram(FStmt pFuncStmt,
                           FirList pBody)
make Fir node of function subprogram [f77.jay] program_unit : function_stmt program_body { $$ = fHir.funcSubProgram($1, $2); }

パラメータ:
pFuncStmt - function statement
pBody - statement list
戻り値:
Fir node of program_body

subrSubProgram

public Node subrSubProgram(FStmt pSubrStmt,
                           FirList pBody)
make Fir node of subroutine subprogram [f77.jay] program_unit : subroutine_stmt program_body { $$ = fHir.subrSubProgram($1, $2); }

パラメータ:
pSubrStmt - subroutine statement
pBody - statement list
戻り値:
Fir node of program_body

blockDataSubp

public Node blockDataSubp(Node p1)
make Fir node of block data subprogram [f77.jay] program_unit : block_data_subprogram { $$ = fHir.blockDataSubp($1); }

パラメータ:
p1 -
戻り値:
block data node.

endStmt

public FStmt endStmt(Token pLabel)
make Fir node of end statement [f77.jay] end statement : opt_label_def END EOS { $$ = fHir.endStmt($1); }

パラメータ:
pLabel - optional label
戻り値:
Fir node of end statement

completeStmt

public 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); }

パラメータ:
pLabel - optional label
pStmt -
戻り値:
optionally-labeled statement.

blockDataSubProgram

public Node blockDataSubProgram(Node p1,
                                Node p2)

blockDataBody

public Node blockDataBody(Node p1,
                          Node p2,
                          Node p3)

format

public FStmt format(Node p1)

dataSeq

public Node dataSeq(FirList p1,
                    FirList p2)

dataVal

public Node dataVal(Node p1,
                    Node p2)

value

public Node value(char p1,
                  Node p2)

constItem

public Node constItem(Token p1,
                      Node p2)

dataVarOne

public Node dataVarOne(Node p1)

dataVarDoList

public Node dataVarDoList(Node p1,
                          Node p2)

doLabeled

public 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); }

パラメータ:
pLabel -
pDoSpec -
戻り値:
labeled-do statement.

doUnLabeled

public 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); }

パラメータ:
p1 -
p2 -
戻り値:
unlabeled-do statement.

ifStmt

public FStmt ifStmt(Node pExp,
                    FStmt pStmt)
make Fir node of if statement [f77.jay] executable_statement : IF '(' expr ')' ifable_statement { $$ = fHir.ifStmt($3, $5); }}

パラメータ:
pExp -
pStmt -
戻り値:
if-statement.

blockIfStmt

public 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); }

パラメータ:
pIfPart -
pOptElseIfs -
pOptElse -
戻り値:
block_if statement.

blockIfPart

public 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); }

パラメータ:
pExp -
pTail -
戻り値:
block_if_part.

elseIfPart

public 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)); }

パラメータ:
pExp -
pTail -
戻り値:
else-if part.

doSpec

public 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); }

パラメータ:
pIdent -
pExp1 -
pExp2 -
pOptStep -
戻り値:
do_spec node.

assignOrFunc

public 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); }

パラメータ:
pLeft -
pRight -
戻り値:
assign statement or statement function statement.

assignLabel

public 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); }

パラメータ:
pLabel -
pIdent -
戻り値:
label assign statement.

continueStmt

public FStmt continueStmt()
make Fir node of continue statement [f77.jay] ifable_statement : CONTINUE { $$ = fHir.continueStmt(); }

戻り値:
continue statement.

gotoStmt

public FStmt gotoStmt(Token pLabel)
make Fir node of goto statement [f77.jay] ifable_statement : GOTO label { $$ = fHir.gotoStmt($2); }

パラメータ:
pLabel -
戻り値:
goto statement.

aGoto

public 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); }

パラメータ:
pIdent -
pOptLabels -
戻り値:
assigned-goto statement.

cGoto

public 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); }

パラメータ:
pLabels -
pExp -
戻り値:
computed-goto statement.

aIf

public 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); }

パラメータ:
pNode -
pMinusLab -
pZeroLab -
pPlusLab -
戻り値:
arithmetic-if statement.

call

public 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); }

パラメータ:
pIdent -
pOptArgs -
戻り値:
call statement.

returnStmt

public FStmt returnStmt(Node pOptExpr)
make Fir node of return statement [f77.jay] ifable_statement : RETURN opt_expr { $$ = fHir.returnStmt($2); }

パラメータ:
pOptExpr -
戻り値:
return-statement.

pause

public FStmt pause(Node p1)
make Fir node of pause statement [f77.jay] ifable_statement : PAUSE expr { $$ = fHir.pause($2); }

パラメータ:
p1 -
戻り値:
pause statement.

stop

public FStmt stop(Node p1)
make Fir node of stop statement [f77.jay] ifable_statement : STOP expr { $$ = fHir.stop($2); }

パラメータ:
p1 -
戻り値:
stop-statement.

argLabel

public Token argLabel(Token pLabel)
make Fir node of '*' label argument [f77.jay] arg : '*' label { $$ = fHir.argLabel($2); }

パラメータ:
pLabel -
戻り値:
label token

label

public Token label(Token pIntConst)
make Fir node of statement label [f77.jay] label : INT_CONST { $$ = fHir.label($1); }

パラメータ:
pIntConst -
戻り値:
statement label.

printStmt

public FStmt printStmt(Node pFormat,
                       FirList pOptIoList)

writeStmt

public FStmt writeStmt(FirList pCiList,
                       FirList pOptIoList)

readStmt

public FStmt readStmt(Node p1,
                      Node p2)

readFStmt

public FStmt readFStmt(Node p1,
                       Node p2)

openStmt

public FStmt openStmt(FirList p1)

closeStmt

public FStmt closeStmt(FirList p1)

backspace

public FStmt backspace(FirList p1)

backspaceF

public FStmt backspaceF(Node p1)

endfile

public FStmt endfile(FirList p1)

endfileF

public FStmt endfileF(Node p1)

rewind

public FStmt rewind(FirList p1)

rewindF

public FStmt rewindF(Node p1)

inquire

public FStmt inquire(FirList p1)

ioClause

public Node ioClause(Token pIdent,
                     Node pExpr)

ioItemExpr

public Node ioItemExpr(Node pExpr)

ioItemDoList

public 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); }


enclosed

public Node enclosed(Node pExp)
make Fir node of parenthesized expression [f77.jay] expr : '(' expr ')' { $$ = fHir.enclosed($2); }

パラメータ:
pExp -
戻り値:
parenthesized expression.

exprUnary

public 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); }

パラメータ:
op -
pExp -
戻り値:
unary expression.

exprBinary

public 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); }

パラメータ:
op -
e1 -
e2 -
戻り値:
binary expression.

exprPower

public Node exprPower(Node pNode1,
                      Node pNode2)
make Fir node of powered expression [f77.jay] expr : expr POWER expr { $$ = fHir.exprPower( $1, $3); }

パラメータ:
pNode1 -
pNode2 -
戻り値:
powered expression.

exprCat

public Node exprCat(Node p1,
                    Node p2)
make Fir node of concatenated expression [f77.jay] expr : expr DOUBLE_SLASH expr { $$ = fHir.exprCat($1, $3); }

パラメータ:
p1 -
p2 -
戻り値:
concatenated expression.

leftName

public 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); }

パラメータ:
pIdent -
argList -
戻り値:
left name.

leftNameSubstr

public Node leftNameSubstr(Token pIdent,
                           FirList pArgs,
                           Pair pSubstr)

substring

public Pair substring(Node p1,
                      Node p2)

checkConstNumber

protected boolean checkConstNumber(Node node)
make Fir node of complex constant [f77.jay] complex_const : '(' expr ',' expr ')' { $$ = fHir.constComplex($2, $4); }

戻り値:
true if constant number.

constComplex

public Node constComplex(Node pReal,
                         Node pImag)