Transformation of Applicative Specifications into Imperative ...
Transformation of Applicative Specifications into Imperative ... Transformation of Applicative Specifications into Imperative ...
APPENDIX E. ANTLR GRAMMAR ; } ( componentKindList ) ) ; componentKindList = null ; } BAR 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 ( constructor , componentKindList ) ) ; componentKindList = null ; } } ) ∗ {vd = new VariantDef ( i d e n t i f i e r , v a r i a n t _ l i s t ) ; } union_def [ Id i d e n t i f i e r ] returns [ UnionDef ud ] { ud = null ; NameOrWildcard nw = null ; RSLListDefault nameOrWildcardList = new RSLListDefault() ; } : nw = name_or_wildcard { nameOrWildcardList . g e t L i s t ( ) . add (nw) ; } ( BAR nw = name_or_wildcard { nameOrWildcardList . g e t L i s t ( ) . add (nw) ; } ) ∗ {ud = new UnionDef ( i d e n t i f i e r , nameOrWildcardList ) ; } ; name_or_wildcard returns [ NameOrWildcard now ] { Id var = null ; 480
now = null ; } : var = q u a l i f i e d _ i d {now = new Name(new ValueOrVariableName ( var ) ) ; } | UNDERSCORE { now = new Wildcard ( ) ; } ; short_record_def returns [ ShortRecordDef srd ] { srd = null ; Id i d e n t i f i e r = null ; RSLListDefault componentKindString = null ; } : i d e n t i f i e r = id COLON COLON componentKindString = component_kind_string { srd = new ShortRecordDef ( i d e n t i f i e r , componentKindString ) ; } ; component_kind_list returns [ RSLListDefault componentKindList ] { componentKindList = new RSLListDefault() ; Id i d e n t i f i e r 1 = null ; Id i d e n t i f i e r 2 = null ; TypeExpr typeExpr = null ; TypeExpr typeExpr2 = null ; } : ( i d e n t i f i e r 1 = id COLON) ? typeExpr = type_expr (LT TOTALARROW i d e n t i f i e r 2 = id ) ? { componentKindList . g e t L i s t ( ) . add ( new ComponentKind ( ( i d e n t i f i e r 1 ! = null ? new Destructor ( i d e n t i f i e r 1 ) : new NoDestructor ( ) ) , typeExpr , ( i d e n t i f i e r 2 ! = null ? new Reconstructor ( i d e n t i f i e r 2 ) : new NoReconstructor ( ) ) ) ) ; i d e n t i f i e r 1 = null ; i d e n t i f i e r 2 = null ; } ( COMMA ( i d e n t i f i e r 1 = id COLON) ? typeExpr2 = type_expr (LT TOTALARROW i d e n t i f i e r 2 = id ) ? { 481
- 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 494 and 495: APPENDIX E. ANTLR GRAMMAR ; d = d e
- 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
- Page 544 and 545: APPENDIX F. SOURCE CODE public void
APPENDIX E. ANTLR GRAMMAR<br />
;<br />
}<br />
(<br />
componentKindList<br />
) ) ;<br />
componentKindList = null ;<br />
}<br />
BAR 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 />
constructor ,<br />
componentKindList<br />
) ) ;<br />
componentKindList = null ;<br />
}<br />
}<br />
) ∗<br />
{vd = new VariantDef ( i d e n t i f i e r , v a r i a n t _ l i s t ) ; }<br />
union_def [ Id i d e n t i f i e r ] returns [ UnionDef ud ] {<br />
ud = null ;<br />
NameOrWildcard nw = null ;<br />
RSLListDefault<br />
nameOrWildcardList =<br />
new RSLListDefault() ;<br />
}<br />
: nw = name_or_wildcard<br />
{ nameOrWildcardList . g e t L i s t ( ) . add (nw) ; }<br />
(<br />
BAR nw = name_or_wildcard<br />
{ nameOrWildcardList . g e t L i s t ( ) . add (nw) ; }<br />
) ∗<br />
{ud = new UnionDef ( i d e n t i f i e r , nameOrWildcardList ) ; }<br />
;<br />
name_or_wildcard returns [ NameOrWildcard now ] {<br />
Id var = null ;<br />
480