15 |
sub Init |
sub Init |
16 |
{ |
{ |
17 |
my $expat = shift; |
my $expat = shift; |
18 |
my $obj = new neb::Tree::Container; |
my $obj = neb::Tree::Container->new($expat->{'neb_root_name'}); |
19 |
$expat->{"neb_parser_current"} = $obj; |
$expat->{"neb_parser_current"} = $obj; |
20 |
$expat->{"neb_parser_stack"} = []; |
$expat->{"neb_parser_stack"} = [ $obj ]; |
21 |
} |
} |
22 |
|
|
23 |
sub Start |
sub Start |
27 |
my $obj; |
my $obj; |
28 |
|
|
29 |
if ($name =~ m'^neb:(.*)$'i) { |
if ($name =~ m'^neb:(.*)$'i) { |
30 |
$obj = ($classes{$1} ? "neb::Tree::$1" : "neb::Tree::Sub")->new($name); |
$obj = ($classes{$1} ? "neb::Tree::$1" : "neb::Tree::Sub")->new($name, $expat->{'neb_parser_current'}->url); |
31 |
} else { |
} else { |
32 |
$obj = neb::Tree::Tag->new($name); |
$obj = neb::Tree::Tag->new($name, $expat->{'neb_parser_current'}->location); |
33 |
} |
} |
34 |
$obj->attributes(@_); |
$obj->attributes(@_); |
35 |
|
|
59 |
sub Final |
sub Final |
60 |
{ |
{ |
61 |
my $expat = shift; |
my $expat = shift; |
62 |
my $result = $expat->{"neb_parser_current"}; |
my $result = $expat->{"neb_parser_stack"}->[0]; |
63 |
|
|
64 |
delete $expat->{"neb_parser_stack"}; |
delete $expat->{"neb_parser_stack"}; |
65 |
delete $expat->{"neb_parser_current"}; |
delete $expat->{"neb_parser_current"}; |
66 |
return $result->{CONTENT}->[0]; |
|
67 |
|
return $result; |
68 |
} |
} |
69 |
|
|
70 |
1; |
1; |