#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;

BEGIN {
    package My::Parser;
    use Exporter 'import';
    our @EXPORT = ('foo', 'bar');

    use Parse::Keyword {
        foo => \&parse_foo,
        bar => \&parse_bar,
    };

    sub foo {}

    sub parse_foo {
        lex_read_space;
        die unless lex_peek eq '{';
        parse_block(1)->();
        return (sub {}, 1);
    }

    sub bar { $::body = $_[0] }

    sub parse_bar {
        lex_read_space;
        die unless lex_peek eq '{';
        my $body = parse_block;
        return (sub { $body }, 1);
    }

    $INC{'My/Parser.pm'} = __FILE__;
}

use My::Parser;

my $bar;
my $baz = 5;

foo {
    bar { $baz }
}

is($::body->(), 5);

done_testing;
