develooper Front page | perl.cvs.parrot | Postings from January 2009

[svn:parrot] r36153 - trunk/languages/pod/src/parser

From:
kjs
Date:
January 29, 2009 10:47
Subject:
[svn:parrot] r36153 - trunk/languages/pod/src/parser
Message ID:
20090129184717.E65EDCB9AE@x12.develooper.com
Author: kjs
Date: Thu Jan 29 10:47:17 2009
New Revision: 36153

Modified:
   trunk/languages/pod/src/parser/actions.pm
   trunk/languages/pod/src/parser/grammar.pg

Log:
[pod] some work on languages/pod. Small bits.

Modified: trunk/languages/pod/src/parser/actions.pm
==============================================================================
--- trunk/languages/pod/src/parser/actions.pm	(original)
+++ trunk/languages/pod/src/parser/actions.pm	Thu Jan 29 10:47:17 2009
@@ -18,10 +18,13 @@
 class Pod::Grammar::Actions;
 
 method TOP($/) {
-    make $( $/ );
-    # for $<pod_section> {
-    #     $( $_  );
-    # }
+    my $rootblock;
+
+    for $<pod_section> {
+        $rootblock.push( $( $_  ) );
+    }
+
+    make $rootblock;
 }
 
 method skipped($/) {
@@ -33,6 +36,7 @@
         ## XXX store it where? A block?
         $( $_ );
     }
+    make $( $<pod_sequence>[0] );
 }
 
 method pod_sequence($/, $key) {
@@ -47,17 +51,22 @@
 
 }
 
-## XXX refactor the block_title stuff for heading and begin_directive.
+
+
+sub title($/, $block) {
+    if $<block_title> {
+        my $title := $( $<block_title>[0] );
+        $block.title( $title.name() );
+    }
+}
 
 method heading($/) {
     my $heading := Pod::DocTree::Heading.new();
     ## set the level of the heading
     $heading.level($<digit>);
 
-    if $<block_title> {
-        my $title := $( $<block_title>[0] );
-        $heading.title( $title.name() );
-    }
+    title($/, $heading);
+
     make $heading;
 }
 
@@ -67,13 +76,12 @@
     my $name  := $( $<block_name> );
     $block.name( $name.name() );
 
-    if $<block_title> {
-        my $title := $( $<block_title>[0] );
-        $heading.title( $title.name() );
-    }
+    title($/, $block);
+
     make $block;
 }
 
+
 method end_directive($/) {
 
 }

Modified: trunk/languages/pod/src/parser/grammar.pg
==============================================================================
--- trunk/languages/pod/src/parser/grammar.pg	(original)
+++ trunk/languages/pod/src/parser/grammar.pg	Thu Jan 29 10:47:17 2009
@@ -29,16 +29,16 @@
 }
 
 regex pod_sequence {
-    | <heading>              #= heading
-    | <begin_directive>      #= begin_directive
-    | <end_directive>        #= end_directive
-    | <for_directive>        #= for_directive
-    | <back_directive>       #= back_directive
-    | <item_directive>       #= item_directive
-    | <over_directive>       #= over_directive
-    | <encoding_directive>   #= encoding_directive
-    | <literal_paragraph>    #= literal_paragraph
-    | <paragraph>            #= paragraph
+    | <heading>              {*} #= heading
+    | <begin_directive>      {*} #= begin_directive
+    | <end_directive>        {*} #= end_directive
+    | <for_directive>        {*} #= for_directive
+    | <back_directive>       {*} #= back_directive
+    | <item_directive>       {*} #= item_directive
+    | <over_directive>       {*} #= over_directive
+    | <encoding_directive>   {*} #= encoding_directive
+    | <literal_paragraph>    {*} #= literal_paragraph
+    | <paragraph>            {*} #= paragraph
 }
 
 token pod_directive {



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About