[svn:parrot] r36697 - in trunk/languages/pod/src: Pod/DocTree parser

kjs at svn.parrot.org kjs at svn.parrot.org
Fri Feb 13 23:01:41 UTC 2009


Author: kjs
Date: Fri Feb 13 23:01:40 2009
New Revision: 36697
URL: https://trac.parrot.org/parrot/changeset/36697

Log:
[pod] some quick hacks, most probably needs more thoughts, but it makes test.pod compile. (nothing happens yet, except when --target=html, some stuff is coming out)
+ create subclass for FormatCode.

Modified:
   trunk/languages/pod/src/Pod/DocTree/Node.pir
   trunk/languages/pod/src/parser/actions.pm
   trunk/languages/pod/src/parser/grammar.pg

Modified: trunk/languages/pod/src/Pod/DocTree/Node.pir
==============================================================================
--- trunk/languages/pod/src/Pod/DocTree/Node.pir	Fri Feb 13 22:54:29 2009	(r36696)
+++ trunk/languages/pod/src/Pod/DocTree/Node.pir	Fri Feb 13 23:01:40 2009	(r36697)
@@ -26,6 +26,7 @@
     p6meta.'new_class'('Pod::DocTree::Item', 'parent'=>base)
     p6meta.'new_class'('Pod::DocTree::Text', 'parent'=>base)
     p6meta.'new_class'('Pod::DocTree::Format', 'parent'=>base)
+    p6meta.'new_class'('Pod::DocTree::FormatCode', 'parent'=>base)
     p6meta.'new_class'('Pod::DocTree::Paragraph', 'parent'=>base)
     p6meta.'new_class'('Pod::DocTree::Literal', 'parent'=>base)
 

Modified: trunk/languages/pod/src/parser/actions.pm
==============================================================================
--- trunk/languages/pod/src/parser/actions.pm	Fri Feb 13 22:54:29 2009	(r36696)
+++ trunk/languages/pod/src/parser/actions.pm	Fri Feb 13 23:01:40 2009	(r36697)
@@ -62,12 +62,38 @@
     make $block;
 }
 
-method for_directive($/) {
+method pod_directive($/) {
     my $block := Pod::DocTree::Block.new();
+    our @?BLOCK;
+    @?BLOCK.unshift($block);
+    make $block;
+}
 
+method for_directive($/) {
+    my $block := Pod::DocTree::Block.new();
+    our @?BLOCK;
+    @?BLOCK.unshift($block);
     make $block;
 }
 
+method cut_directive($/) {
+    our @?BLOCK;
+    my $count := @?BLOCK;
+    if $count > 0 {
+        my $block := @?BLOCK.shift();
+        make $block;
+    }
+}
+
+method end_directive($/) {
+    our @?BLOCK;
+    my $count := @?BLOCK;
+    if $count > 0 {
+        my $block := @?BLOCK.shift();
+        make $block;
+    }
+}
+
 method over_directive($/) {
     my $list := Pod::DocTree::List.new();
     our @?LIST;
@@ -155,13 +181,13 @@
         $name := 'link';
     }
     elsif $<code> eq 'S' {
-
+        $name := 'XXX';
     }
     elsif $<code> eq 'X' {
-
+        $name := 'XXX';
     }
     elsif $<code> eq 'Z' {
-
+        $name := 'XXX';
     }
     $fcode.name($name);
     $fcode.push($text);

Modified: trunk/languages/pod/src/parser/grammar.pg
==============================================================================
--- trunk/languages/pod/src/parser/grammar.pg	Fri Feb 13 22:54:29 2009	(r36696)
+++ trunk/languages/pod/src/parser/grammar.pg	Fri Feb 13 23:01:40 2009	(r36697)
@@ -46,13 +46,13 @@
 token pod_directive {
     ^^ '=pod' \n
     <.blank_line>
-
+    {*}
 }
 
 token cut_directive {
     ^^ '=cut' \n
     <.blank_line>?
-
+    {*}
 }
 
 token heading {
@@ -80,7 +80,7 @@
     <block_name>
     \n
     <.blank_line>
-
+    {*}
 }
 
 token for_directive {


More information about the parrot-commits mailing list