<html><body><span style="font-family:Verdana; color:#000; font-size:10pt;"><div><br></div><div>Hi -</div><div><br></div><div>I would like to construct a scanner like the following:</div><div><br></div><div>main := |*</div><div>    A { fcall m1; fbreak; }</div><div> *|;</div><div><br></div><div>m1 := |*</div><div>   B { fcall m2; fbreak; }</div><div>*|;</div><div><br></div><div>m2 := |*</div><div>   C { fret; fret; fbreak; }</div><div>*|;</div><div><br></div><div>Although ragel will  compile this, the generated C-code looks</div><div>like it will not work like I intend.  There are two problems.</div><div>One I would like machine C to return back to main, but I don't</div><div>want to use fgoto because in the general case it may be a different</div><div>scanner that needs to be returned to.   The other problem</div><div>is that I don't think the fbreaks will work.  I really want to</div><div>return a token, then perform the fcall, or fret.  Is this</div><div>even possible?</div><div><br></div><div>Thanks,</div><div><br></div><div>Eric West<br></div><div><br></div><div><br></div><div><br></div><div><br></div></span></body></html>