Transformation of Applicative Specifications into Imperative ...
Transformation of Applicative Specifications into Imperative ... Transformation of Applicative Specifications into Imperative ...
APPENDIX E. ANTLR GRAMMAR ; d = d e c l { d e c l _ l i s t . g e t L i s t ( ) . add ( d ) ; } ) ∗ END {be = new BasicClassExpr ( d e c l _ l i s t ) ; } extending_class_expr returns [ ExtendingClassExpr ece ] { ece = null ; ClassExpr ce1 = null ; ClassExpr ce2 = null ; } : EXTEND ce1 = class_expr WITH ce2 = class_expr { ece = new ExtendingClassExpr ( ce1 , ce2 ) ; } ; scheme_instantiation returns [ SchemeInstantiation s i ] { s i = null ; Id i d e n t i f i e r = null ; } : i d e n t i f i e r = id { s i = new SchemeInstantiation ( i d e n t i f i e r ) ; } ; d e c l returns [ Decl d ] { d = null ; } : VALUE d = value_decl | TYPE d = type_decl | TEST_CASE d = t e s t _ d e c l ; //Type D e c l a r a t i o n type_decl returns [ TypeDecl td ] { td = null ; RSLListDefault type_def_list = new RSLListDefault() ; TypeDef def ; } : def = type_def { type_def_list . g e t L i s t ( ) . add ( def ) ; } ( COMMA def = type_def { type_def_list . g e t L i s t ( ) . add ( def ) ; } ) ∗ { td = new TypeDecl ( type_def_list ) ; } ; 478
type_def returns [ TypeDef td ] { td = null ; Id i d e n t i f i e r = null ; } : td = sort_def | td = variant_def | td = short_record_def | i d e n t i f i e r = id EQUAL td = abbreviation_def [ i d e n t i f i e r ] /∗ | td = union_def [ i d e n t i f i e r ] ) ∗/ ; sort_def returns [ SortDef sd ] { sd = null ; Id i d e n t i f i e r = null ; } : i d e n t i f i e r = id { sd = new SortDef ( i d e n t i f i e r ) ; } ; variant_def returns [ VariantDef vd ] { vd = null ; Id i d e n t i f i e r = null ; Id i d e n t i f i e r 2 = null ; Constructor c o n s t r u c t o r = null ; RSLListDefault v a r i a n t _ l i s t = new RSLListDefault() ; RSLListDefault componentKindList = null ; } : i d e n t i f i e r = id EQUALEQUAL i d e n t i f i e r 2 = id { c o n s t r u c t o r = new Constructor ( i d e n t i f i e r 2 ) ; } ( LPAREN componentKindList = component_kind_list RPAREN ) ? { i f ( componentKindList == null ) { v a r i a n t _ l i s t . g e t L i s t ( ) . add ( new Make_Constructor ( c o n s t r u c t o r ) ) ; } else { v a r i a n t _ l i s t . g e t L i s t ( ) . add ( new RecordVariant ( c o n s t r u c t o r , 479
- Page 444 and 445: APPENDIX D. SPECIFICATION OF TRANSF
- Page 446 and 447: APPENDIX D. SPECIFICATION OF TRANSF
- Page 448 and 449: APPENDIX D. SPECIFICATION OF TRANSF
- Page 450 and 451: APPENDIX D. SPECIFICATION OF TRANSF
- Page 452 and 453: APPENDIX D. SPECIFICATION OF TRANSF
- Page 454 and 455: APPENDIX D. SPECIFICATION OF TRANSF
- Page 456 and 457: APPENDIX D. SPECIFICATION OF TRANSF
- Page 458 and 459: APPENDIX D. SPECIFICATION OF TRANSF
- Page 460 and 461: APPENDIX D. SPECIFICATION OF TRANSF
- Page 462 and 463: APPENDIX D. SPECIFICATION OF TRANSF
- Page 464 and 465: APPENDIX D. SPECIFICATION OF TRANSF
- Page 466 and 467: APPENDIX D. SPECIFICATION OF TRANSF
- Page 468 and 469: APPENDIX D. SPECIFICATION OF TRANSF
- Page 470 and 471: APPENDIX D. SPECIFICATION OF TRANSF
- Page 472 and 473: APPENDIX D. SPECIFICATION OF TRANSF
- Page 474 and 475: APPENDIX D. SPECIFICATION OF TRANSF
- Page 476 and 477: APPENDIX D. SPECIFICATION OF TRANSF
- Page 478 and 479: APPENDIX D. SPECIFICATION OF TRANSF
- Page 480 and 481: APPENDIX D. SPECIFICATION OF TRANSF
- Page 482 and 483: APPENDIX D. SPECIFICATION OF TRANSF
- Page 484 and 485: APPENDIX D. SPECIFICATION OF TRANSF
- Page 486 and 487: APPENDIX D. SPECIFICATION OF TRANSF
- Page 488 and 489: APPENDIX D. SPECIFICATION OF TRANSF
- Page 490 and 491: APPENDIX D. SPECIFICATION OF TRANSF
- Page 492 and 493: APPENDIX E. ANTLR GRAMMAR END = "en
- Page 496 and 497: APPENDIX E. ANTLR GRAMMAR ; } ( com
- Page 498 and 499: APPENDIX E. ANTLR GRAMMAR ; ) ∗ }
- Page 500 and 501: APPENDIX E. ANTLR GRAMMAR ; } else
- Page 502 and 503: APPENDIX E. ANTLR GRAMMAR prod_bind
- Page 504 and 505: APPENDIX E. ANTLR GRAMMAR ; | | | |
- Page 506 and 507: APPENDIX E. ANTLR GRAMMAR ; | NAT {
- 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
type_def returns [ TypeDef td ] {<br />
td = null ;<br />
Id i d e n t i f i e r = null ;<br />
}<br />
: td = sort_def<br />
| td = variant_def<br />
| td = short_record_def<br />
| i d e n t i f i e r = id<br />
EQUAL td = abbreviation_def [ i d e n t i f i e r ]<br />
/∗ | td = union_def [ i d e n t i f i e r ] ) ∗/<br />
;<br />
sort_def returns [ SortDef sd ] {<br />
sd = null ;<br />
Id i d e n t i f i e r = null ;<br />
}<br />
: i d e n t i f i e r = id<br />
{ sd = new SortDef ( i d e n t i f i e r ) ; }<br />
;<br />
variant_def returns [ VariantDef vd ] {<br />
vd = null ;<br />
Id i d e n t i f i e r = null ;<br />
Id i d e n t i f i e r 2 = null ;<br />
Constructor c o n s t r u c t o r = null ;<br />
RSLListDefault<br />
v a r i a n t _ l i s t =<br />
new RSLListDefault() ;<br />
RSLListDefault componentKindList =<br />
null ;<br />
}<br />
: i d e n t i f i e r = id EQUALEQUAL<br />
i d e n t i f i e r 2 = id<br />
{ c o n s t r u c t o r = new Constructor ( i d e n t i f i e r 2 ) ; }<br />
(<br />
LPAREN<br />
componentKindList = component_kind_list<br />
RPAREN<br />
) ?<br />
{<br />
i f ( componentKindList == null ) {<br />
v a r i a n t _ l i s t . g e t L i s t ( ) . add (<br />
new Make_Constructor ( c o n s t r u c t o r ) ) ;<br />
}<br />
else {<br />
v a r i a n t _ l i s t . g e t L i s t ( ) . add (<br />
new RecordVariant (<br />
c o n s t r u c t o r ,<br />
479