102 |
} |
} |
103 |
|
|
104 |
sub findAtomPos { |
sub findAtomPos { |
105 |
my ($out, $ref_args) = @_; |
my ($out, $ref_args, $first_atom, $last_atom) = @_; |
106 |
my %args=%$ref_args; |
my %args=%$ref_args; |
107 |
eval($templates{$out->{template_name}}{find_atom_pos}); |
eval($templates{$out->{template_name}}{find_atom_pos}); |
108 |
} |
} |
308 |
$ret; |
$ret; |
309 |
} |
} |
310 |
|
|
311 |
|
#validation stuff |
312 |
|
|
313 |
|
sub setUniq { |
314 |
|
my ($obj) = @_; |
315 |
|
my @to_delete; |
316 |
|
my $i = 0; |
317 |
|
foreach my $atom (@{$obj->{atoms}}) { |
318 |
|
my %atom2 = %$atom; |
319 |
|
delete @atom2{qw(comments value list)}; |
320 |
|
my @pos = findAtomPos($obj, \%atom2); |
321 |
|
if (@pos > 1 && $pos[-1] != $i) { |
322 |
|
push @to_delete, $i; |
323 |
|
} |
324 |
|
$i++; |
325 |
|
} |
326 |
|
print "@to_delete\n"; |
327 |
|
deleteAtom ($obj, $_) foreach (reverse @to_delete); |
328 |
|
} |
329 |
|
|
330 |
sub debug { |
sub debug { |
331 |
$ENV{DEBUG} or return; |
$ENV{DEBUG} or return; |
332 |
my $i = 0; |
my $i = 0; |