Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: How can I parse grouped data?

by SimonClinch (Chaplain)
on Jul 28, 2005 at 09:30 UTC ( #478888=note: print w/ replies, xml ) Need Help??


in reply to How can I parse grouped data?

OK, I agree it's going too far to ask us to write the code. However, hints seem more than reasonable - here is a starting point:

First define the grammar that your input obeys in a format that can be read into a parser. For example, if you choose yapp, Parse::Yapp will also tell you how to define the grammar file it needs to parse your input and how to run the relevant lexer and parser. And when you know that, the code generation should be a relatively trivial matter.

Update: The lexer, albeit simple enough for your example input, also has to be written yourself, but the linked documentation explains that thoroughly. 'Tokens' refer to the named categories of substrings you will return as grammatical elements for the parser - these might be 'TK_DIGITS' or 'TK_ID' etc. and 'values' refer to the actual value found under that category for each execution of your lexer - each such execution therefore returning a single substring and the category under which it falls.

The documentation doesn't mention that one also normally writes a throw routine to consume comments and whitespace.

One world, one people


Comment on Re: How can I parse grouped data?
Re^2: How can I parse grouped data?
by Anonymous Monk on Jul 28, 2005 at 09:44 UTC
    Thanks for the hint .

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://478888]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (10)
As of 2014-08-01 00:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (256 votes), past polls