Thanks very much for your reply

Yes, Parse::RecDescent is obviously within the scope, but as you also suggest, it's not a panacea for all cases and has a number of non-generic impositions.

Your own module resolves some of those and so will also get some coverage in my tutorial.

In the tutorial I will try to represent an unbiased choice of a) programming the relevant software by integration of CPAN modules versus b) from scratch or at least from an unassuming code design basis, although from-scratch takes more time to explain. I'll kick that off during the section "relevant code design", showing the two ways to go, again avoiding bias. I also feel that OO Perl should be a conscious choice during code design rather than a given and I feel I should also give people a free choice between OO and procedural Perl, without me imposing one or other on them. (oops I forgot to define audience-level in the OP -- updating ... )

I will now add a short section on grammar definition - I was going to downgrade the grammar definition part to below subtopic visibility on the grounds that it's general rather than Perl-specific, but because Parse::RecDescent needs it, I have a good enough excuse after all! (updating contents list ... whirr, click).

I'll also take your point about covering top-down versus bottom-up - thanks a lot! I was anyway going to go even further back in history than you suggest and very briefly explain the original unix lex and yacc approach (update: actually maybe even further back, because there are kinds of interpreters that can't use yacc) and then work forward from there so that Perl beginners with general programming knowledge gained elsewhere don't feel they just landed on the planet Zartog!

__________________________________________________________________________________

^M Free your mind!


In reply to Re^2: Writing Interpreters, Compilers and Translators in Perl by Moron
in thread Writing Interpreters, Compilers and Translators in Perl by Moron

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.