$opt{expand} = {
-ident => '_expand_ident',
- -value => sub { +{ -bind => [ our $Cur_Col_Meta, $_[2] ] } },
- -not => sub { +{ -op => [ 'not', $_[0]->_expand_expr($_[2]) ] } },
- -bool => sub {
- my ($self, undef, $v) = @_;
- if (ref($v)) {
- return $self->_expand_expr($v);
- }
- puke "-bool => undef not supported" unless defined($v);
- return $self->_expand_ident(-ident => $v);
- },
+ -value => '_expand_value',
+ -not => '_expand_not',
+ -bool => '_expand_bool',
};
return bless \%opt, $class;
return +{ -ident => \@parts };
}
+sub _expand_value {
+ +{ -bind => [ our $Cur_Col_Meta, $_[2] ] };
+}
+
+sub _expand_not {
+ +{ -op => [ 'not', $_[0]->_expand_expr($_[2]) ] };
+}
+
+sub _expand_bool {
+ my ($self, undef, $v) = @_;
+ if (ref($v)) {
+ return $self->_expand_expr($v);
+ }
+ puke "-bool => undef not supported" unless defined($v);
+ return $self->_expand_ident(-ident => $v);
+}
+
sub _recurse_where {
my ($self, $where, $logic) = @_;