2 use Module::Runtime qw(use_module);
3 use DX::Utils qw(:builders);
5 { package FakeReadline;
7 return undef unless defined(my $line = readline($_[0]));
12 sub isa { require Caroline; return 1 if Caroline->isa($_[1]); }
15 use_module('DX::ShellFrontend')->new(
16 session_mode => 'shell',
17 session => use_module('DX::ShellSession')->new(
18 shell_state => use_module('DX::ShellState')->new(
20 template_query_state => use_module('DX::QueryState')->new(
22 'eq' => use_module('DX::Predicate::Eq')->new,
23 member_at => use_module('DX::Predicate::MemberAt')->new,
24 dict => use_module('DX::Predicate::Dict')->new,
28 => use_module('DX::PropositionSequence')->new_empty,
35 open my $fh, '<', $ARGV[0] or die "Couldn't open script: $!";
36 bless($fh, 'FakeReadline')