[Top][All Lists]
[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;