+++ /dev/null
-use strictures 1;
-use Data::Query::ExprBuilder::Identifier;
-use Data::Query::ExprHelpers;
-use Data::Query::Constants;
-
-sub expr (&) {
- _run_expr($_[0])->{expr};
-}
-
-sub _run_expr {
- local $_ = Data::Query::ExprBuilder::Identifier->new({
- expr => Identifier(),
- });
- $_[0]->();
-}
-
-sub AS {
- my $as = shift;
- (bless(\$as, 'LIES::AS'), @_);
-}
-
-sub SELECT (&;@) {
- my @select = map +(
- ref()
- ? $_
- : { expr => perl_scalar_value($_) }
- ), _run_expr(shift);
- my @final;
- while (@select) {
- my $e = shift @select;
- push @final,
- (ref($select[0]) eq 'LIES::AS'
- ? Alias(${shift(@select)}, $e->{expr})
- : $e->{expr}
- );
- }
-
- return +{
- expr => Select(\@final, ($_[0]||{})->{expr})
- };
-}
-
-sub BY (&;@) { @_ }
-
-sub FROM (&;@) {
- my @from = _run_expr(shift);
- if (@from == 2 and ref($from[1]) eq 'LIES::AS') {
- return +{
- expr => Alias(${$from[1]}, $from[0])
- };
- } elsif (@from == 1) {
- return { expr => $from[0] };
- }
- die "Huh?"
-}
-
-1;