texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

texinfo/tp Texinfo/Parser.pm t/30sectioning.t t...


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Parser.pm t/30sectioning.t t...
Date: Thu, 28 Oct 2010 20:11:32 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/10/28 20:11:32

Modified files:
        tp/Texinfo     : Parser.pm 
        tp/t           : 30sectioning.t 
        tp/t/results/coverage_braces: brace_opened_no_command.pl 
        tp/t/results/invalid_nestings: accents.pl center.pl in_table.pl 
                                       on_block_command_line.pl 
                                       on_index_entry_line.pl 
                                       on_itemize_line.pl 
                                       on_section_line.pl 
        tp/t/results/sectioning: nodename_parentheses.pl 

Log message:
        Parse anchor and check node and anchor.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.117&r2=1.118
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/30sectioning.t?cvsroot=texinfo&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/coverage_braces/brace_opened_no_command.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/accents.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/center.pl?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/in_table.pl?cvsroot=texinfo&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/on_block_command_line.pl?cvsroot=texinfo&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/on_index_entry_line.pl?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/on_itemize_line.pl?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/on_section_line.pl?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/nodename_parentheses.pl?cvsroot=texinfo&r1=1.1&r2=1.2

Patches:
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -b -r1.117 -r1.118
--- Texinfo/Parser.pm   28 Oct 2010 19:09:23 -0000      1.117
+++ Texinfo/Parser.pm   28 Oct 2010 20:11:32 -0000      1.118
@@ -1968,6 +1968,8 @@
         my $node = _parse_node_manual($arg);
         push @{$current->{'extra'}->{'nodes_manuals'}}, $node;
       }
+      _check_node_label($self, $current->{'extra'}->{'nodes_manuals'}->[0],
+                        $current->{'args'}->[0], $command, $line_nr);
     }
     $current = $current->{'parent'};
     # if a file was included, remove completly the include file command.
@@ -2065,6 +2067,35 @@
   return $line;
 }
 
