Re: Line continuation characters
[email protected] (Damian Conway)
| Newsgroups | perl.recdescent |
|---|---|
| Message-ID | <[email protected]> |
This is how I'd do it.
Damian
-----------cut-----------cut-----------cut-----------cut-----------cut----------
use Parse::RecDescent;
my @lines = << 'EOINST';
// COMMAND ARG1-VALUE,ARG2-VALUE, +
ARG3-VALUE,ARG4-VALUE, +
EVEN-MORE-ARGS
// ANOTHERCOMMAND
* and a comment
* or two
EOINST
my $parse = Parse::RecDescent->new(join '', <DATA>) or die "Bad Grammar!";
use Data::Dumper 'Dumper';
print Dumper [
$parse->Instructions("@lines") or die "NOT parsable!!\n"
];
__DATA__
Instructions: command(s)
command: multiline_command
| singleline_command
| comment
singleline_command:
'//' /.*/
{ {command => $item[-1]} }
multiline_command:
'//' /(.*?[+][ \t]*\n)+.*/
{ $item[-1] =~ s/[+][ \t]*\n//g; {command => $item[-1]} }
comment:
'*' /.*/
{ {comment => $item[-1]} }