The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use v6;

module Java::Javap::Parser;

#grammar JavapParser {
    rule method_decl { Method = <ws>* <mode>?
                                <ws>+ <method_name>
                                \(
                                    <arg_list>
                                \) \;
                     }

    rule mode        { Mode = ( public | private | protected ) }
    rule method_name { Name = ( <IDENT> [ <dot>   <IDENT> ]* ) }
    rule arg_list    { Args = ( <ARG>   [ <comma> <ARG>   ]* ) }

    rule ARG         { ( <IDENT> [ <array> ]* ) }
    rule IDENT       { ( \w+ ) }
#}

sub parse_javap( Str $raw_javap ) is export {
    my $raw_method = '    public java.lang.String(byte[], int, int);';

#    $raw_method ~~ m:keepall/<JavaParser.method_decl>/;
#    say $/;
    my $parse_tree;

    $raw_method ~~ /$<ast> := <method_decl>/;
#    $raw_method ~~ /$<ast> := <JavaParser.method_decl>/;

    say "$/<ast>.Method";
#    given $raw_method {
#        $parse_tree = m:keepall/<JavaParser.method_decl>/;
#    }

#    say $parse_tree<Method>;
#    say $parse_tree;

    return $parse_tree;
}