On Friday 30 May 2008 09:22:57 Tammo van Lessen wrote: > Hi Marc, > > thanks for the patch. Would you mind to file a JIRA with the patch and > select the ASF License grant check box? Otherwise we cannot directly > incorporate it...
done. best regards Marc > Thanks, > Tammo > > Marc Bischof wrote: > > Hej devs, > > > > here is the patch for the grammar and the tree-grammar. > > > > Marc > > > > On Thursday 29 May 2008 17:57:30 Alex Boisvert wrote: > >> Hi Marc, > >> > >> Yes, you're right about the cardinality issue in the grammar. A patch > >> would be greatly appreciated! > >> > >> alex > >> > >> On Thu, May 29, 2008 at 8:23 AM, Marc Bischof <[EMAIL PROTECTED]> wrote: > >>> Hello devs, > >>> > >>> I'am a student at the IAAS and working on a BPEL2SimPEL translator. > >>> > >>> I looked at the SimPEL-Grammar and I think you've missed something when > >>> modeling non-empty lists. > >>> > >>> I also propose that the rewrite-rules should be correct in the grammar > >>> so the translation into tree-grammar would be clearer and less error > >>> prone. > >>> > >>> Here a short example: > >>> > >>> In the param_block-rule you've modeled an optional ID-list. But in the > >>> rewrite-rule this is missing. So I think that there should be $in* (in > >>> general this should be a $in+, but in this special case the complete > >>> list is > >>> optional). > >>> When this was done in the proposed way in the grammar, it would also > >>> affect the tree-grammar. There, the param-block-rule is currently > >>> modeled with $ID+ > >>> instead of $ID*. > >>> > >>> So I went over the grammar and looked for these errors (changes in > >>> tree-grammar analog): > >>> > >>> * param_block : '{' ('|' in+=ID (',' in+=ID)* '|')? proc_stmt+ '}' -> > >>> ^(SEQUENCE $in proc_stmt+); > >>> > >>>> param_block : '{' ('|' in+=ID (',' in+=ID)* '|')? proc_stmt+ '}' -> > >>> > >>> ^(SEQUENCE $in* proc_stmt+); > >>> > >>> * flow : 'parallel' b+=body ('and' b+=body)* -> ^(FLOW $b); > >>> > >>>> flow : 'parallel' b+=body ('and' b+=body)* -> ^(FLOW $b+); > >>> > >>> * join : 'join' '(' k+=ID (',' k+=ID)* (',' expr)? ')' -> ^(JOIN $k > >>> expr?); > >>> > >>>> join : 'join' '(' k+=ID (',' k+=ID)* (',' expr)? ')' -> ^(JOIN $k+ > >>> > >>> expr?); > >>> > >>> * with_ex : 'with' '(' wm+=with_map (',' wm+=with_map)* ')' body -> > >>> ^(WITH $wm* body); > >>> > >>>> with_ex : 'with' '(' wm+=with_map (',' wm+=with_map)* ')' body -> > >>> > >>> ^(WITH > >>> $wm+ body); > >>> > >>> * partner_link : 'partnerLink' pl+=ID (',' pl+=ID)* -> ^(PARTNERLINK > >>> $pl); > >>> > >>>> partner_link : 'partnerLink' pl+=ID (',' pl+=ID)* -> ^(PARTNERLINK > >>> > >>> $pl+); > >>> > >>> * correlation : '{' corr_mapping (',' corr_mapping)* '}' -> > >>> ^(CORRELATION corr_mapping*); > >>> > >>> > correlation : '{' corr_mapping (',' corr_mapping)* '}' -> > >>> > >>> ^(CORRELATION > >>> corr_mapping+); > >>> > >>> * path_expr : pelmt+=ns_id ('.' pelmt+=ns_id)* -> ^(PATH $pelmt); > >>> > >>>> path_expr : pelmt+=ns_id ('.' pelmt+=ns_id)* -> ^(PATH $pelmt+); > >>> > >>> Do you think, I'm right. Should I file a patch? > >>> > >>> Kind regards > >>> Marc Bischof