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 {