Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Parsing with Perl 6

by Juerd (Abbot)
on Jul 05, 2002 at 05:44 UTC ( #179569=note: print w/ replies, xml ) Need Help??


in reply to Parsing with Perl 6

Wow, very impressive. ++!

// <-[\n]>*:

I'd really want to take advantage of the new \N:

// \N*

foreach my $function (@functions)

In Perl6, foreach will just be for. The C-style for loop will be called loop. And the for syntax will slightly change:

for @functions -> my $function { ... }

rule quoted_string ($type) { $type [ <-[$type]>*: | [ <after \\ > $type ] ]* $type }

Why not already have both types there?

rule quoted_string { $delimiter := ( <['"]> ) [ <!before $delimiter> . | <after \\> $delimiter ]* $delimiter }
Hmm - In current regex stuff, I'd probably have written: /(['"]) (?: (?! \\ | \1) . | \\ . )* \1/x. Why not use something like that? (Or is it just a matter of taste?)
rule quoted_string { $delimiter := ( <['"]> ) [ <!before \\ | $delimiter> . | \\ . ] $delimiter }

- Yes, I reinvent wheels.
- Spam: Visit eurotraQ.


Comment on Re: Parsing with Perl 6
Select or Download Code
Replies are listed 'Best First'.
Re: Re: Parsing with Perl 6
by jryan (Vicar) on Jul 05, 2002 at 23:04 UTC

    Ah, you are completely right about \N, of course. I'm just a blockhead ;(

    Concerning quotes: I think that the way I structured mine is easier to convert from logic. For instance, I defined a quoted string as:

    - start quote - string of (non-quote or backslashed quote) characters - end quote

    Which I then translated into (comments added this time):

    rule quoted_string { " # start quote [ # string <-["]>+: # non quote characters | # or [ <after \\ > " ] # backslashed quote character ]* # end string " # end quote }

    It was then shown how to make it "dynamic" by simply adding an argument and subsituting that argument in for the quote delimeter. While yours is much more elegant and efficient, I thought that my example was easier to follow in the current context.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (14)
As of 2015-07-30 14:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (271 votes), past polls