in reply to Re: How to parse a limited grammar
in thread How to parse a limited grammar

Thanks for the reply Ted

Yes, I had considered just eval'ing the code - as you surmised, this will be added by trusted users only. Paranoia, an aversion to string evals, and a desire to learn about parsing led me to this post. But evals may yet be the way to go.

HOP::Parser is great but very, very slow.

That is what I feared - good to know

Probably my main reason for looking at a proper parser solution was to be able to handle nested expressions and logic branches (terminology?). I didn't want to waste time going down one road if it was obvious to everybody else that I shouldn't bother.

Given what you've said, I'm going to give it a go, and just see where it takes me.

thanks again

Replies are listed 'Best First'.
Re^3: How to parse a limited grammar
by TedYoung (Deacon) on Jan 10, 2008 at 17:22 UTC

    Good. But now I feel bad. I want to qualify my statement about HOP::Lexer being slow (which is a relative statement). It is much faster than some alternatives but is much slower than lexing by hand (as shown above). I found that, in my grammars, lexing by hand was 10 times faster. That is not because HOP::Lexer is bad, but because it has to contend with streams, a feature that makes it much more powerful then lexing by hand, but completely unnecessary for what we are doing here.

    HOP::Lexer and High Order Perl are good products!

    Ted Young

    It is almost impossible for me to read contemporary mathematicians who, instead of saying "Petya washed his hands," write simply: "There is a t1 < 0 such that the image of t1 under the natural mapping t1 -> Petya(t1) belongs to the set of dirty hands, and a t2, t1 < t2 <= 0, such that the image of t2 under the above-mentioned mapping belongs to the complement of the set defined in the preceding sentence."
    The Russian mathematician V. I. Arnol'd