The first rule matches empty and the second rule doesn't match anything. Is that "//" intentional?
Gokul. On Thu, Jul 28, 2011 at 4:28 PM, chris king <[email protected]> wrote: > Hello antlr-interest! So I'm working on my C# pre-processor and I'm trying > to implement the skipping #ifdefed code in the lexer when I ran across > this. > I expected > > > PP_SKIPPED_CHARACTERS > : //{ false }? ( ~(F_NEW_LINE_CHARACTER | '#') F_INPUT_CHARACTER* > F_NEW_LINE )* > ; > > > to be equivalent to > > > PP_SKIPPED_CHARACTERS > : { false }? ( ~(F_NEW_LINE_CHARACTER | '#') F_INPUT_CHARACTER* F_NEW_LINE > )* > ; > > but I'm seeing different runtime behavior. So I guess I don't understand > what the { false }? syntax is all about. I know there are probably other > ways to implement the #ifdefed logic but could someone enlighten me as to > why these two bits of code are not equivalent? > > Thanks, > Chris > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
