/[webpac2]/trunk/lib/WebPAC/Parser.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/WebPAC/Parser.pm

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

revision 691 by dpavlin, Sun Sep 24 21:13:36 2006 UTC revision 692 by dpavlin, Sun Sep 24 21:13:40 2006 UTC
# Line 107  sub read_sources { Line 107  sub read_sources {
107          return $nr;          return $nr;
108  }  }
109    
110  =head2 parse_lookup  =head2 parse_lookups
111    
112    $parser->parse_lookups($database,$input);    $parser->parse_lookups($database,$input);
113    
# Line 127  sub parse_lookups { Line 127  sub parse_lookups {
127    
128          $log->logdie("no source found for database $database input $input path $path") unless ($source);          $log->logdie("no source found for database $database input $input path $path") unless ($source);
129    
130          $log->info("parsing lookups for $database/$input in $path");          $log->info("parsing lookups for $database/$input from $path");
131    
132          my $Document = PPI::Document->new( \$source ) || $log->logdie("can't parse source:\n", $self->{source});          my $Document = PPI::Document->new( \$source ) || $log->logdie("can't parse source:\n", $self->{source});
133    
# Line 136  sub parse_lookups { Line 136  sub parse_lookups {
136    
137          # Find all the named subroutines          # Find all the named subroutines
138    
         my $eval_create;  
139          $self->{_lookup_errors} = ();          $self->{_lookup_errors} = ();
140    
141          sub _lookup_error {          sub _lookup_error {
# Line 210  sub parse_lookups { Line 209  sub parse_lookups {
209                          return $self->_lookup_error("invalid database $e[3] in $path" ) unless $self->valid_database( $e[3] );                          return $self->_lookup_error("invalid database $e[3] in $path" ) unless $self->valid_database( $e[3] );
210                          return $self->_lookup_error("invalid input $e[5] of database $e[3] in $path", ) unless $self->valid_database_input( $e[3], $e[5] );                          return $self->_lookup_error("invalid input $e[5] of database $e[3] in $path", ) unless $self->valid_database_input( $e[3], $e[5] );
211    
212                          $eval_create->{ $e[3] }->{ $e[5] } .= $create;                          $self->add_lookup_create( $e[3], $e[5], $create );
213    
214                          if ($#e < 10) {                          if ($#e < 10) {
215                                  $e[8]->insert_after( $e[8]->clone );                                  $e[8]->insert_after( $e[8]->clone );
# Line 226  sub parse_lookups { Line 225  sub parse_lookups {
225                          $log->debug(">>> ", $Element->snext_sibling);                          $log->debug(">>> ", $Element->snext_sibling);
226          });          });
227    
228          $log->info("create: ", dump($eval_create) );          my $source = $Document->serialize;
229          $log->info("lookup: ", $Document->serialize );          $log->debug("create: ", dump($self->{_lookup_create}) );
230            $log->debug("normalize: $source");
231    
232            $self->{_normalize_source}->{$database}->{$input} = $source;
233    
234          if ($self->{debug}) {          if ($self->{debug}) {
235                  my $Dumper = PPI::Dumper->new( $Document );                  my $Dumper = PPI::Dumper->new( $Document );
236                  $Dumper->print;                  $Dumper->print;
237          }          }
238    
239          $log->error("Parser errors: ", join("\n",@{ $self->{_lookup_errors} }) ) if ($self->{_lookup_errors});          $log->error("Parser errors:\n", join("\n",@{ $self->{_lookup_errors} }) ) if ($self->{_lookup_errors});
240    
241          return 1;          return 1;
242  }  }
243    
244    =head2 add_lookup_create
245    
246      $parse->add_lookup_create($database,$input,$source);
247    
248    =cut
249    
250    sub add_lookup_create {
251            my $self = shift;
252            my ($database,$input,$source) = @_;
253            $self->{_lookup_create}->{$database}->{$input} .= $source;
254    }
255    
256    
257  =head2 valid_database  =head2 valid_database
258    
259    my $ok = $parse->valid_database('key');    my $ok = $parse->valid_database('key');

Legend:
Removed from v.691  
changed lines
  Added in v.692

  ViewVC Help
Powered by ViewVC 1.1.26