Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
Don't ask to ask, just ask
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
you have to know enough theory to know both what type of parser you can use on a grammar and if your grammar is even parsable.

Hm. That would be a justification for it, but so far, none of the modules discussion even begins to allow you to answer those types of questions.

I can't speak about the performance of Regexp::Grammars, but if I were doing something like this, I'd start there for ease of use.

Hm. I'm going through the docs for Regexp::Grammars now, and trying to do so with an open mind, but honestly, what I'm reading is making my skin crawl.

The questions I am asking myself at this point are:

  • Why do I need to add/remove directives to my grammar in order to enable/disable debugging?

    For the same reason that these errors exist. Because the module trades a conventional interface for overloading qr//.

    The POD devotes a section to restricting the scope of the module's effect, by wrapping it use in a do block to prevent it from messing with other qr//s in the program. A can see no advantages to the cutesy interface over use Regexp::Grammars qw[ compile ]; my $re = compile $grammar;; and at least 3 disadvantages.

  • Why complicate the interface by adding a logfile option?

    Just send errors/debug/and trace to STDERR and let me redirect -- manually or programmically wherever I want it.

  • Dumping 3 gigatonnes of trace to a file does not constitute a debugger and is no substitute for decent diagnostics.
  • Why are 3 aliases for everything; and 3 ways to do everything including creating aliases?
  • Why do I need both a subroutine-based interface and an OO interface?

    What benefit is there to an OO interface?

    Does it avoid the use of globals like %MATCH and %/ etc? No.

    Can I run two instances of a grammar concurrently? No. The regex engine wouldn't allow it.

    It's just pseud-OO.

I'd use Marpa for speed and completeness.

The trouble with Marpa is that it only does half the job. You have to tokenise the source text yourself, and then feed it to the parser in labeled chunks.

By the time you've written the code to tokenise the input, and then recognise the tokens so you can label them for the "parser", one wonders what parsing there is left for the "parser" to do.

Its like buying a dog and barking yourself.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?


In reply to Re^4: Block-structured language parsing using a Perl module? by BrowserUk
in thread Block-structured language parsing using a Perl module? by BrowserUk

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!
  • 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, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            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.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others lurking in the Monastery: (5)
    As of 2014-04-19 18:25 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      April first is:







      Results (483 votes), past polls