[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