Quantcast

EOI with Optional Rule before

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

EOI with Optional Rule before

MaKl
Hey,

I have the following Rule for a whole message
    private Rule Message() {
        return Sequence(
                        Header(),
                        DataLines(),
                        Footer(),
                        EOI
                ));
    }

The Footer rule starts with Optional
    Rule Footer() {
        return Optional(
                        Sequence(
                                FirstOf(
                                        String("XI"),
                                        String("TI")
                                ),
                                Optional(
                                        Ch(' '),
                                        OneOrMore(ANY),
                                        ZeroOrMore(
                                                Sequence(
                                                        UnnecessaryWhitespaces(),
                                                        LineBreak()
                                                )
                                        )
                                )
                        )
                )
        );
    }

This works fine as long as my input has a footer. If I do not have a footer - so the input ends with DataLines - it fails, saying "Reason: Parse Error at Input End in"<end of text of the DataLines rule>"

If there is no footer I expected that the optional footer is skipped and just the EOI is taken? I guess there is something I am missing?!
Loading...