use Module::Runtime qw(use_module);
use DX::Utils qw(:builders);
+{ package FakeReadline;
+ sub readline {
+ return undef unless defined(my $line = readline($_[0]));
+ print $_[1].$line;
+ return $line;
+ }
+ sub history_add {}
+}
+
use_module('DX::ShellFrontend')->new(
session_mode => 'shell',
session => use_module('DX::ShellSession')->new(
predicates => {
'eq' => use_module('DX::Predicate::Eq')->new,
member_at => use_module('DX::Predicate::MemberAt')->new,
- is_dict => use_module('DX::Predicate::IsDict')->new,
+ dict => use_module('DX::Predicate::Dict')->new,
},
globals => dict(),
proposition_sequence
=> use_module('DX::PropositionSequence')->new_empty,
),
- )
+ trace_these => {},
+ ),
+ ),
+ (@ARGV
+ ? (readline => do {
+ open my $fh, '<', $ARGV[0] or die "Couldn't open script: $!";
+ bless($fh, 'FakeReadline')
+ })
+ : ()
),
)->repl