Hanken has asked for the wisdom of the Perl Monks concerning the following question:
#! /usr/local/bin/perl -sw BEGIN { close STDERR and open STDERR, '>./STDERR' or die $!; } use Parse::RecDescent; #============================================ # GRAMMAR DEFINITION HERE #============================================ $grammar = q{ Para: List(s) /\Z/ | { use Data::Dumper 'Dumper'; print "$_->[0]\n" for @{$thisparser->{errors}}; exit; } List: #<skip: here???> Order Name Score Prize | <error: error 0!> Order: /\d+/ {print "@item\n";} | <error: error 1!> Name: /\w+/ {print "@item\n";} | <error: Expecting a name!> Score: /\d+/ {print "@item\n";} | <error: error 2!> Prize: <skip: /\/\/.*\n/> /[^\n]+/ {print "@item\n";} }; #============================================ # MAIN PROGRAM STARTS HERE #============================================ $parse = new Parse::RecDescent ($grammar); my $text = do { local $/; <DATA> }; $parse->Para($text); __DATA__ 1 Pig 100 red flower // 1 can this be removed? 2 Han 80 bread /* 2 I want this removed! */ 3 Hen 50 ass kicked /* 3 this comment should be handled too */ 3 Fdi 99 rose /* 4 failed msg if unbalanced comment here
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: PRD parser problem: How to skip C comments when parsing
by andreas1234567 (Vicar) on Jun 10, 2008 at 06:49 UTC | |
|
Re: PRD parser problem: How to skip C comments when parsing
by ikegami (Patriarch) on Jun 10, 2008 at 07:03 UTC | |
by Hanken (Acolyte) on Jun 10, 2008 at 07:46 UTC | |
by ikegami (Patriarch) on Jun 10, 2008 at 08:01 UTC | |
by Hanken (Acolyte) on Jun 10, 2008 at 08:40 UTC | |
by ikegami (Patriarch) on Jun 10, 2008 at 09:49 UTC |