Irgendwie verstehe ich die Philosophie des Parsers nicht so ganz. Ist wahrscheinlich ähnlich ungewöhnlich wie HTML::Parser.
Also habe mal folgenden (plumpes) Skript geschrieben, komme aber nicht weiter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
format_c@server:~/perl_scripts> cat test.pl && perl test.pl
#!/usr/bin/perl
use strict;
use Data::Dumper;
use Parse::RecDescent;
my @item;
local $/;
my $text = <DATA>;
my $g = q~
file: entry(s?) {$item[1]}
entry: 'schluesselwort' /\d+/ '{' option(s?) '}' {[$item[2], $item[4]]}
option: /[\w\d]+/ /[\w\d]+/ ';' {[$item[1], $item[2]]}
~;
my $parser = Parse::RecDescent->new($g);
$parser->entry($text);
print Dumper \@item;
schluesselwort schluesselwert {
option1 wert1;
option2 wert2;
muell;
}
schluesselwort andererschluesselwert {
option1 wert1;
option2 wert2;
anderermuell;
option3 "wert3";
}
schluesselwort nocheinandererschluesselwert {
option1 wert1;
option2 wert2;
muell;
}
$VAR1 = [];
format_c@server:~/perl_scripts>
Kannst du mir erklären wie sich die Grammatik mit den Regeln mit der Handhabung des Parsers und des Textes zusammensetzt? Würde mir glaub ich schon unheimlich helfen.
Gruß Alex