Commit | Line | Data |
88eac4d2 |
1 | use strictures 2; |
2 | use Module::Runtime qw(use_module); |
3 | use DX::Utils qw(dict deparse); |
4 | use Devel::Dwarn; |
5 | BEGIN { *u = \&use_module } |
6 | |
7 | my $scope = u('DX::Scope')->new( |
8 | predicates => { |
9 | map +( |
10 | $_ => u('DX::Predicate::'.join('', map ucfirst, split '_', $_))->new |
11 | ), qw(eq member_at is_dict) |
12 | }, |
13 | globals => dict(), |
14 | locals => [], |
15 | ); |
16 | |
17 | my $exp = u('DX::Expander')->new; |
18 | |
19 | my $tcl = u('Tcl')->new; |
20 | |
21 | foreach my $pred (keys %{$scope->predicates}) { |
22 | $tcl->CreateCommand($pred => sub { |
23 | my (undef, undef, undef, @args) = @_; |
24 | Dwarn [ $pred, $exp->expand_args(@args) ]; |
25 | }); |
26 | } |
27 | |
28 | my $rl = u('Caroline')->new; |
29 | |
30 | while (my $line = $rl->readline('$ ')) { |
31 | $tcl->Eval($line); |
32 | } |