If you want to write a fast parser for XML, preventing backtracking is
going to be quite essential. I suspect the problem is your grammar,
not the grammar engine itself. You could post it to perl6-users and
ask for advice on it.
Leon
On Thu, Jun 4, 2009 at 7:25 AM, Richard Hainsworth rich...@rusrating.ru wrote:
Is this a good place to come with code that runs into speed problems?
I am writing a program in perl6 to read the xml file from a Sony book
reader, list the books, and move books into collections (the Sony software
to do this will only work on windoz and not on wine).
I have a grammar that works with abbreviated test versions of the xml file,
but it just hangs with the full version.
Since I have a line
my $parsed= sony_grammar(slurp media.xml);
and the problem is in the parsing, I dont know how to insert trace
statements to determine at what stage the problem is being generated.
In addition, there is a great deal in the Synopses about code points and
backtracking and the like, which I dont quite understand. However, it seems
to me that an intelligent use of these possibilities could increase the
efficiency of the parsing, if only I knew how. For example, only three of
the tags in the file are of interest, and within them three of the
attributes. So how do I tell the regex engine to skip processing if the tag
is not of interest?
Richard