26.09.2013 Views

Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

APPENDIX E. ANTLR GRAMMAR<br />

|<br />

{ optional_value_expr_list . g e t L i s t ( ) . add ( ve1 ) ; }<br />

(<br />

COMMA ve1 = value_expr<br />

{ optional_value_expr_list . g e t L i s t ( ) . add ( ve1 ) ; }<br />

) ∗<br />

RLIST<br />

{ l e =<br />

new EnumeratedListExpr (<br />

new ValueExprList (<br />

optional_value_expr_list ) ) ; }<br />

|<br />

BAR b = binding IN ve2 = value_expr<br />

(FORWHICH ve3 = value_expr ) ?<br />

RLIST<br />

{ i f ( ve3 == null ) {<br />

or = new NoRestriction ( ) ; }<br />

else {<br />

or = new R e s t r i c t i o n ( ve3 ) ;<br />

}}<br />

{ l e = new ComprehendedListExpr ( ve1 , b , ve2 , or ) ; }<br />

)<br />

|<br />

RLIST<br />

{ l e = new EnumeratedListExpr (new NoValueExprList ( ) ) ; }<br />

)<br />

{ ve = new Make_ListExpr ( l e ) ; }<br />

|<br />

LBRACKET<br />

(<br />

vep1 = value_expr_pair<br />

(<br />

{ optional_value_expr_pair_list . g e t L i s t ( ) . add ( vep1 ) ; }<br />

(<br />

COMMA vep1 = value_expr_pair<br />

{ optional_value_expr_pair_list . g e t L i s t ( ) . add ( vep1 ) ; }<br />

) ∗<br />

RBRACKET<br />

{me =<br />

new EnumeratedMapExpr (<br />

new ValueExprPairList (<br />

optional_value_expr_pair_list ) ) ; }<br />

|<br />

BAR<br />

( ty = typing { t y p i n g _ l i s t . g e t L i s t ( ) . add ( ty ) ; } )+<br />

(FORWHICH ve2 = value_expr ) ?<br />

RBRACKET<br />

{ i f ( ve2 == null ) {<br />

or = new NoRestriction ( ) ; }<br />

496

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!