r1006@llin: dpavlin | 2006-09-25 16:04:39 +0200
[webpac2] / lib / WebPAC / Parser.pm
index a60ad69..386cb36 100644 (file)
@@ -9,7 +9,7 @@ use PPI::Dumper;
 use Data::Dump qw/dump/;
 use File::Slurp;
 
-use base qw/WebPAC::Common WebPAC::Normalize/;
+use base qw/WebPAC::Common/;
 
 =head1 NAME
 
@@ -113,6 +113,24 @@ sub depends {
        return $self->{depends}->{ _q($database) }->{ _q($input) };
 }
 
+=head2 have_lookup_create
+
+  my @keys = $parser->have_lookup_create($database, $input);
+
+=cut
+
+sub have_lookup_create {
+       my $self = shift;
+       my ($database,$input) = @_;
+       $input = _input_name($input);
+       return unless (
+               defined( $self->{_lookup_create_key}->{ _q($database) } ) &&
+               defined( $self->{_lookup_create_key}->{ _q($database) }->{ _q($input) } )
+       );
+       return keys %{ $self->{_lookup_create_key}->{ _q($database) }->{ _q($input) } };
+}
+
+
 =head2 lookup_create_rules
 
   my $source = $parser->lookup_create_rules($database, $input);
@@ -292,7 +310,8 @@ sub _parse_lookups {
                        return $self->_lookup_error("invalid input $e[5] of database $e[3] in $path", ) unless $self->valid_database_input( $e[3], $e[5] );
 
                        # save code to create this lookup
-                       $self->{_lookup_create}->{ _q($e[3]) }->{ _q($e[5]) }->{ _q($key) } .= "# lookup for $e[3]/$e[5]/$key\n\n$create";
+                       $self->{_lookup_create}->{ _q($e[3]) }->{ _q($e[5]) } .= $create;
+                       $self->{_lookup_create_key}->{ _q($e[3]) }->{ _q($e[5]) }->{ _q($key) }++;
 
 
                        if (defined( $self->{depends}->{ $database }->{ $input }->{ _q($e[3]) }->{ _q($e[5]) }->{ $key } )) {