1 |
package neb::Parser; |
package neb::Parser; |
2 |
use strict; |
use strict; |
3 |
|
use warnings; |
4 |
|
use neb::Exception; |
5 |
use neb::Tree::Container; |
use neb::Tree::Container; |
6 |
use neb::Tree::Sub; |
use neb::Tree::Sub; |
7 |
use neb::Tree::Tag; |
use neb::Tree::Tag; |
12 |
|
|
13 |
# esto engancha como se llaman las clases con como se llaman los tags |
# esto engancha como se llaman las clases con como se llaman los tags |
14 |
# que invocan las clases. |
# que invocan las clases. |
15 |
my %classes = ( 'Inline' => 'Perl' ); |
my %classes = ( 'Inline' => 'Perl', |
16 |
|
'Block' => 'Block', |
17 |
|
'Vars' => 'Vars', |
18 |
|
'Sub' => 'Sub', |
19 |
|
); |
20 |
|
|
21 |
# Llamado antes de empezar el parsado, esto arma la estructura |
# Llamado antes de empezar el parsado, esto arma la estructura |
22 |
# necesaria como para poder laburar |
# necesaria como para poder laburar |
43 |
# sigue al neb:. Caso contrario usar el por defecto. |
# sigue al neb:. Caso contrario usar el por defecto. |
44 |
if ($name =~ m'^neb:(.*)$'i) |
if ($name =~ m'^neb:(.*)$'i) |
45 |
{ |
{ |
46 |
$class .= exists $classes{$1} ? $classes{$1} : $1; |
throw_expat "desconozco ``$name''", $expat |
47 |
|
unless exists $classes{$1}; |
48 |
|
$class .= $classes{$1}; |
49 |
} |
} |
50 |
else |
else |
51 |
{ |
{ |
90 |
my $expat = shift; |
my $expat = shift; |
91 |
my $result = $expat->{"neb_parser_stack"}->[0]; |
my $result = $expat->{"neb_parser_stack"}->[0]; |
92 |
|
|
93 |
|
delete $expat->{"neb_file_name"}; |
94 |
delete $expat->{"neb_parser_stack"}; |
delete $expat->{"neb_parser_stack"}; |
95 |
delete $expat->{"neb_parser_current"}; |
delete $expat->{"neb_parser_current"}; |
96 |
|
|