Rolify Koral::Query
Change-Id: Id7474fa963e0d74efd1ced416592d66cef8b1a18
diff --git a/lib/Krawfish/Koral/Query.pm b/lib/Krawfish/Koral/Query.pm
index 8e406db..57bf876 100644
--- a/lib/Krawfish/Koral/Query.pm
+++ b/lib/Krawfish/Koral/Query.pm
@@ -1,8 +1,7 @@
package Krawfish::Koral::Query;
use Role::Tiny;
-# TODO: Use the same parent as Koral::Corpus
-use Krawfish::Koral::Query::Builder;
-use Krawfish::Koral::Query::Importer;
+# use Krawfish::Koral::Query::Builder;
+# use Krawfish::Koral::Query::Importer;
use Krawfish::Log;
use Mojo::Util qw/md5_sum/;
use warnings;
@@ -10,6 +9,38 @@
with 'Krawfish::Koral::Report';
+# TODO:
+# Share a role with Koral::Corpus
+requires qw/normalize
+ optimize
+ identify
+ type
+ operands
+ operand
+ finalize
+
+ uses_classes
+
+ is_anywhere
+ is_optional
+ is_null
+ is_nowhere
+ is_leaf
+ is_extended_right
+ is_extended_left
+ is_negative
+
+ maybe_anchor
+ maybe_unsorted
+
+ min_span
+ max_span
+
+ from_koral
+
+ to_koral_fragment
+ to_string
+ to_signature/;
# Base class for span queries
# TODO:
@@ -37,7 +68,7 @@
negative => 0,
extended => 0,
extended_left => 0,
- extended_right => 0
+ extended_right => 0
}, $class;
if ($_[0]) {
@@ -48,29 +79,16 @@
};
-# Override type
-sub type {
- warn 'override';
-};
-
-
#########################################
# Query Planning methods and attributes #
#########################################
-# Normalize the query
-sub normalize {
- warn 'override';
-};
-
-
# Refer to common subqueries
sub refer {
$_[0];
};
-
# Translate to ids
# TODO:
# If "nowhere" returns, optimize away
@@ -93,12 +111,6 @@
};
-# Optimize for an index
-sub optimize {
- ...
-};
-
-
# This is the class to be overwritten
# by subclasses
sub _finalize {
@@ -163,13 +175,6 @@
};
-# Returns a list of classes used by the query,
-# e.g. in a focus() context.
-sub uses_classes {
- warn 'override';
-};
-
-
sub remove_unused_classes {
my ($self, $classes) = @_;
my $used = $self->uses_classes;
@@ -179,6 +184,10 @@
# gather all classes and then can remove them.
};
+sub uses_classes {
+ warn 'Not yet implemented';
+};
+
# Remove classes passed as an array references
sub remove_classes {
@@ -215,10 +224,12 @@
# Get and set first and only operand
sub operand {
- if (@_ == 2) {
- $_[0]->{operands} = [$_[1]];
+ my $self = shift;
+
+ if (@_ == 1) {
+ $self->{operands} = [shift];
};
- $_[0]->{operands}->[0];
+ return $self->{operands}->[0];
};
@@ -326,19 +337,6 @@
};
-# Get the minimum tokens the query spans
-sub min_span {
- warn 'override';
-};
-
-
-# Get the maximum tokens the query spans
-# -1 means arbitrary
-sub max_span {
- warn 'override';
-};
-
-
#############################
# Query Application methods #
#############################
@@ -376,12 +374,6 @@
# Serialize
-sub to_koral_fragment {
- warn 'override';
-};
-
-
-# Serialize
sub to_koral_query {
my $self = shift;
my $koral = $self->to_koral_fragment;
@@ -390,12 +382,6 @@
};
-# Stringification
-sub to_string {
- warn 'override';
-};
-
-
sub to_neutral {
$_[0]->to_string;
};
@@ -422,9 +408,9 @@
# Create KoralQuery builder
-sub importer {
- return Krawfish::Koral::Query::Importer->new;
-};
+#sub importer {
+# return Krawfish::Koral::Query::Importer->new;
+#};
# Serialization helper
diff --git a/lib/Krawfish/Koral/Query/Builder.pm b/lib/Krawfish/Koral/Query/Builder.pm
index 4e713c5..f213993 100644
--- a/lib/Krawfish/Koral/Query/Builder.pm
+++ b/lib/Krawfish/Koral/Query/Builder.pm
@@ -1,7 +1,4 @@
package Krawfish::Koral::Query::Builder;
-use strict;
-use warnings;
-
use Krawfish::Util::Constants qw/:PREFIX/;
use Krawfish::Koral::Query::Term;
@@ -31,6 +28,8 @@
use Krawfish::Koral::Corpus::Builder;
use Scalar::Util qw/blessed/;
+use strict;
+use warnings;
use constant DOC_IDENTIFIER => 'id';
@@ -40,10 +39,27 @@
bless [$text_span], $class;
};
+
#########################
# KoralQuery constructs #
#########################
+
+# Token construct
+# Should probably be like:
+# ->token('Der') or
+# ->token(->term_or('Der', 'Die', 'Das'))
+sub token {
+ shift;
+ return Krawfish::Koral::Query::Token->new(@_);
+};
+
+
+sub class {
+ shift;
+ Krawfish::Koral::Query::Class->new(@_);
+};
+
# Sequence construct
sub seq {
shift;
@@ -57,15 +73,6 @@
};
-# Token construct
-# Should probably be like:
-# ->token('Der') or
-# ->token(->term_or('Der', 'Die', 'Das'))
-sub token {
- shift;
- Krawfish::Koral::Query::Token->new(@_);
-};
-
sub term {
shift;
return Krawfish::Koral::Query::Term->new(TOKEN_PREF . shift);
@@ -199,10 +206,6 @@
Krawfish::Koral::Query::Length->new(@_);
};
-sub class {
- shift;
- Krawfish::Koral::Query::Class->new(@_);
-};
# Extension to the left
sub ext_left {
diff --git a/lib/Krawfish/Koral/Query/Class.pm b/lib/Krawfish/Koral/Query/Class.pm
index 6c8fcbf..3aae2dd 100644
--- a/lib/Krawfish/Koral/Query/Class.pm
+++ b/lib/Krawfish/Koral/Query/Class.pm
@@ -1,20 +1,22 @@
package Krawfish::Koral::Query::Class;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Query::Class;
use Krawfish::Log;
-use strict;
-use warnings;
-use Memoize;
-memoize('min_span');
-memoize('max_span');
-
use constant DEBUG => 0;
+with 'Krawfish::Koral::Query';
+
+use Memoize;
+
+memoize('min_span');
+memoize('max_span');
+
# Constructor
sub new {
my $class = shift;
+
bless {
operands => [shift],
number => shift // 1
diff --git a/lib/Krawfish/Koral/Query/Constraint.pm b/lib/Krawfish/Koral/Query/Constraint.pm
index e6c89df..ce3c04c 100644
--- a/lib/Krawfish/Koral/Query/Constraint.pm
+++ b/lib/Krawfish/Koral/Query/Constraint.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::Constraint;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use List::Util qw/min max/;
use Krawfish::Query::Constraint;
use Krawfish::Query::Constraint::Position;
@@ -8,6 +8,10 @@
use v5.10;
use strict;
use warnings;
+
+with 'Krawfish::Koral::Query';
+
+
use Memoize;
memoize('min_span');
memoize('max_span');
diff --git a/lib/Krawfish/Koral/Query/Exclusion.pm b/lib/Krawfish/Koral/Query/Exclusion.pm
index 0de469e..d4ae164 100644
--- a/lib/Krawfish/Koral/Query/Exclusion.pm
+++ b/lib/Krawfish/Koral/Query/Exclusion.pm
@@ -1,16 +1,18 @@
package Krawfish::Koral::Query::Exclusion;
-use parent 'Krawfish::Koral::Query';
+use strict;
+use warnings;
+use Role::Tiny::With;
# Exports to_frame:
use Krawfish::Koral::Query::Constraint::Position;
use Krawfish::Query::Exclusion;
use Krawfish::Log;
use Mojo::JSON;
-use strict;
-use warnings;
use Memoize;
memoize('min_span');
memoize('max_span');
+with 'Krawfish::Koral::Query';
+
use constant DEBUG => 0;
sub new {
diff --git a/lib/Krawfish/Koral/Query/Extension.pm b/lib/Krawfish/Koral/Query/Extension.pm
index d6a9394..77e5630 100644
--- a/lib/Krawfish/Koral/Query/Extension.pm
+++ b/lib/Krawfish/Koral/Query/Extension.pm
@@ -1,8 +1,10 @@
package Krawfish::Koral::Query::Extension;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use strict;
use warnings;
+with 'Krawfish::Koral::Query';
+
# TODO:
# An extension with a negative part will
@@ -71,6 +73,22 @@
...
};
+sub optimize {
+ ...;
+};
+
+sub type {
+ 'extension';
+};
+
+sub to_koral_fragment {
+ ...
+};
+
+sub uses_classes {
+ ...
+};
+
sub to_string {
my $self = shift;
my $string = 'ext(';
diff --git a/lib/Krawfish/Koral/Query/Filter.pm b/lib/Krawfish/Koral/Query/Filter.pm
index 03b733b..e9927b2 100644
--- a/lib/Krawfish/Koral/Query/Filter.pm
+++ b/lib/Krawfish/Koral/Query/Filter.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::Filter;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Log;
use Krawfish::Query::Nowhere;
use strict;
@@ -8,6 +8,8 @@
memoize('min_span');
memoize('max_span');
+with 'Krawfish::Koral::Query';
+
# The filter will filter a query based on a virtual corpus.
# First the filter is always on the root of the query.
#
diff --git a/lib/Krawfish/Koral/Query/Focus.pm b/lib/Krawfish/Koral/Query/Focus.pm
index 1b3e1bc..1fbd5f3 100644
--- a/lib/Krawfish/Koral/Query/Focus.pm
+++ b/lib/Krawfish/Koral/Query/Focus.pm
@@ -1,12 +1,14 @@
package Krawfish::Koral::Query::Focus;
-use parent 'Krawfish::Koral::Query';
-use Krawfish::Query::Base::Sorted;
use strict;
use warnings;
+use Role::Tiny::With;
+use Krawfish::Query::Base::Sorted;
use Memoize;
memoize('min_span');
memoize('max_span');
+with 'Krawfish::Koral::Query';
+
# TODO:
# If span is maybe_unsorted, use a sorted focus,
# otherwise an unsorted focus.
diff --git a/lib/Krawfish/Koral/Query/Importer.pm b/lib/Krawfish/Koral/Query/Importer.pm
index bc196c6..e1eb6ce 100644
--- a/lib/Krawfish/Koral/Query/Importer.pm
+++ b/lib/Krawfish/Koral/Query/Importer.pm
@@ -1,11 +1,11 @@
package Krawfish::Koral::Query::Importer;
+use warnings;
+use strict;
use Krawfish::Koral::Query;
use Krawfish::Koral::Query::Sequence;
use Krawfish::Koral::Query::Token;
use Krawfish::Koral::Query::Term;
use Krawfish::Koral::Query::Class;
-use warnings;
-use strict;
sub new {
my $var;
diff --git a/lib/Krawfish/Koral/Query/InCorpus.pm b/lib/Krawfish/Koral/Query/InCorpus.pm
index a1e4833..0bc6c0b 100644
--- a/lib/Krawfish/Koral/Query/InCorpus.pm
+++ b/lib/Krawfish/Koral/Query/InCorpus.pm
@@ -1,10 +1,12 @@
package Krawfish::Koral::Query::InCorpus;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Util::Bits;
use Krawfish::Query::InCorpus;
use strict;
use warnings;
+with 'Krawfish::Koral::Query';
+
# Create a query that will check if a certain
# match is associated to certain classes.
diff --git a/lib/Krawfish/Koral/Query/Length.pm b/lib/Krawfish/Koral/Query/Length.pm
index d1fdf0b..29a3ce0 100644
--- a/lib/Krawfish/Koral/Query/Length.pm
+++ b/lib/Krawfish/Koral/Query/Length.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::Length;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Scalar::Util qw/looks_like_number/;
use List::Util;
use Krawfish::Query::Length;
@@ -9,6 +9,8 @@
memoize('min_span');
memoize('max_span');
+with 'Krawfish::Koral::Query';
+
# TODO:
# Normalize chained length queries
# length(0-3,length(1-3,query))
diff --git a/lib/Krawfish/Koral/Query/Match.pm b/lib/Krawfish/Koral/Query/Match.pm
index 81b8967..5cddb43 100644
--- a/lib/Krawfish/Koral/Query/Match.pm
+++ b/lib/Krawfish/Koral/Query/Match.pm
@@ -1,9 +1,11 @@
package Krawfish::Koral::Query::Match;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Query::Match;
use strict;
use warnings;
+with 'Krawfish::Koral::Query';
+
# This Query does not search segment data, but
# returns the data it is passed to.
# It is used to fetch enriched match data.
@@ -176,10 +178,4 @@
};
-sub from_koral {
- my ($class, $kq) = @_;
- ...
-};
-
-
1;
diff --git a/lib/Krawfish/Koral/Query/Nowhere.pm b/lib/Krawfish/Koral/Query/Nowhere.pm
index 9dd140a..b2c75a5 100644
--- a/lib/Krawfish/Koral/Query/Nowhere.pm
+++ b/lib/Krawfish/Koral/Query/Nowhere.pm
@@ -1,9 +1,11 @@
package Krawfish::Koral::Query::Nowhere;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Query::Nowhere;
use strict;
use warnings;
+with 'Krawfish::Koral::Query';
+
sub new {
my $class = shift;
bless {
@@ -59,4 +61,8 @@
-1;
};
+sub to_koral_fragment {
+ ...
+};
+
1;
diff --git a/lib/Krawfish/Koral/Query/Or.pm b/lib/Krawfish/Koral/Query/Or.pm
index c88befa..14d20b9 100644
--- a/lib/Krawfish/Koral/Query/Or.pm
+++ b/lib/Krawfish/Koral/Query/Or.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::Or;
-use parent ('Krawfish::Koral::Util::Boolean','Krawfish::Koral::Query');
+use Role::Tiny::With;
use Krawfish::Log;
use Krawfish::Query::Or;
use strict;
@@ -8,6 +8,9 @@
memoize('min_span');
memoize('max_span');
+with 'Krawfish::Koral::Util::Boolean';
+with 'Krawfish::Koral::Query';
+
# Or-Construct on spans
# TODO:
@@ -54,7 +57,7 @@
# so this has to be resolved as well.
sub normalize {
my $self = shift;
- return $self->SUPER::normalize
+ return Krawfish::Koral::Util::Boolean::normalize($self)
->_resolve_optionality;
};
@@ -142,4 +145,10 @@
return $max;
};
+
+sub to_koral_fragment {
+ ...
+};
+
+
1;
diff --git a/lib/Krawfish/Koral/Query/Repetition.pm b/lib/Krawfish/Koral/Query/Repetition.pm
index 378e818..3c439a6 100644
--- a/lib/Krawfish/Koral/Query/Repetition.pm
+++ b/lib/Krawfish/Koral/Query/Repetition.pm
@@ -1,9 +1,11 @@
package Krawfish::Koral::Query::Repetition;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Query::Repetition;
use strict;
use warnings;
+with 'Krawfish::Koral::Query';
+
our $MAX = 100;
sub new {
diff --git a/lib/Krawfish/Koral/Query/Sequence.pm b/lib/Krawfish/Koral/Query/Sequence.pm
index 2535f9f..92934d7 100644
--- a/lib/Krawfish/Koral/Query/Sequence.pm
+++ b/lib/Krawfish/Koral/Query/Sequence.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::Sequence;
-use parent ('Krawfish::Koral::Util::Sequential','Krawfish::Koral::Query');
+use Role::Tiny::With;
use Krawfish::Log;
use strict;
use warnings;
@@ -7,6 +7,9 @@
memoize('min_span');
memoize('max_span');
+with 'Krawfish::Koral::Util::Sequential';
+with 'Krawfish::Koral::Query';
+
# TODO:
# Check for queries like "Der {[pos!=ADJ]*} Mann"
@@ -28,7 +31,7 @@
sub new {
my $class = shift;
- my $self = $class->SUPER::new;
+ my $self = Krawfish::Koral::Query::new($class);
$self->{operands} = [@_];
$self->{info} = undef;
$self->{_checked} = 0;
diff --git a/lib/Krawfish/Koral/Query/Span.pm b/lib/Krawfish/Koral/Query/Span.pm
index 43d5314..ea63a2e 100644
--- a/lib/Krawfish/Koral/Query/Span.pm
+++ b/lib/Krawfish/Koral/Query/Span.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::Span;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Util::Constants ':PREFIX';
use Krawfish::Koral::Query::TermID;
use Krawfish::Koral::Query::Term;
@@ -8,6 +8,8 @@
use strict;
use warnings;
+with 'Krawfish::Koral::Query';
+
use constant DEBUG => 0;
sub new {
diff --git a/lib/Krawfish/Koral/Query/Term.pm b/lib/Krawfish/Koral/Query/Term.pm
index a2300ed..29ce8ac 100644
--- a/lib/Krawfish/Koral/Query/Term.pm
+++ b/lib/Krawfish/Koral/Query/Term.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::Term;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Util::Constants qw/:PREFIX/;
use Krawfish::Koral::Query::TermID;
use Krawfish::Query::Nowhere;
@@ -7,6 +7,8 @@
use strict;
use warnings;
+with 'Krawfish::Koral::Query';
+
# TODO:
# Probably join this with TermID
# and make it inflatable
diff --git a/lib/Krawfish/Koral/Query/TermGroup.pm b/lib/Krawfish/Koral/Query/TermGroup.pm
index dd46014..7a65643 100644
--- a/lib/Krawfish/Koral/Query/TermGroup.pm
+++ b/lib/Krawfish/Koral/Query/TermGroup.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::TermGroup;
-use parent ('Krawfish::Koral::Util::Boolean','Krawfish::Koral::Query');
+use Role::Tiny::With;
use Krawfish::Koral::Query::Term;
use Krawfish::Query::Or;
use Krawfish::Query::Constraint;
@@ -9,6 +9,9 @@
use strict;
use warnings;
+with 'Krawfish::Koral::Util::Boolean';
+with 'Krawfish::Koral::Query';
+
# TODO:
# Preparation should be:
# -> normalize()
diff --git a/lib/Krawfish/Koral/Query/TermID.pm b/lib/Krawfish/Koral/Query/TermID.pm
index 7f68d2e..c8b717a 100644
--- a/lib/Krawfish/Koral/Query/TermID.pm
+++ b/lib/Krawfish/Koral/Query/TermID.pm
@@ -1,9 +1,11 @@
package Krawfish::Koral::Query::TermID;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Query::TermID;
use strict;
use warnings;
+with 'Krawfish::Koral::Query';
+
sub new {
my ($class, $term_id) = @_;
bless {
diff --git a/lib/Krawfish/Koral/Query/Token.pm b/lib/Krawfish/Koral/Query/Token.pm
index 7da6893..fc3145f 100644
--- a/lib/Krawfish/Koral/Query/Token.pm
+++ b/lib/Krawfish/Koral/Query/Token.pm
@@ -1,14 +1,14 @@
package Krawfish::Koral::Query::Token;
-use parent 'Krawfish::Koral::Query';
-# use Krawfish::Koral::Query::Token;
+use Role::Tiny::With;
use Krawfish::Util::Constants qw/:PREFIX/;
use Krawfish::Koral::Query::Term;
-# use Krawfish::Query::Term;
use Krawfish::Log;
use strict;
use warnings;
use Scalar::Util qw/blessed/;
+with 'Krawfish::Koral::Query';
+
use constant DEBUG => 0;
# Token based query containing boolean definition of terms.
diff --git a/lib/Krawfish/Koral/Query/Unique.pm b/lib/Krawfish/Koral/Query/Unique.pm
index 9828bf8..fcb52da 100644
--- a/lib/Krawfish/Koral/Query/Unique.pm
+++ b/lib/Krawfish/Koral/Query/Unique.pm
@@ -1,5 +1,5 @@
package Krawfish::Koral::Query::Unique;
-use parent 'Krawfish::Koral::Query';
+use Role::Tiny::With;
use Krawfish::Query::Unique;
use strict;
use warnings;
@@ -7,6 +7,8 @@
memoize('min_span');
memoize('max_span');
+with 'Krawfish::Koral::Query';
+
sub new {
my $class = shift;
bless {
diff --git a/lib/Krawfish/Koral/Report.pm b/lib/Krawfish/Koral/Report.pm
index 67f9e49..646c4e6 100644
--- a/lib/Krawfish/Koral/Report.pm
+++ b/lib/Krawfish/Koral/Report.pm
@@ -1,14 +1,16 @@
package Krawfish::Koral::Report;
+use strict;
+use warnings;
use Role::Tiny;
+use Krawfish::Log;
+
+
requires qw/error
warning
message
has_error
has_warning
has_message/;
-use Krawfish::Log;
-use strict;
-use warnings;
# Report on errors, warnings an anything else
diff --git a/lib/Krawfish/Koral/Util/Sequential.pm b/lib/Krawfish/Koral/Util/Sequential.pm
index 9b42efc..d1415e6 100644
--- a/lib/Krawfish/Koral/Util/Sequential.pm
+++ b/lib/Krawfish/Koral/Util/Sequential.pm
@@ -1,12 +1,13 @@
package Krawfish::Koral::Util::Sequential;
+use strict;
+use warnings;
+use Role::Tiny;
use Krawfish::Log;
use Krawfish::Query::Nowhere;
use Krawfish::Query::Constraint::Position;
use Krawfish::Query::Constraint::InBetween;
use Krawfish::Query::Constraint;
use List::MoreUtils qw!uniq!;
-use strict;
-use warnings;
use constant {
DEBUG => 0,
@@ -21,6 +22,8 @@
KQUERY => 3
};
+with 'Krawfish::Koral::Report';
+
# TODO:
# Resolve optionality!
# The filter is only necessary at the top element of one anchor
@@ -1174,73 +1177,3 @@
__END__
-
-
- my $last_type;
- my @consecutives;
-
- for (my $i = ($self->size - 1); $i >= -1; $i--) {
-
- # Initialize last type
- unless (defined $last_type) {
- $last_type = $query_types[$i]->[0];
- CORE::next;
- };
-
- if (($i >= 0) && ($query_types[$i]->[0] == $last_type)) {
-
- # Initialize consecutives
- unless (@consecutives) {
- unshift @consecutives, $i+1;
- };
- unshift @consecutives, $i;
- }
-
- # Types differ - flush
- elsif (scalar @consecutives > 1) {
-
- # The group consists of positives
- if ($query_types[$consecutives[0]]->[0] == POS) {
-
- my $first_i = shift @consecutives;
- my $query = $queries[$first_i];
-
- print_log('kq_sequtil', 'Create query for consecutive positive ops') if DEBUG;
-
- # Iterate as long as there are consecutives
- while (@consecutives) {
-
- # Get next from list
- my $next_i = shift @consecutives;
-
- # Create a precedes directly
- if ($query->max_freq <= $queries[$next_i]->max_freq) {
-
- print_log(
- 'kq_sequtil',
- 'Freq is '. $query->to_string . ' <= ' .$queries[$next_i]->to_string
- ) if DEBUG;
-
- $query = _precedes_directly($query, $queries[$next_i]);
- }
-
- # Reverse the order due to frequency optimization
- else {
- $query = _succeeds_directly($queries[$next_i], $query);
- };
-
- $queries[$next_i] = undef;
- $query_types[$next_i] = [NULL, 0];
- };
-
- # Store the newly build query at the first position.
- $queries[$first_i] = $query;
-
- @consecutives = ();
- $last_type = $i;
- }
- else {
- warn 'Types not supported yet';
- };
- };
- };
diff --git a/lib/Krawfish/Log.pm b/lib/Krawfish/Log.pm
index 9958de2..dbb2b65 100644
--- a/lib/Krawfish/Log.pm
+++ b/lib/Krawfish/Log.pm
@@ -1,7 +1,7 @@
package Krawfish::Log;
-use parent 'Exporter';
use strict;
use warnings;
+use parent 'Exporter';
# Simple log mechanism