in reply to Re: PRD parser problem: How to deal with mutiple lines
in thread PRD parser problem: How to deal with mutiple lines

Hi, Philcrow, thanks for your reply! Now I changed my grammar as following:
List: 'SECTION_START' SECTION_NAME SECTION_CONTENT 'SECTION_END' |<error> SECTION_NAME: /\w+/ {print "section name is $item[1]\n";} |<error> SECTION_CONTENT: Description | Description: 'DESCRIPTION' '=' Statement |'DESCRIPTION' '=' '{' Statement(s?) '}' ';' Statement: /.+\n/
But I still can not parse the multiple-lined contents inside the description brackets.
section name is BANK001 section name is BANK002 section name is BANK003 Invalid List: Was expecting 'SECTION END' but found "UK BANK; " instea +d
How can I do to solve it?

Replies are listed 'Best First'.
Re^3: PRD parser problem: How to deal with mutiple lines
by philcrow (Priest) on Jun 17, 2008 at 14:53 UTC
    I think your statement rule needs a trailing semi-colon. If you have further problems you should trace the execution. Do this by adding these statements to the program before constructing the parser:
    $::RD_TRACE = 1; $::RD_HINT = 1;
    The first one is actually the tracer. Be warned that it will generate a lot of output. Reading it will help you understand what the parser is doing and will probably lead to the error.

    Phil

    The Gantry Web Framework Book is now available.