[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp Texinfo/Parser.pm t/02coverage.t t/t...
From: |
Patrice Dumas |
Subject: |
texinfo/tp Texinfo/Parser.pm t/02coverage.t t/t... |
Date: |
Sun, 26 Sep 2010 18:10:35 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 10/09/26 18:10:34
Modified files:
tp/Texinfo : Parser.pm
tp/t : 02coverage.t test_utils.pl
Added files:
tp/t/results/coverage: def.pl
Log message:
Fix @def* handling.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/02coverage.t?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_utils.pl?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/coverage/def.pl?cvsroot=texinfo&rev=1.1
Patches:
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- Texinfo/Parser.pm 26 Sep 2010 07:43:25 -0000 1.19
+++ Texinfo/Parser.pm 26 Sep 2010 18:10:33 -0000 1.20
@@ -83,6 +83,120 @@
$no_brace_commands{$no_brace_command} = 1;
}
+# commands taking a line as argument or no argument.
+# sectioning commands and def* commands are added below.
+# index commands are added dynamically.
+my %misc_commands = (
+ 'node' => {'arg' => 'line'}, # special arg
+ 'bye' => {'skip' => 'line'}, # no arg
+ # set, clear
+ 'set' => {'arg' => 'lineraw'}, # special arg
+ 'clear' => {'arg' => 1, 'skip' => 'line'}, # special arg
+ # comments
+ 'comment' => {'arg' => 'lineraw'},
+ 'c' => {'arg' => 'lineraw'},
+ # special
+ 'definfoenclose' => {'arg' => 'special'},
+ 'alias' => {'args' => 'special'},
+ # file names
+ 'setfilename' => {'arg' => 'line'},
+ 'verbatiminclude'=> {'arg' => 'line'},
+
+ 'raisesections' => {'skip' => 'line'}, # no arg
+ 'lowersections' => {'skip' => 'line'}, # no arg
+ 'contents' => {}, # no arg
+ 'shortcontents' => {}, # no arg
+ 'summarycontents'=> {}, # no arg
+ 'insertcopying'=> {}, # no arg
+ 'clickstyle' => {'arg' => 1}, # arg should be an @-command
+ # more relevant in preamble
+ 'documentencoding' => {'arg' => 1, 'skip' => 'line'},
+ 'setcontentsaftertitlepage' => {}, # no arg
+ 'setshortcontentsaftertitlepage' => {}, # no arg
+ 'novalidate' => {}, # no arg
+ 'dircategory'=> {'arg' => 'line'}, # line. Position with regard
+ # with direntry is significant
+ 'pagesizes' => {'arg' => 'line'}, # can have 2 args
+ # or one? 200mm,150mm 11.5in
+ 'finalout' => {'skip' => 'line'}, # no arg
+ 'paragraphindent' => {'skip' => 'line', 'arg' => 1}, # arg none asis
+ # or a number and forbids anything else on the line
+ 'firstparagraphindent' => {'skip' => 'line', 'arg' => 1}, # none insert
+ 'frenchspacing' => {'arg' => 1, 'skip' => 'line'}, # on off
+ # not so sure about 'skip' => 'line'
+ 'fonttextsize' => {'arg' => 1}, # 10 11
+ 'allowcodebreaks' => {'arg' => 1, 'skip' => 'line'}, # false or true
+ 'exampleindent' => {'skip' => 'line', 'arg' => 1}, # asis or a number
+ 'footnotestyle'=> {'skip' => 'line', 'arg' => 1}, # end and separate
+ # and nothing else on the line
+ 'afourpaper' => {'skip' => 'line'}, # no arg
+ 'afivepaper' => {'skip' => 'line'}, # no arg
+ 'afourlatex' => {'skip' => 'line'}, # no arg
+ 'afourwide' => {'skip' => 'line'}, # no arg
+ 'headings'=> {'skip' => 'line', 'arg' => 1},
+ #off on single double singleafter doubleafter
+ # interacts with setchapternewpage
+ 'setchapternewpage' => {'skip' => 'line', 'arg' => 1}, # off on odd
+ # FIXME for the following the @this* commands are not defined. Also
+ # @value and maybe macro invocations may also be delayed.
+ 'everyheading' => {'arg' => 'line'}, # @*heading @*footing use @|
+ 'everyfooting' => {'arg' => 'line'}, # + @thispage @thissectionname
@thissectionnum
+ 'evenheading' => {'arg' => 'line'}, # @thissection @thischaptername
@thischapternum
+ 'evenfooting' => {'arg' => 'line'}, # @thischapter @thistitle @thisfile
+ 'oddheading' => {'arg' => 'line'},
+ 'oddfooting' => {'arg' => 'line'},
+ 'smallbook' => {'skip' => 'line'}, # no arg
+ 'syncodeindex' => {'skip' => 'line', 'arg' => 2},
+ # args are index identifiers
+ 'synindex' => {'skip' => 'line', 'arg' => 2},
+ 'defindex' => {'skip' => 'line', 'arg' => 'special'}, # one identifier arg
+ 'defcodeindex' => {'skip' => 'line', 'arg' => 'special'}, # one identifier
arg
+ 'documentlanguage' => {'skip' => 'line', 'arg' => 1},
+ # language code arg
+ 'kbdinputstyle' => {'skip' => 'whitespace', 'arg' => 1}, # code
+ #example distinct
+ 'everyheadingmarks' => {'skip' => 'line', 'arg' => 1}, # top bottom
+ 'everyfootingmarks' => {'skip' => 'whitespace', 'arg' => 1},
+ 'evenheadingmarks' => {'skip' => 'whitespace', 'arg' => 1},
+ 'oddheadingmarks' => {'skip' => 'whitespace', 'arg' => 1},
+ 'evenfootingmarks' => {'skip' => 'whitespace', 'arg' => 1},
+ 'oddfootingmarks' => {'skip' => 'whitespace', 'arg' => 1},
+ # not valid for info (should be in @iftex)
+ 'cropmarks' => {}, # no arg
+
+ # formatting
+ 'center' => {'arg' => 'line'},
+ 'printindex' => {'arg' => 1, 'skip' => 'line'},
+ 'listoffloats' => {'arg' => 'line'},
+ # especially in titlepage
+ 'shorttitle' => {'arg' => 'line'},
+ 'shorttitlepage' => {'arg' => 'line'},
+ 'settitle' => {'arg' => 'line'},
+ 'author' => {'arg' => 'line'},
+ 'subtitle' => {'arg' => 'line'},
+ 'title' => {'arg' => 'line'},
+ 'sp' => {'skip' => 'line', 'arg' => 1}, # no arg
+ # at the end of line or a numerical arg
+ 'page' => {}, # no arg (pagebreak)
+ 'need' => {'skip' => 'line', 'arg' => 1}, # one numerical/real arg
+ # formatting
+ 'noindent' => {'skip' => 'whitespace'}, # no arg
+ 'indent' => {'skip' => 'whitespace'},
+ 'exdent' => {'skip' => 'space'},
+ 'headitem' => {'skip' => 'space'},
+ 'item' => {'skip' => 'space'}, # or line, depending on the context
+ 'itemx' => {'skip' => 'space'},
+ 'tab' => {'skip' => 'space'},
+ # not valid for info (should be in @iftex)
+ 'vskip' => {'arg' => 'lineraw'}, # arg line in TeX
+ # obsolete @-commands.
+ 'refill' => {}, # no arg (obsolete, to be ignored)
+ # Remove spaces and end of lines after the
+ # commands? If no, they can lead to empty lines
+ 'quote-arg' => {'skip' => 'line'},
+ 'allow-recursion' => {'skip' => 'line'},
+);
+
# command with braces. value is the max number of arguments.
my %brace_commands;
@@ -139,7 +253,9 @@
# commands that have a possible content before an item
my %block_item_commands;
-foreach my $bracketed_line_argument_command(#'multitable',
+
+my %def_commands;
+foreach my $def_command(
'deffn',
'defvr',
'deftypefn',
@@ -161,8 +277,11 @@
'defmethod',
'deftypemethod'
) {
- $block_commands{$bracketed_line_argument_command} = 'def';
- $block_commands{$bracketed_line_argument_command.'x'} = 'def';
+ $block_commands{$def_command} = 'def';
+ $misc_commands{$def_command.'x'} = {'arg' => 'line'};
+ $def_commands{$def_command} = 1;
+ $def_commands{$def_command.'x'} = 1;
+ $def_commands{'line_'.$def_command} = 1;
}
$block_commands{'multitable'} = 'multitable';
@@ -241,114 +360,6 @@
$forbidden_index_name{$other_forbidden_index_name} = 1;
}
-my %misc_commands = (
- 'node' => {'arg' => 'line'}, # special arg
- 'bye' => {'skip' => 'line'}, # no arg
- # set, clear
- 'set' => {'arg' => 'lineraw'}, # special arg
- 'clear' => {'arg' => 1, 'skip' => 'line'}, # special arg
- # comments
- 'comment' => {'arg' => 'lineraw'},
- 'c' => {'arg' => 'lineraw'},
- # special
- 'definfoenclose' => {'arg' => 'special'},
- 'alias' => {'args' => 'special'},
- # file names
- 'setfilename' => {'arg' => 'line'},
- 'verbatiminclude'=> {'arg' => 'line'},
-
- 'raisesections' => {'skip' => 'line'}, # no arg
- 'lowersections' => {'skip' => 'line'}, # no arg
- 'contents' => {}, # no arg
- 'shortcontents' => {}, # no arg
- 'summarycontents'=> {}, # no arg
- 'insertcopying'=> {}, # no arg
- 'clickstyle' => {'arg' => 1}, # arg should be an @-command
- # more relevant in preamble
- 'documentencoding' => {'arg' => 1, 'skip' => 'line'},
- 'setcontentsaftertitlepage' => {}, # no arg
- 'setshortcontentsaftertitlepage' => {}, # no arg
- 'novalidate' => {}, # no arg
- 'dircategory'=> {'arg' => 'line'}, # line. Position with regard
- # with direntry is significant
- 'pagesizes' => {'skip' => 'line', 'arg' => 'line'}, # can have 2 args
- # or one? 200mm,150mm 11.5in
- 'finalout' => {'skip' => 'line'}, # no arg
- 'paragraphindent' => {'skip' => 'line', 'arg' => 1}, # arg none asis
- # or a number and forbids anything else on the line
- 'firstparagraphindent' => {'skip' => 'line', 'arg' => 1}, # none insert
- 'frenchspacing' => {'arg' => 1, 'skip' => 'line'}, # on off
- # not so sure about 'skip' => 'line'
- 'fonttextsize' => {'arg' => 1}, # 10 11
- 'allowcodebreaks' => {'arg' => 1, 'skip' => 'line'}, # false or true
- 'exampleindent' => {'skip' => 'line', 'arg' => 1}, # asis or a number
- 'footnotestyle'=> {'skip' => 'line', 'arg' => 1}, # end and separate
- # and nothing else on the line
- 'afourpaper' => {'skip' => 'line'}, # no arg
- 'afivepaper' => {'skip' => 'line'}, # no arg
- 'afourlatex' => {'skip' => 'line'}, # no arg
- 'afourwide' => {'skip' => 'line'}, # no arg
- 'headings'=> {'skip' => 'line', 'arg' => 1},
- #off on single double singleafter doubleafter
- # interacts with setchapternewpage
- 'setchapternewpage' => {'skip' => 'line', 'arg' => 1}, # off on odd
- 'everyheading' => {'arg' => 'line'}, # @*heading @*footing use @|
- 'everyfooting' => {'arg' => 'line'}, # + @thispage @thissectionname
@thissectionnum
- 'evenheading' => {'arg' => 'line'}, # @thissection @thischaptername
@thischapternum
- 'evenfooting' => {'arg' => 'line'}, # @thischapter @thistitle @thisfile
- 'oddheading' => {'arg' => 'line'},
- 'oddfooting' => {'arg' => 'line'},
- 'smallbook' => {'skip' => 'line'}, # no arg
- 'syncodeindex' => {'skip' => 'line', 'arg' => 2},
- # args are index identifiers
- 'synindex' => {'skip' => 'line', 'arg' => 2},
- 'defindex' => {'skip' => 'line', 'arg' => 'special'}, # one identifier arg
- 'defcodeindex' => {'skip' => 'line', 'arg' => 'special'}, # one identifier
arg
- 'documentlanguage' => {'skip' => 'line', 'arg' => 1},
- # language code arg
- 'kbdinputstyle' => {'skip' => 'whitespace', 'arg' => 1}, # code
- #example distinct
- 'everyheadingmarks' => {'skip' => 'line', 'arg' => 1}, # top bottom
- 'everyfootingmarks' => {'skip' => 'whitespace', 'arg' => 1},
- 'evenheadingmarks' => {'skip' => 'whitespace', 'arg' => 1},
- 'oddheadingmarks' => {'skip' => 'whitespace', 'arg' => 1},
- 'evenfootingmarks' => {'skip' => 'whitespace', 'arg' => 1},
- 'oddfootingmarks' => {'skip' => 'whitespace', 'arg' => 1},
- # not valid for info (should be in @iftex)
- 'cropmarks' => {}, # no arg
-
- # formatting
- 'center' => {'arg' => 'line'},
- 'printindex' => {'arg' => 1, 'skip' => 'line'},
- 'listoffloats' => {'arg' => 'line'},
- # especially in titlepage
- 'shorttitle' => {'arg' => 'line'},
- 'shorttitlepage' => {'arg' => 'line'},
- 'settitle' => {'arg' => 'line'},
- 'author' => {'arg' => 'line'},
- 'subtitle' => {'arg' => 'line'},
- 'title' => {'arg' => 'line'},
- 'sp' => {'skip' => 'line', 'arg' => 1}, # no arg
- # at the end of line or a numerical arg
- 'page' => {}, # no arg (pagebreak)
- 'need' => {'skip' => 'line', 'arg' => 1}, # one numerical/real arg
- # formatting
- 'noindent' => {'skip' => 'whitespace'}, # no arg
- 'indent' => {'skip' => 'whitespace'},
- 'exdent' => {'skip' => 'space'},
- 'headitem' => {'skip' => 'space'},
- 'item' => {'skip' => 'space'}, # or line, depending on the context
- 'itemx' => {'skip' => 'space'},
- 'tab' => {'skip' => 'space'},
- # not valid for info (should be in @iftex)
- 'vskip' => {'arg' => 'lineraw'}, # arg line in TeX
- # obsolete @-commands.
- 'refill' => {}, # no arg (obsolete, to be ignored)
- # Remove spaces and end of lines after the
- # commands? If no, they can lead to empty lines
- 'quote-arg' => {'skip' => 'line'},
- 'allow-recursion' => {'skip' => 'line'},
-);
# commands that should only appear at the root level and contain up to
# the next root command
@@ -1095,6 +1106,17 @@
push @{$current->{'contents'}},
{ 'cmdname' => $command, 'parent' => $current };
+ if ($def_commands{$command}) {
+ my $base_command = $command;
+ $base_command =~ s/x$//;
+ if (!$current->{'cmdname'}
+ or $current->{'cmdname'} ne $base_command) {
+ return undef if $self->_line_error(sprintf($self->__("Must be
in address@hidden' environment to use address@hidden'"), $base_command,
$command), $line_nr);
+ }
+ push @{$self->{'context'}}, 'def';
+ $current->{'contents'}->[-1]->{'type'} = "line_$base_command";
+ }
+
foreach my $arg (@$args) {
push @{$current->{'contents'}->[-1]->{'args'}},
{ 'type' => 'misc_arg', 'text' => $arg,
@@ -1127,16 +1149,32 @@
($current, $error) = _end_paragraph($self, $current, $line_nr);
return undef if ($error);
$line =~ s/\s*//;
+ # the def command holds a line_def* which corresponds with the
+ # definition line. This allows to have a treatement similar
+ # with def*x.
+ if ($def_commands{$command}) {
+ push @{$self->{'context'}}, 'def';
+ push @{$current->{'contents'}}, {
+ 'parent' => $current,
+ 'cmdname' => $command,
+ 'contents' => [] };
+ $current = $current->{'contents'}->[-1];
+ push @{$current->{'contents'}}, {
+ 'type' => "line_$command",
+ 'parent' => $current,
+ };
+ } else {
push @{$current->{'contents'}}, { 'cmdname' => $command,
'parent' => $current,
'contents' => [] };
+ }
$current = $current->{'contents'}->[-1];
my $arg_number = $block_commands{$command}
if ($block_commands{$command}
and $block_commands{$command} =~ /^\d+$/);
if ($arg_number
- or ($command eq 'multitable')
- or ($block_commands{$command} eq 'def')) {
+ or $command eq 'multitable'
+ or $def_commands{$command}) {
$current->{'args'} = [ {
'type' => 'block_line_arg',
'contents' => [],
@@ -1148,8 +1186,6 @@
# both an argument and an @-command
$current->{'cmdname'} = 'columnfractions';
}
- push @{$self->{'context'}}, 'def'
- if ($block_commands{$command} eq 'def');
} else {
push @{$self->{'context'}}, 'preformatted'
if ($preformatted_commands{$command});
@@ -1245,9 +1281,11 @@
return undef if _line_error ($self,
$self->__("Unexpected \@"), $line_nr);
} elsif ($separator eq '{') {
- if ($current->{'parent'} and $current->{'parent'}->{'cmdname'}
- and ($block_commands{$current->{'parent'}->{'cmdname'}} eq
'multitable'
- or $block_commands{$current->{'parent'}->{'cmdname'}} eq
'def')) {
+ if ($current->{'parent'}
+ and (($current->{'parent'}->{'cmdname'}
+ and $current->{'parent'}->{'cmdname'} eq 'multitable')
+ or ($current->{'parent'}->{'type'}
+ and $def_commands{$current->{'parent'}->{'type'}}))) {
push @{$current->{'contents'}},
{ 'type' => 'bracketed', 'contents' => [],
'parent' => $current };
@@ -1273,6 +1311,7 @@
# first is the arg.
print STDERR "CLOSING address@hidden>{'parent'}->{'cmdname'}\n"
if ($self->{'debug'});
$current = $current->{'parent'}->{'parent'};
+ # footnote caption closing
} elsif ($context_brace_commands{$self->{'context'}->[-1]}) {
my $error;
($current, $error) = _end_paragraph($self, $current, $line_nr);
@@ -1319,8 +1358,18 @@
if ($line ne '') {
die "Remaining line: $line\n";
}
- if ($current->{'type'}
+ # def line
+ if ($current->{'parent'}
+ and $current->{'parent'}->{'type'}
+ and $def_commands{$current->{'parent'}->{'type'}}) {
+ my $def_context = pop @{$self->{'context'}};
+ die "BUG: def_context $def_context "._print_current($current)
+ if ($def_context ne 'def');
+ $current = $current->{'parent'}->{'parent'};
+ # other block command lines
+ } elsif ($current->{'type'}
and $current->{'type'} eq 'block_line_arg') {
+ # @multitable @columnfractions
if ($current->{'cmdname'}
and $current->{'cmdname'} eq 'columnfractions') {
# the columnfraction content should be text only, maybe
@@ -1382,6 +1431,7 @@
{ 'type' => 'fraction', 'text' => $fraction,
'parent' => $current };
}
+ # @multitable args
} elsif ($current->{'parent'} and $current->{'parent'}->{'cmdname'}
and $current->{'parent'}->{'cmdname'} eq 'multitable') {
my $line_arg = $current;
@@ -1428,10 +1478,6 @@
# this is in order to have $current->{'parent'} being the
multitable
$current = $line_arg;
- } elsif ($current->{'parent'} and $current->{'parent'}->{'cmdname'}
- and $brace_commands{$current->{'parent'}->{'cmdname'}}
- and $brace_commands{$current->{'parent'}->{'cmdname'}} eq
'def') {
- pop @{$self->{'context'}};
}
$current = $current->{'parent'};
if ($current->{'cmdname'}
@@ -1440,6 +1486,7 @@
'contents' => [], 'parent', $current };
$current = $current->{'contents'}->[-1];
}
+ # misc command line arguments
} elsif ($current->{'type'}
and $current->{'type'} eq 'misc_line_arg') {
# first parent is the @command, second is the parent
@@ -1466,7 +1513,8 @@
if (defined($root->{'text'})) {
$result .= $root->{'text'};
} else {
- if ($root->{'cmdname'}) {
+ if ($root->{'cmdname'}
+ or ($root->{'type'} and $def_commands{$root->{'type'}})) {
#print STDERR "cmd: $root->{'cmdname'}\n";
$result .= _expand_cmd_args_to_texi($root);
}
@@ -1490,20 +1538,22 @@
sub _expand_cmd_args_to_texi ($) {
my $cmd = shift;
- my $result = '@'.$cmd->{'cmdname'};
+ my $cmdname = $cmd->{'cmdname'};
+ $cmdname = '' if (!$cmd->{'cmdname'}
+ and $cmd->{'type'} and $def_commands{$cmd->{'type'}});
+ my $result = '@'.$cmdname if ($cmdname);
#print STDERR "Expand $result\n";
# must be before the next condition
- if ($block_commands{$cmd->{'cmdname'}}
- and ($block_commands{$cmd->{'cmdname'}} eq 'def'
- or $block_commands{$cmd->{'cmdname'}} eq 'multitable')) {
+ if ($block_commands{$cmdname}
+ and ($def_commands{$cmdname}
+ or $block_commands{$cmdname} eq 'multitable')
+ and $cmd->{'args'}) {
foreach my $arg (@{$cmd->{'args'}}) {
my $arg_expanded = tree_to_texi ($arg);
-# $arg_expanded = '{'.$arg_expanded.'}'
-# if ($arg->{'type'} and $arg->{'type'} eq 'bracketed');
$result .= ' '.$arg_expanded;
}
- } elsif ($block_commands{$cmd->{'cmdname'}}
- and $block_commands{$cmd->{'cmdname'}} ne 'raw'
+ } elsif ($block_commands{$cmdname}
+ and $block_commands{$cmdname} ne 'raw'
and defined($cmd->{'args'})) {
die "bad args type (".ref($cmd->{'args'}).") $cmd->{'args'}\n"
if (ref($cmd->{'args'}) ne 'ARRAY');
@@ -1512,52 +1562,52 @@
$result .= tree_to_texi ($arg) . ', ';
}
$result =~ s/, $//;
- } elsif ($cmd->{'cmdname'} eq 'macro') {
+ } elsif ($cmdname eq 'macro') {
$result .= ' ' .$cmd->{'args'}->[0]->{'text'}. ' '
. $cmd->{'args'}->[1]->{'text'};
} elsif (defined($cmd->{'args'})) {
my $braces;
$braces = 1 if (($cmd->{'args'}->[0]->{'type'}
and $cmd->{'args'}->[0]->{'type'} eq 'brace_command_arg')
- or ($context_brace_commands{$cmd->{'cmdname'}}));
+ or ($context_brace_commands{$cmdname}));
$result .= '{' if ($braces);
$result .= ' ' if ($cmd->{'args'}->[0]->{'type'}
and $cmd->{'args'}->[0]->{'type'} eq
'space_command_arg');
- if ($cmd->{'cmdname'} eq 'verb') {
+ if ($cmdname eq 'verb') {
$result .= $cmd->{'type'};
}
#print STDERR "".Data::Dumper->Dump([$cmd]);
my $arg_nr = 0;
foreach my $arg (@{$cmd->{'args'}}) {
- if (exists($brace_commands{$cmd->{'cmdname'}})) {
+ if (exists($brace_commands{$cmdname})) {
$result .= ', ' if ($arg_nr);
$arg_nr++;
} else {
$result .= ' '
- unless ($cmd->{'cmdname'} eq 'c' or $cmd->{'cmdname'} eq 'comment');
+ unless ($cmdname eq 'c' or $cmdname eq 'comment');
}
$result .= tree_to_texi ($arg);
}
- if ($cmd->{'cmdname'} eq 'verb') {
+ if ($cmdname eq 'verb') {
$result .= $cmd->{'type'};
}
- #die "Shouldn't have args: $cmd->{'cmdname'}\n";
+ #die "Shouldn't have args: $cmdname\n";
$result .= '}' if ($braces);
- } elsif ($misc_commands{$cmd->{'cmdname'}}
- and $misc_commands{$cmd->{'cmdname'}}->{'skip'}) {
- if ($misc_commands{$cmd->{'cmdname'}}->{'skip'} eq 'space') {
+ } elsif ($misc_commands{$cmdname}
+ and $misc_commands{$cmdname}->{'skip'}) {
+ if ($misc_commands{$cmdname}->{'skip'} eq 'space') {
$result .= ' ';
}
}
- if ($misc_commands{$cmd->{'cmdname'}}
- and $misc_commands{$cmd->{'cmdname'}}->{'skip'}
- and $misc_commands{$cmd->{'cmdname'}}->{'skip'} eq 'line') {
+ if ($misc_commands{$cmdname}
+ and $misc_commands{$cmdname}->{'skip'}
+ and $misc_commands{$cmdname}->{'skip'} eq 'line') {
$result .="\n";
}
- if (defined($block_commands{$cmd->{'cmdname'}})) {
+ if (defined($block_commands{$cmdname})) {
# there is an end of line if there is a comment, for example
chomp($result);
- $result .= "\n";
+ $result .= "\n" unless ($def_commands{$cmdname});
}
#print STDERR "Result: $result\n";
return $result;
Index: t/02coverage.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/02coverage.t,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/02coverage.t 25 Sep 2010 21:17:57 -0000 1.10
+++ t/02coverage.t 26 Sep 2010 18:10:34 -0000 1.11
@@ -87,10 +87,8 @@
@end vtable
@end format
'],
-);
-my @todo = (
['def','
address@hidden c--ategory d--effn_name a--rguments...
address@hidden {c--ategory} d--effn_name a--rguments...
d--effn
@end deffn
@@ -124,5 +122,3 @@
run_all ('coverage', address@hidden, $arg_test_case,
$arg_generate, $arg_debug);
-
-1;
Index: t/test_utils.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_utils.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/test_utils.pl 25 Sep 2010 13:58:21 -0000 1.10
+++ t/test_utils.pl 26 Sep 2010 18:10:34 -0000 1.11
@@ -4,6 +4,9 @@
use Texinfo::Parser qw(:all);
use Data::Dumper;
use Data::Compare;
+#use Data::Diff;
+#use Data::Transformer;
+#use Struct::Compare;
use Getopt::Long qw(GetOptions);
use vars qw(%result_texts %result_trees %result_errors);
@@ -18,6 +21,9 @@
our $arg_test_case = shift @ARGV;
+#my $remove_parent = sub {my $h = shift; delete $h->{'parent'}};
+#my $transformer = Data::Transformer->new('hash'=>$remove_parent);
+
sub new_test ($;$$)
{
my $name = shift;
@@ -43,7 +49,6 @@
my $parser = Texinfo::Parser->parser({'test' => 1, 'debug' =>
$self->{'debug'}});
print STDERR " TEST $test_name\n" if ($self->{'debug'});
my $result = $parser->parse_texi_text($test_text, 1);
- $result = $parser->tree () if (!$result);
my $file = "t/results/$self->{'name'}/$test_name.pl";
my $new_file = $file.'.new';
@@ -59,6 +64,7 @@
open (OUT, ">$out_file") or die "Open $out_file: $!\n";
print OUT 'use vars qw(%result_texts %result_trees
%result_errors);'."\n\n";
+ #print STDERR "Generate: ".Data::Dumper->Dump([$result], ['$res']);
my $out_result = "".Data::Dumper->Dump([$result],
['$result_trees{\''.$test_name.'\'}']);
$out_result .= "\n".'$result_texts{\''.$test_name.'\'} =
\''.tree_to_texi($result)."';\n\n";
$out_result .= "".Data::Dumper->Dump([$parser->errors()],
['$result_errors{\''.$test_name.'\'}']) ."\n\n";
@@ -69,7 +75,24 @@
}
if (!$self->{'generate'}) {
require $file;
+
+ #$transformer->traverse($result_trees{$test_name});
+ #$transformer->traverse($result);
+ {
+ #local $Data::Dumper::Purity = 1;
+ local $Data::Dumper::Sortkeys = 1;
+ local $Data::Dumper::Indent = 1;
+ #if (!Struct::Compare::compare($result, $result_trees{$test_name})) {
+ # print STDERR "".Data::Dumper->Dump([$result],['$new']);
+ # print STDERR "".Data::Dumper->Dump([$result_trees{$test_name}],
['$ref']);
+ #}
+
+ #my $diff = Data::Diff->new($result, $result_trees{$test_name});
+ #print STDERR "".Data::Dumper->Dump([$diff->raw()], ['$diff']);
+ }
ok (Data::Compare::Compare($result, $result_trees{$test_name}, {
'ignore_hash_keys' => [qw(parent)] }), $test_name.' tree' );
+ #ok(Struct::Compare::compare($result, $result_trees{$test_name}),
$test_name.' tree' );
+ #ok (Data::Compare::Compare($result, $result_trees{$test_name}),
$test_name.' tree' );
ok (Data::Compare::Compare($parser->errors(), $result_errors{$test_name}),
$test_name.' errors' );
is (tree_to_texi($result), $result_texts{$test_name}, $test_name.' text' );
}
Index: t/results/coverage/def.pl
===================================================================
RCS file: t/results/coverage/def.pl
diff -N t/results/coverage/def.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/coverage/def.pl 26 Sep 2010 18:10:34 -0000 1.1
@@ -0,0 +1,791 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'def'} = {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'cmdname' => 'deffn',
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'c--ategory'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' d--effn_name a--rguments...
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'd--effn
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ],
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'cmdname' => 'deffn',
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'cate--gory de--ffn_name ar--guments more args '
+ },
+ {
+ 'cmdname' => '*',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => ' even more so
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'def--fn
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ],
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'cmdname' => 'deffn',
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'fset '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'i'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'var',
+ 'parent' => {},
+ 'remaining_args' => 0
+ },
+ {
+ 'parent' => {},
+ 'text' => ' a g
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'cmde'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' truc '
+ },
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'Command '
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'log trap'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' '
+ },
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'Command '
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' log trap1'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' '
+ },
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'Command '
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'log trap2 '
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' '
+ },
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'cmde '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'id ule'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'b',
+ 'parent' => {},
+ 'remaining_args' => 0
+ },
+ {
+ 'parent' => {},
+ 'text' => ' truc
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'cmde2 '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'id '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'i'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'samp',
+ 'parent' => {},
+ 'remaining_args' => 0
+ },
+ {
+ 'parent' => {},
+ 'text' => ' ule'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'b',
+ 'parent' => {},
+ 'remaining_args' => 0
+ },
+ {
+ 'parent' => {},
+ 'text' => ' truc
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' machin
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' '
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'bidule machin'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'truc'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' machin
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'truc'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' followed by a comment
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => ' comment
+',
+ 'type' => 'misc_arg'
+ }
+ ],
+ 'cmdname' => 'c',
+ 'parent' => {}
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'Various deff lines
+'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'truc'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' after a deff item
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => ' comment
+',
+ 'type' => 'misc_arg'
+ }
+ ],
+ 'cmdname' => 'c',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => 'text in def item for second def item
+'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'truc'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'bracketed'
+ },
+ {
+ 'parent' => {},
+ 'text' => ' deffnx before end deffn
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'deffnx',
+ 'parent' => {},
+ 'type' => 'line_deffn'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ],
+ 'parent' => {}
+ }
+ ]
+};
+$result_trees{'def'}{'contents'}[0]{'parent'} = $result_trees{'def'};
+$result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[1]{'contents'}[0];
+$result_trees{'def'}{'contents'}[1]{'contents'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[1];
+$result_trees{'def'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[1]{'contents'}[1];
+$result_trees{'def'}{'contents'}[1]{'contents'}[1]{'parent'} =
$result_trees{'def'}{'contents'}[1];
+$result_trees{'def'}{'contents'}[1]{'parent'} = $result_trees{'def'};
+$result_trees{'def'}{'contents'}[2]{'parent'} = $result_trees{'def'};
+$result_trees{'def'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'def'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'def'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'def'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[3]{'contents'}[0];
+$result_trees{'def'}{'contents'}[3]{'contents'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[3];
+$result_trees{'def'}{'contents'}[3]{'contents'}[1]{'contents'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[3]{'contents'}[1];
+$result_trees{'def'}{'contents'}[3]{'contents'}[1]{'parent'} =
$result_trees{'def'}{'contents'}[3];
+$result_trees{'def'}{'contents'}[3]{'parent'} = $result_trees{'def'};
+$result_trees{'def'}{'contents'}[4]{'parent'} = $result_trees{'def'};
+$result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0]{'contents'}[3]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[1]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[1]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0]{'contents'}[3]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0]{'contents'}[4]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[2]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[2];
+$result_trees{'def'}{'contents'}[5]{'contents'}[2]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0]{'contents'}[3]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0]{'contents'}[4]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[3]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[3];
+$result_trees{'def'}{'contents'}[5]{'contents'}[3]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0]{'contents'}[3]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0]{'contents'}[4]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[4]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[4];
+$result_trees{'def'}{'contents'}[5]{'contents'}[4]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[5]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[5]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[6];
+$result_trees{'def'}{'contents'}[5]{'contents'}[6]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[7]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[7]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[7]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[7]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[7];
+$result_trees{'def'}{'contents'}[5]{'contents'}[7]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0]{'contents'}[2];
+$result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0]{'contents'}[3]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[8]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[8];
+$result_trees{'def'}{'contents'}[5]{'contents'}[8]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[9]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[9]{'args'}[0]{'contents'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[9]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[9]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[9]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[9]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[9]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[9];
+$result_trees{'def'}{'contents'}[5]{'contents'}[9]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[10]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[10]{'args'}[0]{'contents'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[10]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[10]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[10]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[10]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[10]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[10];
+$result_trees{'def'}{'contents'}[5]{'contents'}[10]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[11]{'args'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[11];
+$result_trees{'def'}{'contents'}[5]{'contents'}[11]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[0]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[12];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[1]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[12];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[2];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[2]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[12];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[3]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[12];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4]{'args'}[0];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4]{'args'}[0]{'parent'}
= $result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'contents'}[4]{'parent'} =
$result_trees{'def'}{'contents'}[5]{'contents'}[12];
+$result_trees{'def'}{'contents'}[5]{'contents'}[12]{'parent'} =
$result_trees{'def'}{'contents'}[5];
+$result_trees{'def'}{'contents'}[5]{'parent'} = $result_trees{'def'};
+
+$result_texts{'def'} = '
address@hidden {c--ategory} d--effn_name a--rguments...
+d--effn
address@hidden deffn
+
address@hidden cate--gory de--ffn_name ar--guments more args @* even more so
+def--fn
address@hidden deffn
+
address@hidden fset @var{i} a g
address@hidden {cmde} truc {}
address@hidden Command {log trap} {}
address@hidden Command { log trap1} {}
address@hidden Command {log trap2 } {}
address@hidden cmde @b{id ule} truc
address@hidden cmde2 @b{id @samp{i} ule} truc
address@hidden {} machin
address@hidden {} {bidule machin}
address@hidden {truc} machin
address@hidden {truc} followed by a comment
address@hidden comment
+Various deff lines
address@hidden {truc} after a deff item
address@hidden comment
+text in def item for second def item
address@hidden {truc} deffnx before end deffn
address@hidden deffn
+';
+
+$result_errors{'def'} = [
+ {
+ 'error_line' => ':24: Must be in address@hidden' environment to use
address@hidden'
+',
+ 'file_name' => '',
+ 'line_nr' => 24,
+ 'macro' => '',
+ 'text' => 'Must be in address@hidden' environment to use address@hidden'',
+ 'type' => 'error'
+ },
+ {
+ 'error_line' => ':27: Must be in address@hidden' environment to use
address@hidden'
+',
+ 'file_name' => '',
+ 'line_nr' => 27,
+ 'macro' => '',
+ 'text' => 'Must be in address@hidden' environment to use address@hidden'',
+ 'type' => 'error'
+ }
+];
+
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- texinfo/tp Texinfo/Parser.pm t/02coverage.t t/t...,
Patrice Dumas <=