Revision: 99
Author: cosimo.streppone
Date: Mon Sep 28 13:29:30 2009
Log: Now the comp_stmt(?) rule triggers correctly.
Fixed the grammar properly to allow clean regen of Java::Javap::Grammar.

http://code.google.com/p/java2perl6/source/detail?r=99

Modified:
 /trunk/lib/Java/Javap/Grammar.pm
 /trunk/lib/Java/Javap/javap.grammar

=======================================
--- /trunk/lib/Java/Javap/Grammar.pm    Sun Sep 27 12:37:52 2009
+++ /trunk/lib/Java/Javap/Grammar.pm    Mon Sep 28 13:29:30 2009
@@ -6,8 +6,8 @@

 package Parse::RecDescent::Java::Javap::Grammar;
 use strict;
-use Carp ();
 use vars qw($skip $AUTOLOAD  );
+...@parse::RecDescent::Java::Javap::Grammar::ISA = ();
 $skip = '\s*';

     my %methods;
@@ -18,11 +18,11 @@
 {
 local $SIG{__WARN__} = sub {0};
 # PRETEND TO BE IN Parse::RecDescent NAMESPACE
-*Parse::RecDescent::Java::Javap::Grammar::AUTOLOAD     = sub
-{
-       no strict 'refs';
- $AUTOLOAD =~ s/^Parse::RecDescent::Java::Javap::Grammar/Parse::RecDescent/;
-       goto &{$AUTOLOAD};
+*Parse::RecDescent::Java::Javap::Grammar::AUTOLOAD   = sub
+{
+    no strict 'refs';
+ $AUTOLOAD =~ s/^Parse::RecDescent::Java::Javap::Grammar/Parse::RecDescent/;
+    goto &{$AUTOLOAD};
 }
 }

@@ -34,206 +34,209 @@
        use vars q{$tracelevel};
        local $tracelevel = ($tracelevel||0)+1;
        $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"variable"};