+sub _check_empty_node($$$$)
+{
+  my $self = shift;
+  my $parsed_node = shift;
+  my $command = shift;
+  my $line_nr = shift;
+  if (!defined($parsed_node) or !$parsed_node->{'node_content'}
+      or $parsed_node->{'normalized'} !~ /\S/) {
+    _line_error ($self, sprintf($self->__("Empty argument in address@hidden"),
+                $command), $line_nr);
+    return 0;
+  } else {
+    return 1;
+  }
+}
+
+sub _check_node_label($$$$$)
+{
+  my $self = shift;
+  my $parsed_node = shift;
+  my $node = shift;
+  my $command = shift;
+  my $line_nr = shift;
+  if ($parsed_node and $parsed_node->{'manual_content'}) {
+    _line_error ($self, sprintf($self->__("Syntax for an external node used 
for `%s'"),
+          tree_to_texi($node)), $line_nr)
+  }
+  return _check_empty_node($self, $parsed_node, $command, $line_nr);
+}
 # the different types
 #c 'menu_entry'
 #c 'menu_entry'
@@ -2999,6 +3030,14 @@
                    and $brace_commands{$current->{'parent'}->{'cmdname'}} > 1);
              print STDERR "CLOSING address@hidden>{'parent'}->{'cmdname'}\n" 
if ($self->{'debug'});
              delete $current->{'parent'}->{'remaining_args'};
+            if ($current->{'parent'}->{'cmdname'} eq 'anchor') {
+              my $parsed_anchor = _parse_node_manual($current);
+              if (_check_node_label($self, $parsed_anchor, $current,
+                                $current->{'parent'}->{'cmdname'}, $line_nr)) {
+                $current->{'parent'}->{'special'}->{'normalized'} 
+                  = $parsed_anchor->{'normalized'};
+              }
+            }
              $current = $current->{'parent'}->{'parent'};
           # footnote caption closing, when there is a paragraph inside.
           } elsif ($context_brace_commands{$self->{'context_stack'}->[-1]}) {

Index: t/30sectioning.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/30sectioning.t,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- t/30sectioning.t    28 Oct 2010 19:09:24 -0000      1.6
+++ t/30sectioning.t    28 Oct 2010 20:11:32 -0000      1.7
@@ -49,6 +49,9 @@
 @chapter (manual)node
 
 Dummy section with (manual)node node syntax.
+
address@hidden(manual)anchor}.
+
 '],
 ['character_and_spaces_in_node',
 '

Index: t/results/coverage_braces/brace_opened_no_command.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/coverage_braces/brace_opened_no_command.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/coverage_braces/brace_opened_no_command.pl        24 Oct 2010 
19:08:32 -0000      1.2
+++ t/results/coverage_braces/brace_opened_no_command.pl        28 Oct 2010 
20:11:32 -0000      1.3
@@ -31,7 +31,10 @@
           ],
           'cmdname' => 'anchor',
           'contents' => [],
-          'parent' => {}
+          'parent' => {},
+          'special' => {
+            'normalized' => 'truc'
+          }
         },
         {
           'parent' => {},

Index: t/results/invalid_nestings/accents.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/invalid_nestings/accents.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/invalid_nestings/accents.pl       24 Oct 2010 19:08:32 -0000      
1.2
+++ t/results/invalid_nestings/accents.pl       28 Oct 2010 20:11:32 -0000      
1.3
@@ -130,7 +130,10 @@
                   ],
                   'cmdname' => 'anchor',
                   'contents' => [],
-                  'parent' => {}
+                  'parent' => {},
+                  'special' => {
+                    'normalized' => 'truc'
+                  }
                 }
               ],
               'parent' => {},

Index: t/results/invalid_nestings/center.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/invalid_nestings/center.pl,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- t/results/invalid_nestings/center.pl        26 Oct 2010 19:36:53 -0000      
1.7
+++ t/results/invalid_nestings/center.pl        28 Oct 2010 20:11:32 -0000      
1.8
@@ -61,7 +61,10 @@
               ],
               'cmdname' => 'anchor',
               'contents' => [],
-              'parent' => {}
+              'parent' => {},
+              'special' => {
+                'normalized' => 'in-anchor'
+              }
             },
             {
               'args' => [

Index: t/results/invalid_nestings/in_table.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/invalid_nestings/in_table.pl,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- t/results/invalid_nestings/in_table.pl      26 Oct 2010 19:36:53 -0000      
1.5
+++ t/results/invalid_nestings/in_table.pl      28 Oct 2010 20:11:32 -0000      
1.6
@@ -138,7 +138,10 @@
                   ],
                   'cmdname' => 'anchor',
                   'contents' => [],
-                  'parent' => {}
+                  'parent' => {},
+                  'special' => {
+                    'normalized' => 'in-anchor'
+                  }
                 },
                 {
                   'args' => [

Index: t/results/invalid_nestings/on_block_command_line.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/on_block_command_line.pl,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- t/results/invalid_nestings/on_block_command_line.pl 26 Oct 2010 19:36:53 
-0000      1.5
+++ t/results/invalid_nestings/on_block_command_line.pl 28 Oct 2010 20:11:32 
-0000      1.6
@@ -28,7 +28,10 @@
                   ],
                   'cmdname' => 'anchor',
                   'contents' => [],
-                  'parent' => {}
+                  'parent' => {},
+                  'special' => {
+                    'normalized' => 'in-anchor'
+                  }
                 }
               ],
               'parent' => {},
@@ -195,7 +198,10 @@
               ],
               'cmdname' => 'anchor',
               'contents' => [],
-              'parent' => {}
+              'parent' => {},
+              'special' => {
+                'normalized' => 'in-anchor'
+              }
             },
             {
               'args' => [

Index: t/results/invalid_nestings/on_index_entry_line.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/on_index_entry_line.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/results/invalid_nestings/on_index_entry_line.pl   26 Oct 2010 19:36:53 
-0000      1.4
+++ t/results/invalid_nestings/on_index_entry_line.pl   28 Oct 2010 20:11:32 
-0000      1.5
@@ -61,7 +61,10 @@
               ],
               'cmdname' => 'anchor',
               'contents' => [],
-              'parent' => {}
+              'parent' => {},
+              'special' => {
+                'normalized' => 'in-anchor'
+              }
             },
             {
               'args' => [

Index: t/results/invalid_nestings/on_itemize_line.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/on_itemize_line.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/results/invalid_nestings/on_itemize_line.pl       26 Oct 2010 19:36:53 
-0000      1.4
+++ t/results/invalid_nestings/on_itemize_line.pl       28 Oct 2010 20:11:32 
-0000      1.5
@@ -61,7 +61,10 @@
               ],
               'cmdname' => 'anchor',
               'contents' => [],
-              'parent' => {}
+              'parent' => {},
+              'special' => {
+                'normalized' => 'in-anchor'
+              }
             },
             {
               'args' => [

Index: t/results/invalid_nestings/on_section_line.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/on_section_line.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/results/invalid_nestings/on_section_line.pl       26 Oct 2010 19:36:53 
-0000      1.4
+++ t/results/invalid_nestings/on_section_line.pl       28 Oct 2010 20:11:32 
-0000      1.5
@@ -69,7 +69,10 @@
               ],
               'cmdname' => 'anchor',
               'contents' => [],
-              'parent' => {}
+              'parent' => {},
+              'special' => {
+                'normalized' => 'in-anchor'
+              }
             },
             {
               'args' => [

Index: t/results/sectioning/nodename_parentheses.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/nodename_parentheses.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/results/sectioning/nodename_parentheses.pl        28 Oct 2010 19:09:24 
-0000      1.1
+++ t/results/sectioning/nodename_parentheses.pl        28 Oct 2010 20:11:32 
-0000      1.2
@@ -577,6 +577,49 @@
           ],
           'parent' => {},
           'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => '(manual)anchor'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'parent' => {},
+              'special' => {
+                'normalized' => 'anchor'
+              }
+            },
+            {
+              'parent' => {},
+              'text' => '.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
         }
       ],
       'line_nr' => {
@@ -681,6 +724,13 @@
 $result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[0]{'parent'} 
= $result_trees{'nodename_parentheses'}{'contents'}[8];
 
$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[1];
 $result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[1]{'parent'} 
= $result_trees{'nodename_parentheses'}{'contents'}[8];
+$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[2]{'parent'} 
= $result_trees{'nodename_parentheses'}{'contents'}[8];
+$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3]{'contents'}[0];
+$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3];
+$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3]{'contents'}[1]{'parent'}
 = $result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3];
+$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[3]{'parent'} 
= $result_trees{'nodename_parentheses'}{'contents'}[8];
+$result_trees{'nodename_parentheses'}{'contents'}[8]{'contents'}[4]{'parent'} 
= $result_trees{'nodename_parentheses'}{'contents'}[8];
 $result_trees{'nodename_parentheses'}{'contents'}[8]{'parent'} = 
$result_trees{'nodename_parentheses'};
 
 $result_texis{'nodename_parentheses'} = '@node Top
@@ -708,6 +758,9 @@
 @chapter (manual)node
 
 Dummy section with (manual)node node syntax.
+
address@hidden(manual)anchor}.
+
 ';
 
 
@@ -730,9 +783,33 @@
 (manual)node
 
 Dummy section with (manual)node node syntax.
+
+.
+
 ';
 
-$result_errors{'nodename_parentheses'} = [];
+$result_errors{'nodename_parentheses'} = [
+  {
+    'error_line' => ':22: Syntax for an external node used for ` (manual)node
+\'
+',
+    'file_name' => '',
+    'line_nr' => 22,
+    'macro' => '',
+    'text' => 'Syntax for an external node used for ` (manual)node
+\'',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':27: Syntax for an external node used for 
`(manual)anchor\'
+',
+    'file_name' => '',
+    'line_nr' => 27,
+    'macro' => '',
+    'text' => 'Syntax for an external node used for `(manual)anchor\'',
+    'type' => 'error'
+  }
+];
 
 
 $result_indices{'nodename_parentheses'} = undef;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]