Changeset 140

Show
Ignore:
Timestamp:
09/14/07 17:23:48 (7 years ago)
Author:
nyarla
Message:

lang/perl/Text-Nyarlax: I implemented parse of the Section element on Text::Nyarlax::Parser::PRD.

Location:
lang/perl/Text-Nyarlax/trunk
Files:
1 added
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Text-Nyarlax/trunk/lib/Text/Nyarlax/Parser/PRD.pm

    r108 r140  
    77use List::MoreUtils qw( uniq ); 
    88use base qw( Text::Nyarlax::Parser ); 
     9 
     10our $VERSION = '0.1'; 
    911 
    1012__PACKAGE__->mk_classdata( 'engine' ); 
     
    8486                            <rulevar: local %variable   = %Text::Nyarlax::Parser::PRD::variable     > 
    8587                            <rulevar: local $variable_re= $Text::Nyarlax::Parser::PRD::variable_re  > 
    86     parse               :   <skip: ''> Content(s) 
     88                            <rulevar: local $h_level    = 1                                         > 
     89 
     90    parse               :   <skip: ''> /\n*/ Content(s) 
     91                        { 
     92                            my $tree = $item{'Content(s)'}; 
     93                               $tree = join_node( $tree, element => 'Section' ); 
     94                            $return = $tree; 
     95                        } 
    8796 
    8897    Content             :   Section | Paragraph 
    8998 
    90     Section             :   Heading 
    91                         { 
     99    Section             :   Heading Content(s?) 
     100                        { 
     101                            $h_level--; 
    92102                            my $elm = element( $item[0] ); 
    93                             $elm->push_content( $item{'Heading'} ); 
     103                            $elm->push_content( $item{'Heading'}, @{ $item{'Content(s?)'} } ); 
     104                            $elm->join_content( element => 'Section' ); 
    94105                            $return = $elm; 
    95106                        } 
    96107 
    97108    Heading             :   <rulevar: local $text_re = qr{(?: (?! $exclude_re ) [^\n=] )+}x > 
    98     Heading             :   /[=]{1,}/ InlineNode(s) "$item[1]" Blank Identifier(?) Blank /\n/ 
    99                         { 
     109    Heading             :   /[=]{$h_level}/ InlineNode(s) "$item[1]" Blank Identifier(?) Blank /\n*/ 
     110                        { 
     111                            $h_level++; 
    100112                            my $elm = element( $item[0] ); 
    101113 
     
    127139                        } 
    128140 
    129     OneLine             :   InlineNode(s) /\n/ 
     141    OneLine             :   ...!/[=]/ InlineNode(s) /\n/ 
    130142                        { 
    131143                            $return = [ @{ $item{'InlineNode(s)'} }, "\n" ];