-
-       Parse::RecDescent::_trace(q{Trying rule: [variable]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{variable},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-
-
-       my $err_at = @{$thisparser->{errors}};
-
-       my $score;
-       my $score_return;
-       my $_tok;
-       my $return = undef;
-       my $_matched=0;
-       my $commit=0;
-       my @item = ();
-       my %item = ();
-       my $repeating =  defined($_[2]) && $_[2];
-       my $_noactions = defined($_[3]) && $_[3];
-       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
-       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
-       my $text;
-       my $lastsep="";
- my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
-       $expectation->at($_[1]);
-
-       my $thisline;
-       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
-
-
-
-       while (!$_matched && !$commit)
-       {
-
- Parse::RecDescent::_trace(q{Trying production: [ACCESS var_modifier arg NAME ';']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{variable});
-               %item = (__RULE__ => q{variable});
-               my $repcount = 0;
+    my $thisrule = $thisparser->{"rules"}{"variable"};
+
+    Parse::RecDescent::_trace(q{Trying rule: [variable]},
+                  Parse::RecDescent::_tracefirst($_[1]),
+                  q{variable},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+
+
+    my $err_at = @{$thisparser->{errors}};
+
+    my $score;
+    my $score_return;
+    my $_tok;
+    my $return = undef;
+    my $_matched=0;
+    my $commit=0;
+    my @item = ();
+    my %item = ();
+    my $repeating =  defined($_[2]) && $_[2];
+    my $_noactions = defined($_[3]) && $_[3];
+    my @arg =    defined $_[4] ? @{ &{$_[4]} } : ();
+    my %arg =    ($#arg & 01) ? @arg : (@arg, undef);
+    my $text;
+    my $lastsep="";
+    my $current_match;
+    my $expectation = new Parse::RecDescent::Expectation(q{ACCESS});
+    $expectation->at($_[1]);
+
+    my $thisline;
+    tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+
+
+    while (!$_matched && !$commit)
+    {
+
+ Parse::RecDescent::_trace(q{Trying production: [ACCESS var_modifier arg NAME ';']},
+                      Parse::RecDescent::_tracefirst($_[1]),
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        my $thisprod = $thisrule->{"prods"}[0];
+        $text = $_[1];
+        my $_savetext;
+        @item = (q{variable});
+        %item = (__RULE__ => q{variable});
+        my $repcount = 0;


-               Parse::RecDescent::_trace(q{Trying subrule: [ACCESS]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{variable},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
- unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::ACCESS($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
-               {
-
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: 
[ACCESS]>>},
-                                                 
Parse::RecDescent::_tracefirst($text),
-                                                 q{variable},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
- Parse::RecDescent::_trace(q{>>Matched subrule: [ACCESS]<< (return value: [}
-                                       . $_tok . q{]},
-
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{ACCESS}} = $_tok;
-               push @item, $_tok;
-
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: 
[var_modifier]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{variable},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{var_modifier})->at($text);
-
- unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Java::Javap::Grammar::var_modifier, 0, 100000000, $_noactions,$expectation,undef)))
-               {
- Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [var_modifier]>>},
-                                                 
Parse::RecDescent::_tracefirst($text),
-                                                 q{variable},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
- Parse::RecDescent::_trace(q{>>Matched repeated subrule: [var_modifier]<< (}
-                                       . @$_tok . q{ times)},
-
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{var_modifier(s?)}} = $_tok;
-               push @item, $_tok;
-
+        Parse::RecDescent::_trace(q{Trying subrule: [ACCESS]},
+                  Parse::RecDescent::_tracefirst($text),
+                  q{variable},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+        if (1) { no strict qw{refs};
+        $expectation->is(q{})->at($text);
+ unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::ACCESS($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
+        {
+
+ Parse::RecDescent::_trace(q{<<Didn't match subrule: [ACCESS]>>},
+                          Parse::RecDescent::_tracefirst($text),
+                          q{variable},
+                          $tracelevel)
+                            if defined $::RD_TRACE;
+            $expectation->failed();
+            last;
+        }
+ Parse::RecDescent::_trace(q{>>Matched subrule: [ACCESS]<< (return value: [}
+                    . $_tok . q{]},
+
+                      Parse::RecDescent::_tracefirst($text),
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $item{q{ACCESS}} = $_tok;
+        push @item, $_tok;
+
+        }
+
+ Parse::RecDescent::_trace(q{Trying repeated subrule: [var_modifier]},
+                  Parse::RecDescent::_tracefirst($text),
+                  q{variable},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+        $expectation->is(q{var_modifier})->at($text);
+
+ unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Java::Javap::Grammar::var_modifier, 0, 100000000, $_noactions,$expectation,sub { \...@arg })))
+        {
+ Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [var_modifier]>>},
+                          Parse::RecDescent::_tracefirst($text),
+                          q{variable},
+                          $tracelevel)
+                            if defined $::RD_TRACE;
+            last;
+        }
+ Parse::RecDescent::_trace(q{>>Matched repeated subrule: [var_modifier]<< (}
+                    . @$_tok . q{ times)},
+
+                      Parse::RecDescent::_tracefirst($text),
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $item{q{var_modifier(s?)}} = $_tok;
+        push @item, $_tok;
+


-               Parse::RecDescent::_trace(q{Trying subrule: [arg]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{variable},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{arg})->at($text);
- unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::arg($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
-               {
-
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: 
[arg]>>},
-                                                 
Parse::RecDescent::_tracefirst($text),
-                                                 q{variable},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [arg]<< (return 
value: [}
-                                       . $_tok . q{]},
-
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{arg}} = $_tok;
-               push @item, $_tok;
-
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{variable},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{NAME})->at($text);
- unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
-               {
-
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: 
[NAME]>>},
-                                                 
Parse::RecDescent::_tracefirst($text),
-                                                 q{variable},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return 
value: [}
-                                       . $_tok . q{]},
-
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [';']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{';'})->at($text);
-
-
- unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\;//)
-               {
-
-                       $expectation->failed();
-                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
-                                                 
Parse::RecDescent::_tracefirst($text))
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: 
[}
-                                               . $& . q{])},
-                                                 
Parse::RecDescent::_tracefirst($text))
-                                                       if defined $::RD_TRACE;
-               push @item, $item{__STRING1__}=$&;
-
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-
-               $_tok = ($_noactions) ? 0 : do {
+        Parse::RecDescent::_trace(q{Trying subrule: [arg]},
+                  Parse::RecDescent::_tracefirst($text),
+                  q{variable},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+        if (1) { no strict qw{refs};
+        $expectation->is(q{arg})->at($text);
+ unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::arg($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
+        {
+
+            Parse::RecDescent::_trace(q{<<Didn't match subrule: [arg]>>},
+                          Parse::RecDescent::_tracefirst($text),
+                          q{variable},
+                          $tracelevel)
+                            if defined $::RD_TRACE;
+            $expectation->failed();
+            last;
+        }
+ Parse::RecDescent::_trace(q{>>Matched subrule: [arg]<< (return value: [}
+                    . $_tok . q{]},
+
+                      Parse::RecDescent::_tracefirst($text),
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $item{q{arg}} = $_tok;
+        push @item, $_tok;
+
+        }
+
+        Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
+                  Parse::RecDescent::_tracefirst($text),
+                  q{variable},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+        if (1) { no strict qw{refs};
+        $expectation->is(q{NAME})->at($text);
+ unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
+        {
+
+            Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
+                          Parse::RecDescent::_tracefirst($text),
+                          q{variable},
+                          $tracelevel)
+                            if defined $::RD_TRACE;
+            $expectation->failed();
+            last;
+        }
+ Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
+                    . $_tok . q{]},
+
+                      Parse::RecDescent::_tracefirst($text),
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $item{q{NAME}} = $_tok;
+        push @item, $_tok;
+
+        }
+
+        Parse::RecDescent::_trace(q{Trying terminal: [';']},
+                      Parse::RecDescent::_tracefirst($text),
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $lastsep = "";
+        $expectation->is(q{';'})->at($text);
+
+
+ unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\;/)
+        {
+
+            $expectation->failed();
+            Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                          Parse::RecDescent::_tracefirst($text))
+                            if defined $::RD_TRACE;
+            last;
+        }
+               $current_match = substr($text, $-[0], $+[0] - $-[0]);
+        substr($text,0,length($current_match),q{});
+        Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                        . $current_match . q{])},
+                          Parse::RecDescent::_tracefirst($text))
+                            if defined $::RD_TRACE;
+        push @item, $item{__STRING1__}=$current_match;
+
+
+        Parse::RecDescent::_trace(q{Trying action},
+                      Parse::RecDescent::_tracefirst($text),
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+
+
+        $_tok = ($_noactions) ? 0 : do {
     {
         body_element => 'variable',
         access       => $item{ ACCESS },
@@ -241,67 +244,67 @@
         type         => $item{ arg }[0],
     }
 };
-               unless (defined $_tok)
-               {
- Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
-                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
-                                         . $_tok . q{])},
-                                         Parse::RecDescent::_tracefirst($text))
-                                               if defined $::RD_TRACE;
-               push @item, $_tok;
-               $item{__ACTION1__}=$_tok;
-
+        unless (defined $_tok)
+        {
+ Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                    if defined $::RD_TRACE;
+            last;
+        }
+        Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                      . $_tok . q{])},
+                      Parse::RecDescent::_tracefirst($text))
+                        if defined $::RD_TRACE;
+        push @item, $_tok;
+        $item{__ACTION1__}=$_tok;
+


- Parse::RecDescent::_trace(q{>>Matched production: [ACCESS var_modifier arg NAME ';']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
+ Parse::RecDescent::_trace(q{>>Matched production: [ACCESS var_modifier arg NAME ';']<<},
+                      Parse::RecDescent::_tracefirst($text),
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $_matched = 1;
+        last;
+    }


-        unless ( $_matched || defined($return) || defined($score) )
-       {
-
-
-               $_[1] = $text;  # NOT SURE THIS IS NEEDED
-               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
-                                        Parse::RecDescent::_tracefirst($_[1]),
-                                        q{variable},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{variable},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $return = $score_return;
-       }
-       splice @{$thisparser->{errors}}, $err_at;
-       $return = $item[$#item] unless defined $return;
-       if (defined $::RD_TRACE)
-       {
-               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
-                                         $return . q{])}, "",
-                                         q{variable},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
- Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{variable},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
+    unless ( $_matched || defined($score) )
+    {
+
+
+        $_[1] = $text;  # NOT SURE THIS IS NEEDED
+        Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                     Parse::RecDescent::_tracefirst($_[1]),
+                     q{variable},
+                     $tracelevel)
+                    if defined $::RD_TRACE;
+        return undef;
+    }
+    if (!defined($return) && defined($score))
+    {
+        Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                      q{variable},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $return = $score_return;
+    }
+    splice @{$thisparser->{errors}}, $err_at;
+    $return = $item[$#item] unless defined $return;
+    if (defined $::RD_TRACE)
+    {
+        Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                      $return . q{])}, "",
+                      q{variable},
+                      $tracelevel);
+        Parse::RecDescent::_trace(q{(consumed: [} .
+ Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
+                      Parse::RecDescent::_tracefirst($text),
+                      , q{variable},
+                      $tracelevel)
+    }
+    $_[1] = $text;
+    return $return;
 }

 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \...@args)
