Hi, I am trying to use ragel to validate grammars defined in RFCs, and when doing a piece of RFC2822, I find this: comment = '(' (FWS? ccontent)* FWS? ')'; ccontent = ctext | quoted_pair | comment; As you can see, each one depends on the other. This is illegal in ragel, right? Or is there a way around it?