sth has asked for the wisdom of the Perl Monks concerning the following question:
Hello Fellow Monks, I am trying to use Parse::RecDescent to parse Sql as well. I am trying to parse the sql into (placeholder / comment). Basically if I have 'select * from foo where bar = ? --This is a comment', I want to capture the 'select * from foo where bar = ?' and then '--This is a comment'. Here is the grammar,
I set RD_TRACE on and see that is matches, Select name from foo_name where id = ? , but does not match the '--This is a Comment' I know I am missing something obvious, but I can't find it.$parser = new Parse::RecDescent (q{ startrule : PlaceHolder Comment | PlaceHolder Comment : DD_Style DD_Style : m{(\s+?--.*$)} { print "Comment : \n\t", $item[1], "\n\n" } PlaceHolder : Xopen | Sprintf Sprintf : /.*=\s+?%s.*?/ { $item[1] =~ s{%s}{%%s}g; print "After : \n\t", $item[1], "\n\n" } Xopen : /.*=\s+?\?.*?/ { $item[1] =~ s{\?}{%s}g; print "After : \n\t", $item[1], "\n\n" } }) unless $parser;
Any help would by much appreciated!
STH
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Another Parse::RecDescent Question
by Abigail-II (Bishop) on Nov 03, 2003 at 21:56 UTC | |
by sth (Priest) on Nov 03, 2003 at 22:10 UTC | |
|
Re: Another Parse::RecDescent Question
by Paladin (Vicar) on Nov 03, 2003 at 21:20 UTC | |
by sth (Priest) on Nov 03, 2003 at 22:04 UTC | |
|
Re: Another Parse::RecDescent Question
by allolex (Curate) on Nov 04, 2003 at 06:36 UTC | |
by sth (Priest) on Nov 04, 2003 at 14:29 UTC |