@@ -311,123 +314,124 @@
        use vars q{$tracelevel};
        local $tracelevel = ($tracelevel||0)+1;
        $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"arg"};
-
-       Parse::RecDescent::_trace(q{Trying rule: [arg]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{arg},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-
-
-       my $err_at = @{$thisparser->{errors}};
-
-       my $score;
-       my $score_return;
-       my $_tok;
-       my $return = undef;
-       my $_matched=0;
-       my $commit=0;
-       my @item = ();
-       my %item = ();
-       my $repeating =  defined($_[2]) && $_[2];
-       my $_noactions = defined($_[3]) && $_[3];
-       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
-       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
-       my $text;
-       my $lastsep="";
- my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
-       $expectation->at($_[1]);
-
-       my $thisline;
-       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
-
-
-
-       while (!$_matched && !$commit)
-       {
-
- Parse::RecDescent::_trace(q{Trying production: [qualified_name array_depth]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{arg},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{arg});
-               %item = (__RULE__ => q{arg});
-               my $repcount = 0;
+    my $thisrule = $thisparser->{"rules"}{"arg"};
+
+    Parse::RecDescent::_trace(q{Trying rule: [arg]},
+                  Parse::RecDescent::_tracefirst($_[1]),
+                  q{arg},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+
+
+    my $err_at = @{$thisparser->{errors}};
+
+    my $score;
+    my $score_return;
+    my $_tok;
+    my $return = undef;
+    my $_matched=0;
+    my $commit=0;
+    my @item = ();
+    my %item = ();
+    my $repeating =  defined($_[2]) && $_[2];
+    my $_noactions = defined($_[3]) && $_[3];
+    my @arg =    defined $_[4] ? @{ &{$_[4]} } : ();
+    my %arg =    ($#arg & 01) ? @arg : (@arg, undef);
+    my $text;
+    my $lastsep="";
+    my $current_match;
+ my $expectation = new Parse::RecDescent::Expectation(q{qualified_name});
+    $expectation->at($_[1]);
+
+    my $thisline;
+    tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+
+
+    while (!$_matched && !$commit)
+    {
+
+ Parse::RecDescent::_trace(q{Trying production: [qualified_name array_depth]},
+                      Parse::RecDescent::_tracefirst($_[1]),
+                      q{arg},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        my $thisprod = $thisrule->{"prods"}[0];
+        $text = $_[1];
+        my $_savetext;
+        @item = (q{arg});
+        %item = (__RULE__ => q{arg});
+        my $repcount = 0;


-               Parse::RecDescent::_trace(q{Trying subrule: [qualified_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{arg},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
- unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::qualified_name($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
-               {
-
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: 
[qualified_name]>>},
-                                                 
Parse::RecDescent::_tracefirst($text),
-                                                 q{arg},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
- Parse::RecDescent::_trace(q{>>Matched subrule: [qualified_name]<< (return value: [}
-                                       . $_tok . q{]},
-
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{arg},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{qualified_name}} = $_tok;
-               push @item, $_tok;
-
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [array_depth]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{arg},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{array_depth})->at($text);
- unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::array_depth($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
-               {
-
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: 
[array_depth]>>},
-                                                 
Parse::RecDescent::_tracefirst($text),
-                                                 q{arg},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
- Parse::RecDescent::_trace(q{>>Matched subrule: [array_depth]<< (return value: [}
-                                       . $_tok . q{]},
-
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{arg},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{array_depth}} = $_tok;
-               push @item, $_tok;
-
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{arg},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-
-               $_tok = ($_noactions) ? 0 : do {
+        Parse::RecDescent::_trace(q{Trying subrule: [qualified_name]},
+                  Parse::RecDescent::_tracefirst($text),
+                  q{arg},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+        if (1) { no strict qw{refs};
+        $expectation->is(q{})->at($text);
+ unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::qualified_name($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
+        {
+
+ Parse::RecDescent::_trace(q{<<Didn't match subrule: [qualified_name]>>},
+                          Parse::RecDescent::_tracefirst($text),
+                          q{arg},
+                          $tracelevel)
+                            if defined $::RD_TRACE;
+            $expectation->failed();
+            last;
+        }
+ Parse::RecDescent::_trace(q{>>Matched subrule: [qualified_name]<< (return value: [}
+                    . $_tok . q{]},
+
+                      Parse::RecDescent::_tracefirst($text),
+                      q{arg},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $item{q{qualified_name}} = $_tok;
+        push @item, $_tok;
+
+        }
+
+        Parse::RecDescent::_trace(q{Trying subrule: [array_depth]},
+                  Parse::RecDescent::_tracefirst($text),
+                  q{arg},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+        if (1) { no strict qw{refs};
+        $expectation->is(q{array_depth})->at($text);
+ unless (defined ($_tok = Parse::RecDescent::Java::Javap::Grammar::array_depth($thisparser,$text,$repeating,$_noactions,sub { \...@arg })))
+        {
+
+ Parse::RecDescent::_trace(q{<<Didn't match subrule: [array_depth]>>},
+                          Parse::RecDescent::_tracefirst($text),
+                          q{arg},
+                          $tracelevel)
+                            if defined $::RD_TRACE;
+            $expectation->failed();
+            last;
+        }
+ Parse::RecDescent::_trace(q{>>Matched subrule: [array_depth]<< (return value: [}
+                    . $_tok . q{]},
+
+                      Parse::RecDescent::_tracefirst($text),
+                      q{arg},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $item{q{array_depth}} = $_tok;
+        push @item, $_tok;
+
+        }
+
+        Parse::RecDescent::_trace(q{Trying action},
+                      Parse::RecDescent::_tracefirst($text),
+                      q{arg},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+
+
+        $_tok = ($_noactions) ? 0 : do {
     my $array_text = '';
     foreach my $i ( 1 .. $item[2] ) {
         $array_text .= 'Array of ';
@@ -440,67 +444,67 @@
         }
     ]
 };
-               unless (defined $_tok)
-               {
- Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
-                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
-                                         . $_tok . q{])},
-                                         Parse::RecDescent::_tracefirst($text))
-                                               if defined $::RD_TRACE;
-               push @item, $_tok;
-               $item{__ACTION1__}=$_tok;
-
+        unless (defined $_tok)
+        {
+ Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                    if defined $::RD_TRACE;
+            last;
+        }
+        Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                      . $_tok . q{])},
+                      Parse::RecDescent::_tracefirst($text))
+                        if defined $::RD_TRACE;
+        push @item, $_tok;
+        $item{__ACTION1__}=$_tok;
+


- Parse::RecDescent::_trace(q{>>Matched production: [qualified_name array_depth]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{arg},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
+ Parse::RecDescent::_trace(q{>>Matched production: [qualified_name array_depth]<<},
+                      Parse::RecDescent::_tracefirst($text),
+                      q{arg},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $_matched = 1;
+        last;
+    }


-        unless ( $_matched || defined($return) || defined($score) )
-       {
-
-
-               $_[1] = $text;  # NOT SURE THIS IS NEEDED
-               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
-                                        Parse::RecDescent::_tracefirst($_[1]),
-                                        q{arg},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{arg},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $return = $score_return;
-       }
-       splice @{$thisparser->{errors}}, $err_at;
-       $return = $item[$#item] unless defined $return;
-       if (defined $::RD_TRACE)
-       {
-               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
-                                         $return . q{])}, "",
-                                         q{arg},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
- Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{arg},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
+    unless ( $_matched || defined($score) )
+    {
+
+
+        $_[1] = $text;  # NOT SURE THIS IS NEEDED
+        Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                     Parse::RecDescent::_tracefirst($_[1]),
+                     q{arg},
+                     $tracelevel)
+                    if defined $::RD_TRACE;
+        return undef;
+    }
+    if (!defined($return) && defined($score))
+    {
+        Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                      q{arg},
+                      $tracelevel)
+                        if defined $::RD_TRACE;
+        $return = $score_return;
+    }
+    splice @{$thisparser->{errors}}, $err_at;
+    $return = $item[$#item] unless defined $return;
+    if (defined $::RD_TRACE)
+    {
+        Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                      $return . q{])}, "",
+                      q{arg},
+                      $tracelevel);
+        Parse::RecDescent::_trace(q{(consumed: [} .
+ Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
+                      Parse::RecDescent::_tracefirst($text),
+                      , q{arg},
+                      $tracelevel)
+    }
+    $_[1] = $text;
+    return $return;
 }

 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \...@args)
@@ -510,231 +514,238 @@
        use vars q{$tracelevel};
        local $tracelevel = ($tracelevel||0)+1;
        $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"constant_modifier"};
-
-       Parse::RecDescent::_trace(q{Trying rule: [constant_modifier]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{constant_modifier},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-
-
-       my $err_at = @{$thisparser->{errors}};
-
-       my $score;
-       my $score_return;
-       my $_tok;
-       my $return = undef;
-       my $_matched=0;
-       my $commit=0;
-       my @item = ();
-       my %item = ();
-       my $repeating =  defined($_[2]) && $_[2];
-       my $_noactions = defined($_[3]) && $_[3];
-       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
-       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
-       my $text;
-       my $lastsep="";
- my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
-       $expectation->at($_[1]);
-
-       my $thisline;
-       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
-
-
-
-       while (!$_matched && !$commit)
-       {
-
-               Parse::RecDescent::_trace(q{Trying production: ['final']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{constant_modifier},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{constant_modifier});
-               %item = (__RULE__ => q{constant_modifier});
-               my $repcount = 0;
+    my $thisrule = $thisparser->{"rules"}{"constant_modifier"};
+
+    Parse::RecDescent::_trace(q{Trying rule: [constant_modifier]},
+                  Parse::RecDescent::_tracefirst($_[1]),
+                  q{constant_modifier},
+                  $tracelevel)
+                    if defined $::RD_TRACE;
+
+
+    my $err_at = @{$thisparser->{errors}};
+
+    my $score;
+    my $score_return;
+    my $_tok;
+    my $return = undef;
+    my $_matched=0;
+    my $commit=0;
+    my @item = ();
+    my %item = ();
+    my $repeating =  defined($_[2]) && $_[2];
+    my $_noactions = defined($_[3]) && $_[3];
+    my @arg =    defined $_[4] ? @{ &{$_[4]} } : ();
+    my %arg =    ($#arg & 01) ? @arg : (@arg, undef);
+    my $text;
+    my $lastsep="";
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/lib/Java/Javap/javap.grammar Tue Aug 11 02:48:33 2009
+++ /trunk/lib/Java/Javap/javap.grammar Mon Sep 28 13:29:30 2009
@@ -9,7 +9,9 @@
 comp_unit : comp_stmt(?)
             comp_unit_decl '{' body '}' {
     my $retval = $item{ comp_unit_decl };
-    $retval->{ compiled_from } = "$item{ comp_stmt }.java";
+    # Match of subrule X(?) always generates an array
+    my $comp_stmt = $item{ q{comp_stmt(?)} }->[0];
+    $retval->{ compiled_from } = "${comp_stmt}.java";
     $retval->{ contents      } = $item{ body };
     $retval->{ methods       } = \%methods;
     $retval->{ constructors  } = $constructors;

Reply via email to