use DX::Step::Backtrack;
use DX::Step::ResolveProposition;
+use DX::Utils qw(expand_deps);
use DX::Class;
has proposition => (is => 'ro');
sub for_deparse {
my ($self) = @_;
[ statement => [
- [ symbol => 'rspace' ],
- [ block => $self->members ],
+ [ symbol => 'resolution_space' ],
+ [ pairs => [
+ [ proposition => $self->proposition ],
+ [ geometry_depends_on => [ block => [
+ map [ statement => [
+ [ symbol => (split '::', ${$_->[0]})[-1] ],
+ [ value_path => [ @{$_}[1..$#$_] ] ],
+ ] ], @{expand_deps($self->geometry_depends_on)}
+ ] ] ],
+ (@{$self->aperture}
+ ? [ aperture => [ block => [
+ map [ statement => [
+ [ symbol => (split '::', ${$_->[0]})[-1] ],
+ [ value_path => [ @{$_}[1..$#$_] ] ],
+ ] ], @{$self->aperture}
+ ] ] ]
+ : ()),
+ [ members => [ block => [ @{$self->members} ] ] ]
+ ] ],
] ];
}