Transformation of Applicative Specifications into Imperative ...
Transformation of Applicative Specifications into Imperative ... Transformation of Applicative Specifications into Imperative ...
APPENDIX F. SOURCE CODE } v a l u e I n f i x E x p r . r i g h t ( ) . accept ( this ) ; public void v i s i t V a l u e P r e f i x E x p r ( ValuePrefixExpr valuePrefixExpr ) { valuePrefixExpr . op ( ) . accept ( this ) ; valuePrefixExpr . operand ( ) . accept ( this ) ; } public void v i s i t A s s i g n E x p r ( AssignExpr assignExpr ) { assignExpr . id ( ) . accept ( this ) ; r e s u l t . append ( " : = " ) ; assignExpr . assign_value_expr ( ) . accept ( this ) ; } public void v i sitSequencingExpr ( SequencingExpr seqExpr ) { seqExpr . f i r s t ( ) . accept ( this ) ; r e s u l t . append ( " ; " ) ; seqExpr . second ( ) . accept ( this ) ; } public void v i s i t L e t E x p r ( LetExpr letExpr ) { r e s u l t . append ( " l e t " ) ; for ( LetDef l e t D e f : letExpr . l e t _ d e f _ l i s t ( ) . g e t L i s t ( ) ) { l e t D e f . accept ( this ) ; r e s u l t . append ( " , " ) ; } i f ( letExpr . l e t _ d e f _ l i s t ( ) . l e n ( ) > 0) { r e s u l t . d e l e t e ( r e s u l t . length ( ) − 2 , r e s u l t . length ( ) ) ; } r e s u l t . append ( " in " ) ; letExpr . let_value_expr ( ) . accept ( this ) ; r e s u l t . append ( " end" ) ; } public void visitMake_IfExpr ( Make_IfExpr makeIfExpr ) { makeIfExpr . if_expr ( ) . accept ( this ) ; } public void visitCaseExpr ( CaseExpr caseExpr ) { r e s u l t . append ( " case " ) ; caseExpr . c o n d i t i o n ( ) . accept ( this ) ; r e s u l t . append ( " o f \n" ) ; for ( CaseBranch cb : caseExpr . case_branch_list ( ) . g e t L i s t ( ) ) { cb . accept ( this ) ; r e s u l t . append ( " ,\ n" ) ; } i f ( caseExpr . case_branch_list ( ) . l e n ( ) > 0) { r e s u l t . d e l e t e ( r e s u l t . length ( ) − 2 , r e s u l t . length ( ) ) ; 542
} } r e s u l t . append ( "\n" ) ; r e s u l t . append ( "end" ) ; F.2. VISITOR MODULES public void v i s i t V a l u e L i t e r a l I n t e g e r ( V a l u e L i t e r a l I n t e g e r v a l u e L i t e r a l I n t e g e r ) { r e s u l t . append ( v a l u e L i t e r a l I n t e g e r . g e t T e x t I n t e g e r ( ) ) ; } public void v i s i t V a l u e L i t e r a l R e a l ( V a l u e L i t e r a l R e a l v a l u e L i t e r a l R e a l ) { r e s u l t . append ( v a l u e L i t e r a l R e a l . getTextReal ( ) ) ; } public void v i s i t V a l u e L i t e r a l B o o l ( V a l u e L i t e r a l B o o l v a l u e L i t e r a l B o o l ) { r e s u l t . append ( v a l u e L i t e r a l B o o l . getTextBool ( ) ) ; } public void v i s i t V a l u e L i t e r a l C h a r ( ValueLiteralChar v a l u e L i t e r a l C h a r ) { r e s u l t . append ( " ’ " ) ; r e s u l t . append ( v a l u e L i t e r a l C h a r . getTextChar ( ) ) ; r e s u l t . append ( " ’ " ) ; } public void v i s i t V a l u e L i t e r a l T e x t ( ValueLiteralText v a l u e L i t e r a l T e x t ) { r e s u l t . append ( "\"" ) ; r e s u l t . append ( v a l u e L i t e r a l T e x t . getTextText ( ) ) ; r e s u l t . append ( "\"" ) ; } public void visitValueOrVariableName ( ValueOrVariableName valueOrVariableName ) { valueOrVariableName . id ( ) . accept ( this ) ; } public void visitCHAOS (CHAOS chaos ) { r e s u l t . append ( " chaos " ) ; } public void visitRangedSetExpr ( RangedSetExpr rangedSetExpr ) { r e s u l t . append ( "{" ) ; rangedSetExpr . f i r s t ( ) . accept ( this ) ; r e s u l t . append ( " . . " ) ; rangedSetExpr . second ( ) . accept ( this ) ; r e s u l t . append ( "}" ) ; 543
- Page 508 and 509: APPENDIX E. ANTLR GRAMMAR ; { ve3 =
- Page 510 and 511: APPENDIX E. ANTLR GRAMMAR ( | RPARE
- Page 512 and 513: APPENDIX E. ANTLR GRAMMAR | { optio
- Page 514 and 515: APPENDIX E. ANTLR GRAMMAR new RSLLi
- Page 516 and 517: APPENDIX E. ANTLR GRAMMAR infix_op_
- Page 518 and 519: APPENDIX E. ANTLR GRAMMAR : v l = v
- Page 520 and 521: APPENDIX E. ANTLR GRAMMAR } t e s t
- Page 522 and 523: APPENDIX E. ANTLR GRAMMAR } : ’ .
- Page 524 and 525: APPENDIX E. ANTLR GRAMMAR 508
- Page 526 and 527: APPENDIX F. SOURCE CODE System . e
- Page 528 and 529: APPENDIX F. SOURCE CODE } } catch (
- Page 530 and 531: APPENDIX F. SOURCE CODE F.2 Visitor
- Page 532 and 533: APPENDIX F. SOURCE CODE public void
- Page 534 and 535: APPENDIX F. SOURCE CODE public void
- Page 536 and 537: APPENDIX F. SOURCE CODE public void
- Page 538 and 539: APPENDIX F. SOURCE CODE public void
- Page 540 and 541: APPENDIX F. SOURCE CODE public void
- Page 542 and 543: APPENDIX F. SOURCE CODE public void
- Page 544 and 545: APPENDIX F. SOURCE CODE public void
- Page 546 and 547: APPENDIX F. SOURCE CODE StringRSLAs
- Page 548 and 549: APPENDIX F. SOURCE CODE } nameOrWil
- Page 550 and 551: APPENDIX F. SOURCE CODE } public vo
- Page 552 and 553: APPENDIX F. SOURCE CODE } r e s u l
- Page 554 and 555: APPENDIX F. SOURCE CODE public void
- Page 556 and 557: APPENDIX F. SOURCE CODE } } public
- Page 560 and 561: APPENDIX F. SOURCE CODE } public vo
- Page 562 and 563: APPENDIX F. SOURCE CODE } public vo
- Page 564 and 565: APPENDIX F. SOURCE CODE public void
- Page 566 and 567: APPENDIX F. SOURCE CODE } r e s u l
- Page 568 and 569: APPENDIX F. SOURCE CODE } } r e s u
- Page 570 and 571: APPENDIX G. TEST RESULTS continued
- Page 572 and 573: APPENDIX G. TEST RESULTS continued
- Page 574 and 575: APPENDIX G. TEST RESULTS continued
- Page 576: APPENDIX G. TEST RESULTS continued
APPENDIX F. SOURCE CODE<br />
}<br />
v a l u e I n f i x E x p r . r i g h t ( ) . accept ( this ) ;<br />
public void v i s i t V a l u e P r e f i x E x p r ( ValuePrefixExpr<br />
valuePrefixExpr ) {<br />
valuePrefixExpr . op ( ) . accept ( this ) ;<br />
valuePrefixExpr . operand ( ) . accept ( this ) ;<br />
}<br />
public void v i s i t A s s i g n E x p r ( AssignExpr assignExpr ) {<br />
assignExpr . id ( ) . accept ( this ) ;<br />
r e s u l t . append ( " : = " ) ;<br />
assignExpr . assign_value_expr ( ) . accept ( this ) ;<br />
}<br />
public void v i sitSequencingExpr ( SequencingExpr seqExpr ) {<br />
seqExpr . f i r s t ( ) . accept ( this ) ;<br />
r e s u l t . append ( " ; " ) ;<br />
seqExpr . second ( ) . accept ( this ) ;<br />
}<br />
public void v i s i t L e t E x p r ( LetExpr letExpr ) {<br />
r e s u l t . append ( " l e t " ) ;<br />
for ( LetDef l e t D e f : letExpr . l e t _ d e f _ l i s t ( ) . g e t L i s t ( ) ) {<br />
l e t D e f . accept ( this ) ;<br />
r e s u l t . append ( " , " ) ;<br />
}<br />
i f ( letExpr . l e t _ d e f _ l i s t ( ) . l e n ( ) > 0) {<br />
r e s u l t . d e l e t e ( r e s u l t . length ( ) − 2 , r e s u l t . length ( ) ) ;<br />
}<br />
r e s u l t . append ( " in " ) ;<br />
letExpr . let_value_expr ( ) . accept ( this ) ;<br />
r e s u l t . append ( " end" ) ;<br />
}<br />
public void visitMake_IfExpr ( Make_IfExpr makeIfExpr ) {<br />
makeIfExpr . if_expr ( ) . accept ( this ) ;<br />
}<br />
public void visitCaseExpr ( CaseExpr caseExpr ) {<br />
r e s u l t . append ( " case " ) ;<br />
caseExpr . c o n d i t i o n ( ) . accept ( this ) ;<br />
r e s u l t . append ( " o f \n" ) ;<br />
for ( CaseBranch cb : caseExpr . case_branch_list ( ) . g e t L i s t ( ) ) {<br />
cb . accept ( this ) ;<br />
r e s u l t . append ( " ,\ n" ) ;<br />
}<br />
i f ( caseExpr . case_branch_list ( ) . l e n ( ) > 0) {<br />
r e s u l t . d e l e t e ( r e s u l t . length ( ) − 2 , r e s u l t . length ( ) ) ;<br />
542