--- trunk/lib/WebPAC/Parser.pm 2006/09/24 21:13:36 691 +++ trunk/lib/WebPAC/Parser.pm 2006/09/24 21:13:40 692 @@ -107,7 +107,7 @@ return $nr; } -=head2 parse_lookup +=head2 parse_lookups $parser->parse_lookups($database,$input); @@ -127,7 +127,7 @@ $log->logdie("no source found for database $database input $input path $path") unless ($source); - $log->info("parsing lookups for $database/$input in $path"); + $log->info("parsing lookups for $database/$input from $path"); my $Document = PPI::Document->new( \$source ) || $log->logdie("can't parse source:\n", $self->{source}); @@ -136,7 +136,6 @@ # Find all the named subroutines - my $eval_create; $self->{_lookup_errors} = (); sub _lookup_error { @@ -210,7 +209,7 @@ return $self->_lookup_error("invalid database $e[3] in $path" ) unless $self->valid_database( $e[3] ); return $self->_lookup_error("invalid input $e[5] of database $e[3] in $path", ) unless $self->valid_database_input( $e[3], $e[5] ); - $eval_create->{ $e[3] }->{ $e[5] } .= $create; + $self->add_lookup_create( $e[3], $e[5], $create ); if ($#e < 10) { $e[8]->insert_after( $e[8]->clone ); @@ -226,19 +225,35 @@ $log->debug(">>> ", $Element->snext_sibling); }); - $log->info("create: ", dump($eval_create) ); - $log->info("lookup: ", $Document->serialize ); + my $source = $Document->serialize; + $log->debug("create: ", dump($self->{_lookup_create}) ); + $log->debug("normalize: $source"); + + $self->{_normalize_source}->{$database}->{$input} = $source; if ($self->{debug}) { my $Dumper = PPI::Dumper->new( $Document ); $Dumper->print; } - $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}); return 1; } +=head2 add_lookup_create + + $parse->add_lookup_create($database,$input,$source); + +=cut + +sub add_lookup_create { + my $self = shift; + my ($database,$input,$source) = @_; + $self->{_lookup_create}->{$database}->{$input} .= $source; +} + + =head2 valid_database my $ok = $parse->valid_database('key');