/[papo]/papo/neb/neb/Parser.pm
ViewVC logotype

Diff of /papo/neb/neb/Parser.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by jlenton, Wed Apr 9 19:59:21 2003 UTC revision 1.4 by jlenton, Wed Apr 9 23:52:49 2003 UTC
# Line 15  my %classes = ( Perl => 1, Line 15  my %classes = ( Perl => 1,
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
# Line 27  sub Start Line 27  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    
# Line 59  sub Default Line 59  sub Default
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;

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26