is_op and register_op
Matt S Trout [Mon, 15 Jul 2019 22:06:31 +0000 (22:06 +0000)]
lib/SQL/Abstract.pm
lib/SQL/Abstract/Clauses.pm

index 0c99319..0ffa4af 100644 (file)
@@ -543,7 +543,9 @@ sub render_expr {
 
 sub _normalize_op {
   my ($self, $raw) = @_;
-  s/^-(?=.)//, s/\s+/_/g for my $op = lc $raw;
+  my $op = lc $raw;
+  return $op if grep $_->{$op}, @{$self}{qw(is_op expand_op render_op)};
+  s/^-(?=.)//, s/\s+/_/g for $op;
   $op;
 }
 
index 74bb20e..88a3226 100644 (file)
@@ -394,6 +394,8 @@ BEGIN {
   }
 }
 
+sub register_op { $_[0]->{is_op}{$_[1]} = 1; $_[0] }
+
 sub statement_list { sort keys %{$_[0]->{clauses_of}} }
 
 sub clauses_of {