[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp TODO texi2any.pl Texinfo/Common.pm T...
From: |
Patrice Dumas |
Subject: |
texinfo/tp TODO texi2any.pl Texinfo/Common.pm T... |
Date: |
Thu, 25 Aug 2011 07:33:34 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 11/08/25 07:33:33
Modified files:
tp : TODO texi2any.pl
tp/Texinfo : Common.pm
tp/Texinfo/Convert: Converter.pm
tp/t : 60macro.t
Added files:
tp/Texinfo/Convert: XML.pm
tp/t/results/macro: backslash_in_arg.pl
Log message:
New unfinished Texinfo XML converter.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.160&r2=1.161
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/texi2any.pl?cvsroot=texinfo&r1=1.52&r2=1.53
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Common.pm?cvsroot=texinfo&r1=1.58&r2=1.59
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Converter.pm?cvsroot=texinfo&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/XML.pm?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/60macro.t?cvsroot=texinfo&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/backslash_in_arg.pl?cvsroot=texinfo&rev=1.1
Patches:
Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.160
retrieving revision 1.161
diff -u -b -r1.160 -r1.161
--- TODO 21 Aug 2011 14:19:13 -0000 1.160
+++ TODO 25 Aug 2011 07:33:32 -0000 1.161
@@ -1,3 +1,10 @@
+Test
address@hidden headword, , :
+ to define address@hidden' as an Info
+ formatting command that inserts nothing before and a colon after the
+ argument to address@hidden'.
+
+
Mail Karl about Xref Command Expansion
Quotation mark commands are likewise replaced by their Unicode values
Index: texi2any.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/texi2any.pl,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- texi2any.pl 23 Aug 2011 18:26:55 -0000 1.52
+++ texi2any.pl 25 Aug 2011 07:33:32 -0000 1.53
@@ -184,6 +184,7 @@
require Texinfo::Structuring;
require Texinfo::Convert::Info;
require Texinfo::Convert::HTML;
+require Texinfo::Convert::XML;
require DebugTexinfo::DebugCount;
# determine configuration directories.
@@ -769,6 +770,10 @@
'simple_menu' => 1,
'converter' => sub{Texinfo::Convert::HTML->converter(@_)},
},
+ 'xml' => {
+ 'nodes_tree' => 1,
+ 'converter' => sub{Texinfo::Convert::XML->converter(@_)},
+ },
'pdf' => {
'texi2dvi_format' => 1,
},
Index: Texinfo/Common.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Common.pm,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- Texinfo/Common.pm 20 Aug 2011 22:26:52 -0000 1.58
+++ Texinfo/Common.pm 25 Aug 2011 07:33:32 -0000 1.59
@@ -197,8 +197,8 @@
'comment' => 'lineraw',
'c' => 'lineraw',
# special
- 'definfoenclose' => 5,
- 'alias' => 3,
+ 'definfoenclose' => 3,
+ 'alias' => 2,
# number of arguments is not known in advance.
'columnfractions' => 1,
# file names
Index: Texinfo/Convert/Converter.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- Texinfo/Convert/Converter.pm 21 Aug 2011 14:19:13 -0000 1.28
+++ Texinfo/Convert/Converter.pm 25 Aug 2011 07:33:33 -0000 1.29
@@ -527,7 +527,7 @@
return '<!-- ' . $text . ' -->' . "\n";
}
-my %xml_accent_entities = (
+our %xml_accent_entities = (
'"', 'uml',
'~', 'tilde',
'^', 'circ',
Index: t/60macro.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/60macro.t,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- t/60macro.t 26 Feb 2011 15:10:20 -0000 1.31
+++ t/60macro.t 25 Aug 2011 07:33:33 -0000 1.32
@@ -207,6 +207,19 @@
@macro1 @samp{f\irst arg}, second arg
'],
+['backslash_in_arg',
+'@node Top
+
address@hidden funindex {TEXT}
address@hidden \TEXT\
address@hidden macro
+
address@hidden \\\\q
address@hidden
address@hidden \q
address@hidden
address@hidden fn
+'],
['protect_comma_macro_line',
'@macro macro2 { arg }
we get \arg\ and another \arg\
Index: Texinfo/Convert/XML.pm
===================================================================
RCS file: Texinfo/Convert/XML.pm
diff -N Texinfo/Convert/XML.pm
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ Texinfo/Convert/XML.pm 25 Aug 2011 07:33:33 -0000 1.1
@@ -0,0 +1,611 @@
+# XML.pm: output tree as Texinfo XML.
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License,
+# or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Original author: Patrice Dumas <address@hidden>
+
+# msg Karl: printindex
+
+
+package Texinfo::Convert::XML;
+
+use 5.00405;
+use strict;
+
+use Texinfo::Convert::Converter;
+use Texinfo::Common;
+use Texinfo::Convert::Unicode;
+# for debugging
+use Texinfo::Convert::Texinfo;
+use Data::Dumper;
+use Carp qw(cluck);
+
+require Exporter;
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
address@hidden = qw(Exporter Texinfo::Convert::Converter);
+
+# Items to export into callers namespace by default. Note: do not export
+# names by default without a very good reason. Use EXPORT_OK instead.
+# Do not simply export all your public functions/methods/constants.
+
+# This allows declaration use Texinfo::Convert::Text ':all';
+# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
+# will save memory.
+%EXPORT_TAGS = ( 'all' => [ qw(
+ convert
+) ] );
+
address@hidden = ( @{ $EXPORT_TAGS{'all'} } );
+
address@hidden = qw(
+);
+
+$VERSION = '0.01';
+
+my %defaults = (
+ 'ENABLE_ENCODING' => 1,
+ 'SHOW_MENU' => 1,
+ 'EXTENSION' => 'xml',
+ 'perl_encoding' => 'utf8',
+ 'encoding_name' => 'utf-8',
+ 'OUTFILE' => undef,
+ 'SUBDIR' => undef,
+ 'output_format' => 'xml',
+);
+
+
+my %specific_xml_commands_formatting = (
+ '*' => '&linebreak;',
+ ' ' => '<spacecmd type="spc">',
+ "\t" => '<spacecmd type="tab">',
+ "\n" => '<spacecmd type="nl">',
+ '-' => '&hyphenbreak;', # hyphenation hint
+ '|' => '', # used in formatting commands @evenfooting and friends
+ '/' => '&slashbreak;',
+ ':' => '&noeos;',
+ '!' => '&eosexcl;',
+ '?' => '&eosquest;',
+ '.' => '&eosperiod;',
+ '@' => '&arobase;',
+ '}' => '{',
+ '{' => '}',
+ '\\' => '&backslash;', # should only appear in math
+
+ 'TeX' => '&tex;',
+ 'LaTeX' => '&latex;',
+ 'bullet' => '•',
+ 'copyright' => '©right;',
+ 'registeredsymbol' => '®istered;',
+ 'dots' => '&dots',
+ 'enddots' => '&enddots',
+ 'error' => '&errorglyph;',
+ 'expansion' => '&expansion;',
+ 'arrow' => '→',
+ 'click' => '<click command="arrow">',
+ 'minus' => '−',
+ 'point' => '&point;',
+ 'print' => '&printglyph;',
+ 'result' => '&result;',
+ 'l' => '&lslash;',
+ 'L' => '&Lslash;',
+ 'today' => '<today/>',
+ 'comma' => ',',
+);
+
+my %xml_commands_formatting
+ = %{$Texinfo::Convert::Converter::default_xml_commands_formatting{'normal'}};
+
+foreach my $command (keys(%specific_xml_commands_formatting)) {
+ $xml_commands_formatting{$command}
+ = $specific_xml_commands_formatting{$command}
+}
+
+my %xml_accents = (
+ '=' => 'macr',
+# following are not entities
+ 'H' => 'doubleacute',
+ 'u' => 'breve',
+ 'v' => 'caron',
+);
+
+my %xml_accent_types = (%Texinfo::Convert::xml_accent_entities, %xml_accents);
+
+# no entity
+my @other_accents = ('dotaccent', 'tieaccent', 'ubaraccent', 'udotaccent');
+foreach my $accent (@other_accents) {
+ $xml_accent_types{$accent} = $accent;
+}
+
+my %xml_misc_elements_with_arg_map = (
+ 'title' => 'booktitle',
+ 'subtitle' => 'booksubtitle'
+);
+
+my %misc_command_line_attributes = (
+ 'setfilename' => 'file',
+ 'documentencoding' => 'encoding',
+ 'verbatiminclude' => 'file',
+ 'documentlanguage' => 'languge',
+);
+
+# printindex is special
+my %misc_command_numbered_arguments_attributes = (
+ 'definfoenclose' => [ 'command', 'open', 'close' ],
+ 'alias' => [ 'new', 'existing' ],
+ 'syncodeindex' => [ 'from', 'to' ],
+ 'synindex' => [ 'from', 'to' ],
+ 'sp' => [ 'lines' ],
+);
+
+my %xml_misc_commands = %Texinfo::Common::misc_commands;
+
+foreach my $command ('item', 'headitem', 'itemx', 'tab') {
+ delete $xml_misc_commands{$command};
+}
+
+my %ignored_types;
+foreach my $type ('empty_line_after_command', #'preamble',
+ 'empty_spaces_after_command', 'spaces_at_end',
+ 'empty_spaces_before_argument', 'empty_spaces_before_paragraph',
+ 'empty_spaces_after_close_brace',
+ 'empty_space_at_end_def_bracketed') {
+ $ignored_types{$type} = 1;
+}
+
+sub _code_options($)
+{
+ my $options = shift;
+ my $code_options;
+ if (defined($options)) {
+ $code_options = { %$options };
+ } else {
+ $code_options = {};
+ }
+ $code_options->{'code'} = 1;
+ return $code_options;
+}
+
+sub output($$)
+{
+ my $self = shift;
+ my $root = shift;
+ return $self->convert($root);
+}
+
+sub convert($$;$);
+
+sub convert($$;$)
+{
+ my $self = shift;
+ my $root = shift;
+
+ if (0) {
+ print STDERR "root\n";
+ print STDERR " Command: $root->{'cmdname'}\n" if ($root->{'cmdname'});
+ print STDERR " Type: $root->{'type'}\n" if ($root->{'type'});
+ print STDERR " Text: $root->{'text'}\n" if (defined($root->{'text'}));
+ #print STDERR " Special def_command: $root->{'extra'}->{'def_command'}\n"
+ # if (defined($root->{'extra'}) and $root->{'extra'}->{'def_command'});
+ }
+
+ return '' if ($root->{'type'} and $ignored_types{$root->{'type'}});
+ my $result = '';
+ if (defined($root->{'text'})) {
+ $result = $self->xml_protect_text($root->{'text'});
+ if (! defined($root->{'type'}) or $root->{'type'} ne 'raw') {
+ #if (!$options->{'code'}) {
+ $result =~ s/``/&textldquo;/g;
+ $result =~ s/\'\'/&textrdquo;/g;
+ $result =~ s/---/&textmdash;/g;
+ $result =~ s/--/&textndash;/g;
+ #}
+ }
+ }
+ if ($root->{'cmdname'}) {
+
+ my $command = $root->{'cmdname'};
+ if (defined($xml_commands_formatting{$root->{'cmdname'}})) {
+ if ($root->{'cmdname'} eq 'click'
+ and $root->{'extra'}
+ and defined($root->{'extra'}->{'clickstyle'})) {
+ return "<click command=\"$root->{'extra'}->{'clickstyle'}\">";
+ }
+ return $xml_commands_formatting{$root->{'cmdname'}};
+ } elsif ($xml_accent_types{$root->{'cmdname'}}) {
+ $result = "<accent type=\"$xml_accent_types{$root->{'cmdname'}}\">";
+ $result .= $self->convert($root->{'args'}->[0])
+ if ($root->{'args'} and $root->{'args'}->[0]);
+ $result .= '</accent>';
+ return $result;
+ } elsif (exists($xml_misc_commands{$root->{'cmdname'}})) {
+ my $command;
+ if ($xml_misc_elements_with_arg_map{$root->{'cmdname'}}) {
+ $command = $xml_misc_elements_with_arg_map{$root->{'cmdname'}};
+ } else {
+ $command = $root->{'cmdname'};
+ }
+ my $type = $xml_misc_commands{$root->{'cmdname'}};
+ if ($type eq 'text') {
+ my $attribute = '';
+ if ($misc_command_line_attributes{$root->{'cmdname'}}) {
+ if ($root->{'extra'} and defined($root->{'extra'}->{'text_arg'})) {
+ $attribute = "
$misc_command_line_attributes{$root->{'cmdname'}}=\""
+ . $self->xml_protect_text($root->{'extra'}->{'text_arg'})
."\"";
+ }
+ }
+ return "<$command${attribute}>".$self->convert($root->{'args'}->[0])
+ ."</$command>\n"
+ } elsif ($type eq 'line') {
+ return '' if ($root->{'cmdname'} eq 'end');
+ if ($root->{'cmdname'} eq 'node') {
+ # FIXME
+ return '';
+ } elsif ($Texinfo::Common::root_commands{$root->{'cmdname'}}) {
+ # FIXME
+ return '';
+ }
+ my $attribute = '';
+ if ($root->{'cmdname'} eq 'listoffloats' and $root->{'extra'}
+ and $root->{'extra'}->{'type'}
+ and defined($root->{'extra'}->{'type'}->{'normalized'})) {
+ $attribute = " type=\"$root->{'extra'}->{'type'}->{'normalized'}\n";
+ }
+ return "<$command${attribute}>".$self->convert($root->{'args'}->[0])
+ ."</$command>\n";
+ } elsif ($type eq 'skipline' or $type eq 'noarg') {
+ return "<$command></$command>\n";
+ } elsif ($type eq 'special') {
+ if ($root->{'cmdname'} eq 'clear' or $root->{'cmdname'} eq 'set') {
+ my $attribute = '';
+ if ($root->{'args'} and $root->{'args'}->[0]
+ and defined($root->{'args'}->[0]->{'text'})) {
+ $attribute = " name=\""
+ .$self->xml_protect_text($root->{'args'}->[0]->{'text'})."\"";
+ }
+ my $value = '';
+ if ($root->{'cmdname'} eq 'set' and $root->{'args'} and
$root->{'args'}->[1]
+ and defined($root->{'args'}->[1]->{'text'})) {
+ $value = $self->xml_protect_text($root->{'args'}->[1]->{'text'});
+ }
+ return "<${command}value${attribute}>$value</${command}value>\n";
+ } elsif ($root->{'cmdname'} eq 'clickstyle') {
+ my $attribute = '';
+ my $value = '';
+ if ($root->{'args'} and $root->{'args'}->[0]
+ and defined($root->{'args'}->[0]->{'text'})) {
+ my $click_command = $root->{'args'}->[0]->{'text'};
+ $click_command =~ s/^\@//;
+ $attribute = "
command=\"".$self->xml_protect_text($click_command)."\"";
+ $value = $self->xml_protect_text($root->{'args'}->[0]->{'text'});
+ };
+ return "<${command}${attribute}>$value</${command}>\n";
+ }
+ } elsif ($type eq 'lineraw') {
+ if ($root->{'cmdname'} eq 'c' or $root->{'cmdname'} eq 'comment') {
+ return $self->xml_default_comment($root->{'args'}->[0]->{'text'})
+ } else {
+ my $value = '';
+ if ($root->{'args'} and $root->{'args'}->[0]
+ and defined($root->{'args'}->[0]->{'text'})) {
+ $value = $self->xml_protect_text($root->{'args'}->[0]->{'text'});
+ }
+ return "<${command}>$value</${command}>\n";
+ }
+ } else {
+ print STDERR "BUG: unknown msic_command style $type" if ($type !~
/^\d$/);
+ my $args_attributes;
+ if ($misc_command_numbered_arguments_attributes{$root->{'cmdname'}}) {
+ $args_attributes =
$misc_command_numbered_arguments_attributes{$root->{'cmdname'}};
+ } else {
+ $args_attributes = ['value'];
+ }
+ my $attribute = '';
+ my $arg_index = 0;
+ if (defined($root->{'args'})) {
+ foreach my $arg_attribute (@{$args_attributes}) {
+ if (defined ($root->{'args'}->[$arg_index])) {
+ $attribute .= " $arg_attribute=\""
+ .$self->xml_protect_text($root->{'args'}->[$arg_index])."\"";
+ }
+ $arg_index++;
+ }
+ }
+ return "<$command${attribute}></$command>\n";
+ }
+ } elsif ($root->{'args'}
+ and exists($Texinfo::Common::brace_commands{$root->{'cmdname'}}))
{
+ return "<$root->{'cmdname'}>".$self->convert($root->{'args'}->[0])
+ ."</$root->{'cmdname'}>";
+ } elsif (exists($Texinfo::Common::block_commands{$root->{'cmdname'}})) {
+ $result .= "<$root->{'cmdname'}>\n";
+ }
+ }
+ #my $url = convert($root->{'args'}->[0], _code_options($options));
+ #} elsif ($root->{'cmdname'} eq 'verbatiminclude') {
+ # my $verbatim_include_verbatim
+ # = Texinfo::Common::expand_verbatiminclude($options->{'converter'},
+ # $root);
+ # if (defined($verbatim_include_verbatim)) {
+ # $result .= convert($verbatim_include_verbatim, $options);
+ # }
+ # # we always want an end of line even if is was eaten by a
+ # chomp ($result);
+ # $result .= "\n";
+ # }
+ #}
+ #} elsif ($root->{'cmdname'} eq 'item'
+ # and $root->{'parent'}->{'cmdname'}
+ # and $root->{'parent'}->{'cmdname'} eq 'enumerate') {
+ # $result .= enumerate_item_representation(
+ # $root->{'parent'}->{'extra'}->{'enumerate_specification'},
+ # $root->{'extra'}->{'item_number'}) . '. ';
+ #}
+ #}
+ #if ($root->{'type'} and $root->{'type'} eq 'def_line') {
+ #print STDERR "$root->{'extra'}->{'def_command'}\n";
+ # if ($root->{'extra'} and $root->{'extra'}->{'def_args'}
+ # and @{$root->{'extra'}->{'def_args'}}) {
+ # my $parsed_definition_category
+ # = Texinfo::Common::definition_category ($options->{'converter'},
$root);
+ # my @contents = ($parsed_definition_category, {'text' => ': '});
+ # if ($root->{'extra'}->{'def_parsed_hash'}->{'type'}) {
+ # push @contents, ($root->{'extra'}->{'def_parsed_hash'}->{'type'},
+ # {'text' => ' '});
+ # }
+ # push @contents, $root->{'extra'}->{'def_parsed_hash'}->{'name'};
+#
+ # my $arguments = Texinfo::Common::definition_arguments_content($root);
+ # if ($arguments) {
+ # push @contents, {'text' => ' '};
+ # push @contents, @$arguments;
+ # }
+ # push @contents, {'text' => "\n"};
+ # $result = convert({'contents' => address@hidden,
_code_options($options));
+ # }
+ #$result = convert($root->{'args'}->[0], $options) if ($root->{'args'});
+ #} elsif ($root->{'type'} and $root->{'type'} eq 'menu_entry') {
+ # foreach my $arg (@{$root->{'args'}}) {
+ # if ($arg->{'type'} eq 'menu_entry_node') {
+ # $result .= convert($arg, _code_options($options));
+ # } else {
+ # $result .= convert($arg, $options);
+ # }
+ # }
+ #}
+ if ($root->{'contents'}) {
+ if ($root->{'cmdname'}
+ and $Texinfo::Common::preformatted_code_commands{$root->{'cmdname'}}) {
+ #$options = _code_options($options);
+ }
+ if (ref($root->{'contents'}) ne 'ARRAY') {
+ cluck "contents not an array($root->{'contents'}).";
+ }
+ foreach my $content (@{$root->{'contents'}}) {
+ $result .= $self->convert($content);
+ }
+ }
+ $result = '{'.$result.'}'
+ if ($root->{'type'} and $root->{'type'} eq 'bracketed'
+ and (!$root->{'parent'}->{'type'} or
+ ($root->{'parent'}->{'type'} ne 'block_line_arg'
+ and $root->{'parent'}->{'type'} ne 'misc_line_arg')));
+ if ($root->{'cmdname'}
+ and exists($Texinfo::Common::block_commands{$root->{'cmdname'}})) {
+ $result .= "</$root->{'cmdname'}>\n";
+ }
+ return $result;
+}
+
+
+#set_default('NUMBER_SECTIONS', 0);
+#node special
+
+
+#special -> args -> {type 'misc_arg' , text }
+
+#_parse_line_command_args (number of args)
+# 'args' => {'type' => 'misc_line_arg', 'contents' => []}
+# 'extra' => { 'misc_args' => []}
+
+# my $result = "<float name=\"$label_texi\">\n";
+# my $style = $float->{'style'};
+# $style = '' if (!defined($style));
+# $result .= "<floattype>$style</floattype>\n";
+# $result .= "<floatpos></floatpos>\n";
+# $result .= $text;
+# return $result."</float>\n";
+
+# return '<verbatim xml:space="preserve">' . &$protect_text($text) .
'</verbatim>';
+
+
+#<pagesizes>arg</pagesizes>
+#<vskip>vskip line</vskip>
+#<clickstyle command="bullet">@bullet</clickstyle>
+
+#<alias new="new" existing="existing"></alias>
+#<definfoenclose command="phoo" open="//" close="\\"></definfoenclose>
+#<syncodeindex from="from_index" to="to_index></syncodeindex>
+
+#<headings value="off"></headings>
+
+#<filename file="filename.xml"></filename>
+
+#<columnfraction fraction="0.4"></columnfraction><columnfraction
fraction="0.6"></columnfraction>
+
+#If prototypes are used, something along
+#<columnprototype fraction="0.7">prototy</columnprototype><columnprototype
fraction="0.5">pro</columnprototype>
+
+#<accent type="acute">e</accent>
+#<dotless>i</dotless>
+
+#<nodenext explicit="on">next node</nodenext>
+
+#<table><tableitem><item>@item<item>
+#<item>@itemx</item> </tableitem>
+#<tableterm>$text ."</tableterm>\n";
+#sub xml_table_line($)
+# return "<item>$text</item>" unless $only_inter_item_commands;
+#
+# $result .= $text ."</tableterm>\n";
+
+
+#sub xml_list_item($$$$$$$$$)
+# return '<item>' . $text . "</item>\n";
+#
+#sub xml_row($$;$$)
+#<thead>@headitem ... </thead>
+#<tbody>@item... </tbody>
+# $result .= "<row>$text</row>";
+
+#cell
+# return "<entry>" . $text . '</entry>';
+#
+#<$format_command>
+#itemize
+#<itemfunction>$itemfunction</itemfunction>
+#enumerate
+#<$format_command first=\"$enumerate_style\">
+
+#$format_map{'copying'} = '';
+#$format_map{'titlepage'} = 'titlepage';
+#$format_map{'documentdescription'} = 'documentdescription';
+#$format_map{'group'} = 'group';
+#$format_map{'raggedright'} = 'raggedright';
+
+# $complex_format_map{$complex_format}->{'begin'} = "<$complex_format
xml:space=\"preserve\">";
+# $complex_format_map{$complex_format}->{'end'} = "</$complex_format>";
+
+#$format_map{'menu'} = 'menu';
+#$format_map{'detailmenu'} = 'detailmenu';
+#$format_map{'direntry'} = 'direntry';
+
+# my $result = "<email><emailaddress>$mail</emailaddress>";
+# $result .= "<emailname>".main::normalise_space($text)."</emailname>";
+# return $result . '</email>';
+
+# my $result = "<uref><urefurl>$url</urefurl>";
+# $result .= "<urefdesc>$text</urefdesc>" if ($text ne '');
+# $result .= "<urefreplacement>$replacement</urefreplacement>" if
($replacement ne '');
+# return $result.'</uref>';
+
+# return "<titlefont>$args->[0]</titlefont>";
+# return "<math>$text</math>";
+
+#xml_menu_description
+# return "<menucomment>$text</menucomment>\n</menuentry>";
+
+#sub xml_menu_link($$$$$$$$$$)
+# return
"<menuentry>\n<menunode>$menunode_normalized</menunode>\n<menutitle>$menutitle</menutitle>\n";
+
+#xml_index_entry_label
+# return "<indexterm
index=\"${index_name}\">${formatted_entry_reference}</indexterm>";
+
+#sub xml_acronym_like($$$$$$)
+# $command = 'abbrev' if ($command eq 'abbr');
+# my $opening =
"<${command}><${command}word>$acronym_text</${command}word>";
+# if ($with_explanation)
+# {
+# $opening .= "<${command}desc>$explanation_text</${command}desc>";
+# }
+# return $opening . "</${command}>";
+
+#<footnote>'
+#
+# my $tag = 'inlineimage';
+# $tag = 'image' if ($preformatted or !$in_paragraph);
+#
+# return "<$tag width=\"$width\" height=\"$height\" name=\"".
&$protect_text($base)."\"
extension=\"$extension\"><alttext>$alt</alttext></$tag>";
+#
+# return "<sp lines=\"$number\"></sp>\n";
+
+#quotation
+# return "<$command>\n" . $text . "</$command>\n";
+
+
+# my $language = get_conf('documentlanguage');
+#set_default('DOCTYPE', '<!DOCTYPE texinfo PUBLIC "-//GNU//DTD TexinfoML
V4.12//EN" "http://www.gnu.org/software/texinfo/dtd/4.12/texinfo.dtd">');
+#<?xml version="1.0"?>
+#$doctype
+#<texinfo xml:lang="$language">
+#$setfilename
+
+#</texinfo>
+
+#/heading/
+#"<${command}>$text</${command}>\n";
+
+
+# $result .= xml_close_section();
+# $result .= "<node>\n";
+# $result .= "<nodename>$element->{'text'}</nodename>\n";
+# foreach my $direction('nodenext', 'nodeprev', 'nodeup')
+# {
+# if ($element->{$direction})
+# {
+# $result .=
"<${direction}>$element->{$direction}->{'text'}</${direction}>\n";
+# }
+# }
+# $result .= "</node>\n";
+#
+# xml_element_tag = $element->{'tag_level'}
+# $result .= xml_close_section();
+# $result .=
"<".xml_element_tag($element).">\n<title>$element->{'text'}</title>\n";
+# $xml_current_section = $element;
+
+#xml_close_section
+# my $element = $xml_current_section;
+# if (!defined($element))
+# {
+# return '';
+# }
+# my $result = '';
+
+# $xml_current_section = undef;
+# # there is a special case for a @chapter that is a child of @top
+# # but should not be considered as is, since it is also toplevel.
+# # @part, however may have other toplevel elements as children.
+# return '' if ($element->{'child'} and (!$element->{'child'}->{'toplevel'}
or $element->{'tag'} ne 'top'));
+# $result .= '</'.xml_element_tag($element).">\n";
+#
+# my $current = $element;
+# # the second condition is such that top is closed only if it has
+# # sub-elements below chapter.
+# # the third condition is such that elements with a next element are
+# # only closed for the last element, except when the next element is
+# # toplevel and below top, such that @top is closed before the first
+# # @chapter if there are @section or the like below @top
+# while ($current->{'sectionup'} and !($current->{'sectionup'}->{'tag'} eq
'top' and $current->{'toplevel'}) and (!$current->{'childnext'} or
($current->{'childnext'}->{'toplevel'} and $current->{'sectionup'}->{'tag'} eq
'top')))
+# {
+# $current = $current->{'sectionup'};
+# $result .= '</'.xml_element_tag($current).">\n";
+# }
+# return $result;
+#
+#
+#%def_format_xml = (
+# 'deffn' => [ ['category', 'category'], ['function', 'name'] ],
+# 'defvr' => [ ['category', 'category'], ['variable', 'name'] ],
+# 'deftypefn' => [ ['category', 'category'], ['type', 'type'], ['function',
'name'] ],
+# 'deftypeop' => [ ['category', 'category'], ['type', 'type'], ['operation',
'name'] ],
+# 'deftypevr' => [ ['category', 'category'], ['type', 'type'], ['variable',
'name'] ],
+# 'defcv' => [ ['category' , 'category'], ['class', 'class'], ['classvar',
'name'] ],
+# 'deftypecv' => [ ['category', 'category'], ['type', 'type'], ['classvar',
'name'] ],
+# 'defop' => [ ['category', 'category'], ['class', 'class'], ['operation',
'name'] ],
+# 'deftp' => [ ['category', 'category'], ['datatype', 'name'] ]
+#);
+
+
+1;
Index: t/results/macro/backslash_in_arg.pl
===================================================================
RCS file: t/results/macro/backslash_in_arg.pl
diff -N t/results/macro/backslash_in_arg.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/macro/backslash_in_arg.pl 25 Aug 2011 07:33:33 -0000 1.1
@@ -0,0 +1,483 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'backslash_in_arg'} = {
+ 'contents' => [
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'text_root'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'extra' => {
+ 'command' => {}
+ },
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'Top'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'funindex',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'TEXT',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '@findex \\TEXT\\
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'extra' => {
+ 'arg_line' => ' funindex {TEXT}
+',
+ 'args_index' => {
+ 'TEXT' => 0
+ },
+ 'macrobody' => '@findex \\TEXT\\
+'
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 3,
+ 'macro' => ''
+ },
+ 'parent' => {}
+ },
+ {
+ 'extra' => {
+ 'command' => {}
+ },
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'extra' => {
+ 'command' => {}
+ },
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => '\\\\q'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'findex',
+ 'extra' => {
+ 'index_entry' => {
+ 'command' => {},
+ 'content' => [
+ {}
+ ],
+ 'in_code' => 1,
+ 'index_at_command' => 'findex',
+ 'index_name' => 'fn',
+ 'index_prefix' => 'f',
+ 'key' => '\\\\q',
+ 'node' => {},
+ 'number' => 1
+ },
+ 'misc_content' => []
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => 'funindex'
+ },
+ 'parent' => {}
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'extra' => {
+ 'command' => {}
+ },
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => '\\r'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'findex',
+ 'extra' => {
+ 'index_entry' => {
+ 'command' => {},
+ 'content' => [
+ {}
+ ],
+ 'in_code' => 1,
+ 'index_at_command' => 'findex',
+ 'index_name' => 'fn',
+ 'index_prefix' => 'f',
+ 'key' => '\\r',
+ 'node' => {},
+ 'number' => 2
+ },
+ 'misc_content' => []
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 8,
+ 'macro' => 'funindex'
+ },
+ 'parent' => {}
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'extra' => {
+ 'command' => {}
+ },
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => '\\q'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'findex',
+ 'extra' => {
+ 'index_entry' => {
+ 'command' => {},
+ 'content' => [
+ {}
+ ],
+ 'in_code' => 1,
+ 'index_at_command' => 'findex',
+ 'index_name' => 'fn',
+ 'index_prefix' => 'f',
+ 'key' => '\\q',
+ 'node' => {},
+ 'number' => 3
+ },
+ 'misc_content' => []
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 9,
+ 'macro' => 'funindex'
+ },
+ 'parent' => {}
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'extra' => {
+ 'command' => {}
+ },
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => '\\r'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'findex',
+ 'extra' => {
+ 'index_entry' => {
+ 'command' => {},
+ 'content' => [
+ {}
+ ],
+ 'in_code' => 1,
+ 'index_at_command' => 'findex',
+ 'index_name' => 'fn',
+ 'index_prefix' => 'f',
+ 'key' => '\\r',
+ 'node' => {},
+ 'number' => 4
+ },
+ 'misc_content' => []
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 10,
+ 'macro' => 'funindex'
+ },
+ 'parent' => {}
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'extra' => {
+ 'command' => {}
+ },
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'fn'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'printindex',
+ 'extra' => {
+ 'misc_args' => [
+ 'fn'
+ ]
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 11,
+ 'macro' => ''
+ },
+ 'parent' => {}
+ }
+ ],
+ 'extra' => {
+ 'node_content' => [
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [],
+ 'normalized' => 'Top'
+ }
+ ],
+ 'normalized' => 'Top'
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 1,
+ 'macro' => ''
+ },
+ 'parent' => {}
+ }
+ ],
+ 'type' => 'document_root'
+};
+$result_trees{'backslash_in_arg'}{'contents'}[0]{'parent'} =
$result_trees{'backslash_in_arg'};
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[0]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[1]{'args'}[1]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[1]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[2]{'extra'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[2]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[3]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'extra'}{'index_entry'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'extra'}{'index_entry'}{'content'}[0]
=
$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'extra'}{'index_entry'}{'node'}
= $result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'extra'}{'misc_content'}
=
$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'extra'}{'index_entry'}{'content'};
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[4]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'extra'}{'index_entry'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'extra'}{'index_entry'}{'content'}[0]
=
$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'extra'}{'index_entry'}{'node'}
= $result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'extra'}{'misc_content'}
=
$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'extra'}{'index_entry'}{'content'};
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[5]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'extra'}{'index_entry'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'extra'}{'index_entry'}{'content'}[0]
=
$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'args'}[0]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'extra'}{'index_entry'}{'node'}
= $result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'extra'}{'misc_content'}
=
$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'extra'}{'index_entry'}{'content'};
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[6]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'extra'}{'index_entry'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'extra'}{'index_entry'}{'content'}[0]
=
$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'args'}[0]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'extra'}{'index_entry'}{'node'}
= $result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'extra'}{'misc_content'}
=
$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'extra'}{'index_entry'}{'content'};
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[7]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'args'}[0];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'args'}[0]{'parent'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'contents'}[8]{'parent'} =
$result_trees{'backslash_in_arg'}{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'extra'}{'node_content'}[0] =
$result_trees{'backslash_in_arg'}{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}
= $result_trees{'backslash_in_arg'}{'contents'}[1]{'extra'}{'node_content'};
+$result_trees{'backslash_in_arg'}{'contents'}[1]{'parent'} =
$result_trees{'backslash_in_arg'};
+
+$result_texis{'backslash_in_arg'} = '@node Top
+
address@hidden funindex {TEXT}
address@hidden \\TEXT\\
address@hidden macro
+
address@hidden \\\\q
address@hidden \\r
address@hidden \\q
address@hidden \\r
address@hidden fn
+';
+
+
+$result_texts{'backslash_in_arg'} = '
+
+';
+
+$result_sectioning{'backslash_in_arg'} = {};
+
+$result_nodes{'backslash_in_arg'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'Top'
+ },
+ 'node_up' => {
+ 'extra' => {
+ 'manual_content' => [
+ {
+ 'text' => 'dir'
+ }
+ ],
+ 'top_node_up' => {}
+ },
+ 'type' => 'top_node_up'
+ }
+};
+$result_nodes{'backslash_in_arg'}{'node_up'}{'extra'}{'top_node_up'} =
$result_nodes{'backslash_in_arg'};
+
+$result_menus{'backslash_in_arg'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'Top'
+ }
+};
+
+$result_errors{'backslash_in_arg'} = [];
+
+
+1;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- texinfo/tp TODO texi2any.pl Texinfo/Common.pm T...,
Patrice Dumas <=