sub run {
my ($self, $state) = @_;
- my @args = map {
- if (!ref($_)) {
- $state->scope_var($_)
- } elsif (ref($_) eq 'ARRAY') {
- if ($_->[0] eq 'value') {
- +{ bound_value => $_->[1] };
- } else {
- die "Arrayref in argspec is not value";
- }
- } else {
- die "Argspec incomprehensible";
- }
- } @{$self->rule_args};
+ my @args = map $self->_expand_argspec($state, $_), @{$self->rule_args};
my @rules = @{$state->rule_set->rules->{$self->full_name}||[]};
die "No rules for ${\$self->full_name}" unless @rules;
my $var = DX::Var->new(id => 'OR')