Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

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.

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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://179569]
[marto]: Wolfsbane , now I'm having flashbacks
[choroba]: Isn't Using PerlPod Creatively rather a meditation?
[choroba]: I don't see a question
[1nickt]: ugh, I stuck my head in the bass bin for 30 seconds on a dare at Ted Nugent at Hammersmith Odeon. Yes, I am 40% deaf now.
[johngg]: My daughter is incredibly jealous of my wife who got to see The Clash at Brixton many years ago. They went to see The Vaccines there recently.
[1nickt]: But the bands are even louder! I saw Spearhead (Michael Franti) at an outdoor show and had to walk a mile away to not feel pain in my chest! Babies were crying ... I asked the sound engineer why it was necessary to have the bass so loud and he laughed...
[Discipulus]: but the best i attended live was Mano Negra Patchanka at Forte Prenestino .. in 1990

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2017-03-24 12:15 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (301 votes). Check out past polls.