Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ... Transformation of Applicative Specifications into Imperative ...

26.09.2013 Views

APPENDIX F. SOURCE CODE } } public void visitNoReadAccessMode ( NoReadAccessMode noReadAccessMode ) {} public void v i s i t W r i t e A c c e s s D e s c ( WriteAccessDesc writeAccessDesc ) { r e s u l t . append ( " w r i t e " ) ; for ( Access ac : writeAccessDesc . a c c e s s _ l i s t ( ) . g e t L i s t ( ) ) { ac . accept ( this ) ; r e s u l t . append ( " , " ) ; } i f ( writeAccessDesc . a c c e s s _ 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 ( ) − 1) ; } } public void visitNoWriteAccessMode ( NoWriteAccessMode noWriteAccessMode ) {} public void visitAccessValueOrVariableName ( AccessValueOrVariableName valueOrVariableName ) { valueOrVariableName . variable_name ( ) . accept ( this ) ; } /∗ Value Expression ∗/ public void visitMake_ValueLiteral ( Make_ValueLiteral v a l u e L i t e r a l ) { v a l u e L i t e r a l . v a l u e _ l i t e r a l ( ) . accept ( this ) ; } public void visitMake_ValueOrVariableName ( Make_ValueOrVariableName valueOrVariableName ) { valueOrVariableName . value_or_variable_name ( ) . accept ( this ) ; } public void visitMake_BasicExpr ( Make_BasicExpr basicExpr ) { basicExpr . basic_expr ( ) . accept ( this ) ; } public void visitProductExpr ( ProductExpr productExpr ) { r e s u l t . append ( " ( " ) ; for ( ValueExpr value_expr : productExpr . value_expr_list ( ) . g e t L i s t ( ) ) { value_expr . accept ( this ) ; r e s u l t . append ( " , " ) ; } 540

} F.2. VISITOR MODULES i f ( productExpr . value_expr_list ( ) . l e n ( ) > 0) { r e s u l t . d e l e t e ( r e s u l t . l ength ( ) − 2 , r e s u l t . length ( ) ) ; } r e s u l t . append ( " ) " ) ; public void visitMake_SetExpr ( Make_SetExpr setExpr ) { setExpr . set_expr ( ) . accept ( this ) ; } public void visitMake_ListExpr ( Make_ListExpr makeListExpr ) { makeListExpr . l i s t _ e x p r ( ) . accept ( this ) ; } public void visitMake_MapExpr (Make_MapExpr mapExpr) { mapExpr . map_expr ( ) . accept ( this ) ; } public void v i s i t A p p l i c a t i o n E x p r ( ApplicationExpr applicationExpr ) { applicationExpr . value_expr ( ) . accept ( this ) ; r e s u l t . append ( " ( " ) ; for ( ValueExpr ve : applicationExpr . appl_value_expr_list ( ) . g e t L i s t ( ) ) { ve . accept ( this ) ; r e s u l t . append ( " , " ) ; } i f ( a pplicationExpr . appl_value_expr_list ( ) . l e n ( ) > 0) { r e s u l t . d e l e t e ( r e s u l t . l ength ( ) − 2 , r e s u l t . length ( ) ) ; } r e s u l t . append ( " ) " ) ; } public void visitDisambiguationExpr ( DisambiguationExpr disExpr ) { disExpr . dis_value_expr ( ) . accept ( this ) ; r e s u l t . append ( " : " ) ; disExpr . dis_type_expr ( ) . accept ( this ) ; } public void visitBracketedExpr ( BracketedExpr bracketedExpr ) { r e s u l t . append ( " ( " ) ; bracketedExpr . bracketed_expr ( ) . accept ( this ) ; r e s u l t . append ( " ) " ) ; } public void v i s i t V a l u e I n f i x E x p r ( ValueInfixExpr v a l u e I n f i x E x p r ) { v a l u e I n f i x E x p r . l e f t ( ) . accept ( this ) ; r e s u l t . append ( " " ) ; v a l u e I n f i x E x p r . op ( ) . accept ( this ) ; r e s u l t . append ( " " ) ; 541

}<br />

F.2. VISITOR MODULES<br />

i f ( productExpr . value_expr_list ( ) . l e n ( ) > 0) {<br />

r e s u l t . d e l e t e ( r e s u l t . l ength ( ) − 2 , r e s u l t . length ( ) ) ;<br />

}<br />

r e s u l t . append ( " ) " ) ;<br />

public void visitMake_SetExpr ( Make_SetExpr setExpr ) {<br />

setExpr . set_expr ( ) . accept ( this ) ;<br />

}<br />

public void visitMake_ListExpr ( Make_ListExpr makeListExpr ) {<br />

makeListExpr . l i s t _ e x p r ( ) . accept ( this ) ;<br />

}<br />

public void visitMake_MapExpr (Make_MapExpr mapExpr) {<br />

mapExpr . map_expr ( ) . accept ( this ) ;<br />

}<br />

public void v i s i t A p p l i c a t i o n E x p r ( ApplicationExpr applicationExpr ) {<br />

applicationExpr . value_expr ( ) . accept ( this ) ;<br />

r e s u l t . append ( " ( " ) ;<br />

for ( ValueExpr ve :<br />

applicationExpr . appl_value_expr_list ( ) . g e t L i s t ( ) ) {<br />

ve . accept ( this ) ;<br />

r e s u l t . append ( " , " ) ;<br />

}<br />

i f ( a pplicationExpr . appl_value_expr_list ( ) . l e n ( ) > 0) {<br />

r e s u l t . d e l e t e ( r e s u l t . l ength ( ) − 2 , r e s u l t . length ( ) ) ;<br />

}<br />

r e s u l t . append ( " ) " ) ;<br />

}<br />

public void visitDisambiguationExpr ( DisambiguationExpr disExpr ) {<br />

disExpr . dis_value_expr ( ) . accept ( this ) ;<br />

r e s u l t . append ( " : " ) ;<br />

disExpr . dis_type_expr ( ) . accept ( this ) ;<br />

}<br />

public void visitBracketedExpr ( BracketedExpr bracketedExpr ) {<br />

r e s u l t . append ( " ( " ) ;<br />

bracketedExpr . bracketed_expr ( ) . accept ( this ) ;<br />

r e s u l t . append ( " ) " ) ;<br />

}<br />

public void v i s i t V a l u e I n f i x E x p r ( ValueInfixExpr v a l u e I n f i x E x p r ) {<br />

v a l u e I n f i x E x p r . l e f t ( ) . accept ( this ) ;<br />

r e s u l t . append ( " " ) ;<br />

v a l u e I n f i x E x p r . op ( ) . accept ( this ) ;<br />

r e s u l t . append ( " " ) ;<br />

541

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

Saved successfully!

Ooh no, something went wrong!