[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp Texinfo/Parser.pm t/08misc_commands....
From: |
Patrice Dumas |
Subject: |
texinfo/tp Texinfo/Parser.pm t/08misc_commands.... |
Date: |
Sat, 02 Oct 2010 17:22:53 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 10/10/02 17:22:53
Modified files:
tp/Texinfo : Parser.pm
tp/t : 08misc_commands.t 60macro.t
tp/t/results/misc_commands: sp.pl
Added files:
tp/t/results/macro: complex_argument.pl macro_in_macro_arg.pl
macro_in_macro_arg_simpler.pl
nested_macro_call.pl two_macros_on_a_line.pl
Log message:
Handle @if* blocks.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/08misc_commands.t?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/60macro.t?cvsroot=texinfo&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/complex_argument.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_in_macro_arg.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_in_macro_arg_simpler.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/nested_macro_call.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/two_macros_on_a_line.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/misc_commands/sp.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.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- Texinfo/Parser.pm 2 Oct 2010 14:28:01 -0000 1.36
+++ Texinfo/Parser.pm 2 Oct 2010 17:22:52 -0000 1.37
@@ -70,7 +70,8 @@
'aliases' => {},
'indices' => [],
'values' => {},
- 'macros' => {}
+ 'macros' => {},
+ 'expanded_formats', []
);
my %no_brace_commands; # commands never taking braces
@@ -255,7 +256,7 @@
$menu_commands{$menu_command} = 1;
};
-# commands delimiting blocks, typically with an @end.
+# commands delimiting blocks, with an @end.
# Value is either the number of arguments on the line separated by
# commas or the type of command, 'raw', 'def' or 'multitable'.
my %block_commands;
@@ -313,12 +314,21 @@
$preformatted_commands{$preformatted_command} = 1;
}
+my @out_formats = ('html', 'tex', 'xml', 'docbook');
# macro is special
-foreach my $raw_command ('html', 'tex', 'xml', 'docbook', 'verbatim',
+foreach my $raw_command (@out_formats, 'verbatim',
'ignore', 'macro', 'rmacro') {
$block_commands{$raw_command} = 'raw';
}
+foreach my $command (@out_formats, 'info', 'plaintext') {
+ $block_commands{'if' . $command} = 'conditional';
+ $block_commands{'ifnot' . $command} = 'conditional';
+}
+
+$block_commands{'ifset'} = 'conditional';
+$block_commands{'ifclear'} = 'conditional';
+
# 'macro' ?
foreach my $block_command_one_arg('table', 'ftable', 'vtable',
'itemize', 'enumerate', 'quotation', 'small_quotation') {
@@ -432,7 +442,8 @@
$begin_line_commands{$block_command} = 1;
$default_no_paragraph_commands{$block_command} = 1;
$close_paragraph_commands{$block_command} = 1
- unless ($block_commands{$block_command} eq 'raw');
+ unless ($block_commands{$block_command} eq 'raw' or
+ $block_commands{$block_command} eq 'conditional');
}
$close_paragraph_commands{'verbatim'} = 1;
@@ -504,6 +515,9 @@
$parser->{'errors_warnings'} = [];
$parser->{'errors_nrs'} = 0;
$parser->{'context_stack'} = [ $parser->{'context'} ];
+ foreach my $expanded_format(@{$parser->{'expanded_formats'}}) {
+ $parser->{'expanded_formats_hash'}->{$expanded_format} = 1;
+ }
return $parser;
}
@@ -1029,6 +1043,8 @@
$self->{'tree'} = $root;
my $current = $root;
+ $self->{'conditionals_stack'} = [];
+
my $line_nr;
NEXT_LINE:
@@ -1049,7 +1065,8 @@
# raw format or verb
(($current->{'cmdname'}
and $block_commands{$current->{'cmdname'}}
- and $block_commands{$current->{'cmdname'}} eq 'raw')
+ and ($block_commands{$current->{'cmdname'}} eq 'raw'
+ or $block_commands{$current->{'cmdname'}} eq 'conditional'))
or
($current->{'parent'} and $current->{'parent'}->{'cmdname'}
and $current->{'parent'}->{'cmdname'} eq 'verb')
@@ -1103,10 +1120,11 @@
}
while (1) {
- # in a raw block command
+ # in a raw or ignored conditional block command
if ($current->{'cmdname'} and
$block_commands{$current->{'cmdname'}} and
- ($block_commands{$current->{'cmdname'}} eq 'raw')) {
+ ($block_commands{$current->{'cmdname'}} eq 'raw'
+ or $block_commands{$current->{'cmdname'}} eq 'conditional')) {
# special case for macro that may be nested
if (($current->{'cmdname'} eq 'macro'
or $current->{'cmdname'} eq 'rmacro')
@@ -1118,6 +1136,16 @@
'special' => {'macro_line' => $line }};
$current = $current->{'contents'}->[-1];
last;
+ } elsif (($current->{'cmdname'} eq 'ifclear'
+ or $current->{'cmdname'} eq 'ifset')
+ and $line =~ /address@hidden>{'cmdname'}/) {
+ $line =~ s/\s*\@($current->{'cmdname'})//;
+ push @{$current->{'contents'}}, { 'cmdname' => $1,
+ 'parent' => $current,
+ 'contents' => [],
+ 'special' => {'line' => $line }};
+ $current = $current->{'contents'}->[-1];
+ last;
} elsif ($line =~ /^(.*?)address@hidden([a-zA-Z][\w-]*)/o and ($2 eq
$current->{'cmdname'})) {
my $end_command = $2;
$line =~ s/^(.*?)(address@hidden>{'cmdname'})//;
@@ -1137,6 +1165,9 @@
}
}
$current = $current->{'parent'};
+ # don't store ignored @if*
+ pop @{$current->{'contents'}}
+ if ($block_commands{$end_command} eq 'conditional');
last unless ($line =~ /\S/);
} else {
push @{$current->{'contents'}},
@@ -1166,6 +1197,22 @@
if ($line =~ s/address@hidden([a-zA-Z][\w-]*)//) {
my $end_command = $1;
print STDERR "END $end_command\n" if ($self->{'debug'});
+ if (!exists $block_commands{$end_command}) {
+ _line_warn ($self,
+ sprintf($self->__("Unknown address@hidden %s"), $end_command),
$line_nr);
+ $current = _merge_text ($self, $current, "address@hidden
$end_command");
+ last;
+ }
+ if ($block_commands{$end_command} eq 'conditional') {
+ if (@{$self->{'conditionals_stack'}}
+ and $self->{'conditionals_stack'}->[-1] eq $end_command) {
+ pop @{$self->{'conditionals_stack'}};
+ } else {
+ _line_error ($self,
+ sprintf($self->__("Unmatched `%c%s'"), ord('@'), 'end'),
$line_nr);
+ }
+ last;
+ }
$current = _end_block_command($self, $current, $line_nr,
$end_command);
last unless ($line =~ /\S/);
@@ -1369,6 +1416,34 @@
push @{$current->{'contents'}}, $macro;
$current = $current->{'contents'}->[-1];
last;
+ } elsif ($block_commands{$command} eq 'conditional') {
+ my $ifvalue_true = 0;
+ if ($command eq 'ifclear' or $command eq 'ifset') {
+ if ($line =~ /^\s+([\w\-]+)/) {
+ my $name = $2;
+ if ((exists($self->{'values'}->{'name'}) and $command eq
'ifset')
+ or (!exists($self->{'values'}->{'name'})
+ and $command eq 'ifclear')) {
+ $ifvalue_true = 1;
+ }
+ } else {
+ _line_error ($self, sprintf($self->__("%c%s requires a name"),
ord('@'), $command), $line_nr);
+ }
+ } elsif ($command =~ /^ifnot(.*)/) {
+ $ifvalue_true = 1 if !($self->{'expanded_formats_hash'}->{$1});
+ } else {
+ die unless ($command =~ /^if(.*)/);
+ $ifvalue_true = 1 if ($self->{'expanded_formats_hash'}->{$1});
+ }
+ if ($ifvalue_true) {
+ push @{$self->{'conditionals_stack'}}, $command;
+ } else {
+ push @{$current->{'contents'}}, { 'cmdname' => $command,
+ 'parent' => $current,
+ 'contents' => [] };
+ $current = $current->{'contents'}->[-1];
+ }
+ last;
} else {
$line =~ s/\s*//;
# the def command holds a line_def* which corresponds with the
@@ -1823,6 +1898,10 @@
}
}
}
+ while (@{$self->{'conditionals_stack'}}) {
+ my $end_conditional = pop @{$self->{'conditionals_stack'}};
+ _line_error ($self, sprintf($self->__("Expected address@hidden %s"),
$end_conditional), $line_nr);
+ }
$current = _end_block_command($self, $current, $line_nr);
return $root;
}
Index: t/08misc_commands.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/08misc_commands.t,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/08misc_commands.t 30 Sep 2010 22:03:52 -0000 1.1
+++ t/08misc_commands.t 2 Oct 2010 17:22:52 -0000 1.2
@@ -84,6 +84,7 @@
Text line after the text line followed by the sp.
@ifnottex
@sp 2 a number after sp
address@hidden ifnottex
'],
['clickstyle',
'@clickstyle @result
Index: t/60macro.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/60macro.t,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- t/60macro.t 2 Oct 2010 14:28:02 -0000 1.6
+++ t/60macro.t 2 Oct 2010 17:22:52 -0000 1.7
@@ -90,7 +90,7 @@
recursive call. @macro1{first arg, @macro1{nested second arg}}.
-protect stuff. @macro1{first \, arg, \{\} \\\\ }.
+protect stuff. @macro1{first \\, arg, \\{\\} \\\\ }.
multi-line arg. @macro1{arg 1
@@ -129,7 +129,7 @@
result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
@end macro
-the @macro1 { @samp{f\irst arg}, second arg } after macro.
+the @macro1 { @samp{f\\irst arg}, second arg } after macro.
'],
['protect_in_body_one_arg',
'@macro macro1 { arg1 , arg2 }
@@ -143,17 +143,128 @@
result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
@end macro
address@hidden @samp{f\irst arg}, second arg
address@hidden @samp{f\\irst arg}, second arg
'],
['protect_comma_macro_line',
'@macro macro2 { arg }
-we get \arg\ and another \arg\
-and another one on another line \arg\
+we get \\arg\\ and another \\arg\\
+and another one on another line \\arg\\
and a last in another paragraph
@end macro
address@hidden arg, comma \,
address@hidden arg, comma \\,
+'],
+['nested_macro_call',
+'@macro machin{}
+(machin)
address@hidden macro
+
address@hidden truc{}
address@hidden
+
address@hidden macro
+
+Before @truc{} after truc.
+'],
+['two_macros_on_a_line',
+'@macro mymacro
+in mymacro
address@hidden macro
+
address@hidden mymacro_with_args{arg}
+in with args
+now the arg \\arg\\
+after
address@hidden macro
+
+
+@@address@hidden@} @@address@hidden@}
address@hidden @mymacro{}
+
+@@mymacro @@address@hidden@}
address@hidden @mymacro{}
+
+@@address@hidden@} @@mymacro
address@hidden @mymacro
+
+with args
address@hidden {an
+arg
+
+in macro} @mymacro{}
+'],
+['macro_in_macro_arg','
address@hidden macro1
+a, @macro2
address@hidden macro
+
address@hidden macro2{arg}
+hello \arg\ after arg
address@hidden macro
+
address@hidden macro3{text, arg}
+\text\
+&&&& \arg\
address@hidden macro
+
address@hidden@macro1{}text for macro2}
+'],
+['macro_in_macro_arg_simpler',
+'@macro macro11
+a, macro2
address@hidden macro
+
address@hidden macro3{text, arg}
+\text\
+&&&& \arg\
address@hidden macro
+
address@hidden@macro11{}text for macro2}
+'],
+['complex_argument',
+'@macro macro2{arg}
+coucou \arg\ after arg
address@hidden macro
+
address@hidden macro4 {}
+1
+2
+3
+4
address@hidden macro
+
address@hidden macro3{text, arg}
+\text\
+&&&& \arg\
address@hidden macro
+
address@hidden@verb{% @macro2 %}
address@hidden @macro4
address@hidden 4 @macro4{}
address@hidden doubleafter @macro4{}
address@hidden
address@hidden
address@hidden verbatim
address@hidden
address@hidden
address@hidden ignore
address@hidden macro7 {truc}
address@hidden
address@hidden macro
+macro7 defined
address@hidden
address@hidden
address@hidden ifinfo
address@hidden
address@hidden,bb}
address@hidden iftex
address@hidden
+}
+
+Call macro7
address@hidden
+
']
);
Index: t/results/misc_commands/sp.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/misc_commands/sp.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/results/misc_commands/sp.pl 1 Oct 2010 06:50:57 -0000 1.1
+++ t/results/misc_commands/sp.pl 2 Oct 2010 17:22:53 -0000 1.2
@@ -85,11 +85,6 @@
'parent' => {},
'text' => 'Text line after the text line followed by the sp.
'
- },
- {
- 'parent' => {},
- 'text' => '
-'
}
],
'parent' => {},
@@ -129,7 +124,6 @@
$result_trees{'sp'}{'contents'}[5]{'args'}[0]{'parent'} =
$result_trees{'sp'}{'contents'}[5];
$result_trees{'sp'}{'contents'}[5]{'parent'} = $result_trees{'sp'};
$result_trees{'sp'}{'contents'}[6]{'contents'}[0]{'parent'} =
$result_trees{'sp'}{'contents'}[6];
-$result_trees{'sp'}{'contents'}[6]{'contents'}[1]{'parent'} =
$result_trees{'sp'}{'contents'}[6];
$result_trees{'sp'}{'contents'}[6]{'parent'} = $result_trees{'sp'};
$result_trees{'sp'}{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'} =
$result_trees{'sp'}{'contents'}[7]{'args'}[0];
$result_trees{'sp'}{'contents'}[7]{'args'}[0]{'parent'} =
$result_trees{'sp'}{'contents'}[7];
@@ -140,7 +134,6 @@
@sp 2
Text line after the sp followed by a sp @sp 1
Text line after the text line followed by the sp.
-
@sp 2 a number after sp
';
Index: t/results/macro/complex_argument.pl
===================================================================
RCS file: t/results/macro/complex_argument.pl
diff -N t/results/macro/complex_argument.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/macro/complex_argument.pl 2 Oct 2010 17:22:52 -0000 1.1
@@ -0,0 +1,526 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'complex_argument'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro2',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'coucou \\arg\\ after arg
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg' => 0
+ },
+ 'macro_line' => ' macro2{arg}
+',
+ 'macrobody' => 'coucou \\arg\\ after arg
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro4',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '1
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => '2
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => '3
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => '4
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' macro4 {}
+',
+ 'macrobody' => '1
+2
+3
+4
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro3',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'text',
+ 'type' => 'macro_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '\\text\\
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => '&&&& \\arg\\
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg' => 1,
+ 'text' => 0
+ },
+ 'macro_line' => ' macro3{text, arg}
+',
+ 'macrobody' => '\\text\\
+&&&& \\arg\\
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' @macro2 ',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'verb',
+ 'parent' => {},
+ 'remaining_args' => 0,
+ 'type' => '%'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => ' @macro4
+',
+ 'type' => 'misc_arg'
+ }
+ ],
+ 'cmdname' => 'c',
+ 'parent' => {}
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '4 1
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'pagesizes',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '2
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '3
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '4
+'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'doubleafter 1
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'headings',
+ 'parent' => {},
+ 'special' => {
+ 'misc_args' => [
+ 'doubleafter'
+ ]
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '2
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '3
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '4
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'cmdname' => 'verbatim',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '@macro2
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {}
+ },
+ {
+ 'cmdname' => 'ignore',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '@macro4
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {}
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro7',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'truc',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '@emph{\\truc\\}
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'truc' => 0
+ },
+ 'macro_line' => ' macro7 {truc}
+',
+ 'macrobody' => '@emph{\\truc\\}
+'
+ }
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro7 defined
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '1
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '2
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '3
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '4
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '&&&&
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'Call macro7
+'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'aaa'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'emph',
+ 'parent' => {},
+ 'remaining_args' => 0
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ }
+ ]
+};
+$result_trees{'complex_argument'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[0];
+$result_trees{'complex_argument'}{'contents'}[0]{'args'}[1]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[0];
+$result_trees{'complex_argument'}{'contents'}[0]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[0];
+$result_trees{'complex_argument'}{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[1]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[2]{'args'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[2];
+$result_trees{'complex_argument'}{'contents'}[2]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[2];
+$result_trees{'complex_argument'}{'contents'}[2]{'contents'}[1]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[2];
+$result_trees{'complex_argument'}{'contents'}[2]{'contents'}[2]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[2];
+$result_trees{'complex_argument'}{'contents'}[2]{'contents'}[3]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[2];
+$result_trees{'complex_argument'}{'contents'}[2]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[3]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[4]{'args'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[4];
+$result_trees{'complex_argument'}{'contents'}[4]{'args'}[1]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[4];
+$result_trees{'complex_argument'}{'contents'}[4]{'args'}[2]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[4];
+$result_trees{'complex_argument'}{'contents'}[4]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[4];
+$result_trees{'complex_argument'}{'contents'}[4]{'contents'}[1]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[4];
+$result_trees{'complex_argument'}{'contents'}[4]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[5]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[6]{'contents'}[0]{'args'}[0];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[6]{'contents'}[0];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[1]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[6]{'contents'}[2];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[2]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[6]{'contents'}[3]{'args'}[0];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[3]{'args'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[6]{'contents'}[3];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[3]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[4]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[5]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[6]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[6]{'contents'}[7]{'args'}[0];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[7]{'args'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[6]{'contents'}[7];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[7]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[8]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[9]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'contents'}[10]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[6];
+$result_trees{'complex_argument'}{'contents'}[6]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[7]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[7];
+$result_trees{'complex_argument'}{'contents'}[7]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[8]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[8];
+$result_trees{'complex_argument'}{'contents'}[8]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[9]{'args'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[9];
+$result_trees{'complex_argument'}{'contents'}[9]{'args'}[1]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[9];
+$result_trees{'complex_argument'}{'contents'}[9]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[9];
+$result_trees{'complex_argument'}{'contents'}[9]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[10]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[10];
+$result_trees{'complex_argument'}{'contents'}[10]{'contents'}[1]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[10];
+$result_trees{'complex_argument'}{'contents'}[10]{'contents'}[2]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[10];
+$result_trees{'complex_argument'}{'contents'}[10]{'contents'}[3]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[10];
+$result_trees{'complex_argument'}{'contents'}[10]{'contents'}[4]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[10];
+$result_trees{'complex_argument'}{'contents'}[10]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[11]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[12]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[12];
+$result_trees{'complex_argument'}{'contents'}[12]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[13]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[14]{'contents'}[0]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[14];
+$result_trees{'complex_argument'}{'contents'}[14]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[14]{'contents'}[1]{'args'}[0];
+$result_trees{'complex_argument'}{'contents'}[14]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'complex_argument'}{'contents'}[14]{'contents'}[1];
+$result_trees{'complex_argument'}{'contents'}[14]{'contents'}[1]{'parent'} =
$result_trees{'complex_argument'}{'contents'}[14];
+$result_trees{'complex_argument'}{'contents'}[14]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[15]{'parent'} =
$result_trees{'complex_argument'};
+$result_trees{'complex_argument'}{'contents'}[16]{'parent'} =
$result_trees{'complex_argument'};
+
+$result_texts{'complex_argument'} = '@macro macro2{arg}
+coucou \\arg\\ after arg
address@hidden macro
+
address@hidden macro4 {}
+1
+2
+3
+4
address@hidden macro
+
address@hidden macro3{text, arg}
+\\text\\
+&&&& \\arg\\
address@hidden macro
+
address@hidden @macro2 %}
address@hidden @macro4
address@hidden 4 1
+2
+3
+4
address@hidden doubleafter 1
+2
+3
+4
address@hidden
address@hidden
address@hidden verbatim
address@hidden
address@hidden
address@hidden ignore
address@hidden macro7 {truc}
address@hidden
address@hidden macro
+macro7 defined
+1
+2
+3
+4
+
+&&&&
+
+Call macro7
address@hidden
+
+';
+
+$result_errors{'complex_argument'} = [];
+
+
Index: t/results/macro/macro_in_macro_arg.pl
===================================================================
RCS file: t/results/macro/macro_in_macro_arg.pl
diff -N t/results/macro/macro_in_macro_arg.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/macro/macro_in_macro_arg.pl 2 Oct 2010 17:22:52 -0000
1.1
@@ -0,0 +1,212 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'macro_in_macro_arg'} = {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro1',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'a, @macro2
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' macro1
+',
+ 'macrobody' => 'a, @macro2
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro2',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'hello \\arg\\ after arg
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg' => 0
+ },
+ 'macro_line' => ' macro2{arg}
+',
+ 'macrobody' => 'hello \\arg\\ after arg
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro3',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'text',
+ 'type' => 'macro_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '\\text\\
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => '&&&& \\arg\\
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg' => 1,
+ 'text' => 0
+ },
+ 'macro_line' => ' macro3{text, arg}
+',
+ 'macrobody' => '\\text\\
+&&&& \\arg\\
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'a, hello after arg'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'text for macro2
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '&&&&
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ]
+};
+$result_trees{'macro_in_macro_arg'}{'contents'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[1]{'args'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[1];
+$result_trees{'macro_in_macro_arg'}{'contents'}[1]{'contents'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[1];
+$result_trees{'macro_in_macro_arg'}{'contents'}[1]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[2]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[3]{'args'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[3];
+$result_trees{'macro_in_macro_arg'}{'contents'}[3]{'args'}[1]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[3];
+$result_trees{'macro_in_macro_arg'}{'contents'}[3]{'contents'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[3];
+$result_trees{'macro_in_macro_arg'}{'contents'}[3]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[4]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[5]{'args'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[5];
+$result_trees{'macro_in_macro_arg'}{'contents'}[5]{'args'}[1]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[5];
+$result_trees{'macro_in_macro_arg'}{'contents'}[5]{'args'}[2]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[5];
+$result_trees{'macro_in_macro_arg'}{'contents'}[5]{'contents'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[5];
+$result_trees{'macro_in_macro_arg'}{'contents'}[5]{'contents'}[1]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[5];
+$result_trees{'macro_in_macro_arg'}{'contents'}[5]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[6]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[7]{'contents'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[7];
+$result_trees{'macro_in_macro_arg'}{'contents'}[7]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[8]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+$result_trees{'macro_in_macro_arg'}{'contents'}[9]{'contents'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[9];
+$result_trees{'macro_in_macro_arg'}{'contents'}[9]{'contents'}[1]{'parent'} =
$result_trees{'macro_in_macro_arg'}{'contents'}[9];
+$result_trees{'macro_in_macro_arg'}{'contents'}[9]{'parent'} =
$result_trees{'macro_in_macro_arg'};
+
+$result_texts{'macro_in_macro_arg'} = '
address@hidden macro1
+a, @macro2
address@hidden macro
+
address@hidden macro2{arg}
+hello \\arg\\ after arg
address@hidden macro
+
address@hidden macro3{text, arg}
+\\text\\
+&&&& \\arg\\
address@hidden macro
+
+a, hello after arg
+text for macro2
+&&&&
+';
+
+$result_errors{'macro_in_macro_arg'} = [];
+
+
Index: t/results/macro/macro_in_macro_arg_simpler.pl
===================================================================
RCS file: t/results/macro/macro_in_macro_arg_simpler.pl
diff -N t/results/macro/macro_in_macro_arg_simpler.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/macro/macro_in_macro_arg_simpler.pl 2 Oct 2010 17:22:53
-0000 1.1
@@ -0,0 +1,136 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'macro_in_macro_arg_simpler'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro11',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'a, macro2
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' macro11
+',
+ 'macrobody' => 'a, macro2
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro3',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'text',
+ 'type' => 'macro_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '\\text\\
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => '&&&& \\arg\\
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg' => 1,
+ 'text' => 0
+ },
+ 'macro_line' => ' macro3{text, arg}
+',
+ 'macrobody' => '\\text\\
+&&&& \\arg\\
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'a, macro2text for macro2
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => '&&&&
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ]
+};
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[0];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[0];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[0]{'parent'} =
$result_trees{'macro_in_macro_arg_simpler'};
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[1]{'parent'} =
$result_trees{'macro_in_macro_arg_simpler'};
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2]{'args'}[1]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2]{'args'}[2]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2]{'contents'}[1]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[2]{'parent'} =
$result_trees{'macro_in_macro_arg_simpler'};
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[3]{'parent'} =
$result_trees{'macro_in_macro_arg_simpler'};
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[4]{'contents'}[0]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[4];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[4]{'contents'}[1]{'parent'}
= $result_trees{'macro_in_macro_arg_simpler'}{'contents'}[4];
+$result_trees{'macro_in_macro_arg_simpler'}{'contents'}[4]{'parent'} =
$result_trees{'macro_in_macro_arg_simpler'};
+
+$result_texts{'macro_in_macro_arg_simpler'} = '@macro macro11
+a, macro2
address@hidden macro
+
address@hidden macro3{text, arg}
+\\text\\
+&&&& \\arg\\
address@hidden macro
+
+a, macro2text for macro2
+&&&&
+';
+
+$result_errors{'macro_in_macro_arg_simpler'} = [];
+
+
Index: t/results/macro/nested_macro_call.pl
===================================================================
RCS file: t/results/macro/nested_macro_call.pl
diff -N t/results/macro/nested_macro_call.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/macro/nested_macro_call.pl 2 Oct 2010 17:22:53 -0000
1.1
@@ -0,0 +1,133 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'nested_macro_call'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'machin',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '(machin)
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' machin{}
+',
+ 'macrobody' => '(machin)
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'truc',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '@machin{}
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' truc{}
+',
+ 'macrobody' => '@machin{}
+
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'Before (machin)'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' after truc.
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ]
+};
+$result_trees{'nested_macro_call'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'nested_macro_call'}{'contents'}[0];
+$result_trees{'nested_macro_call'}{'contents'}[0]{'contents'}[0]{'parent'} =
$result_trees{'nested_macro_call'}{'contents'}[0];
+$result_trees{'nested_macro_call'}{'contents'}[0]{'parent'} =
$result_trees{'nested_macro_call'};
+$result_trees{'nested_macro_call'}{'contents'}[1]{'parent'} =
$result_trees{'nested_macro_call'};
+$result_trees{'nested_macro_call'}{'contents'}[2]{'args'}[0]{'parent'} =
$result_trees{'nested_macro_call'}{'contents'}[2];
+$result_trees{'nested_macro_call'}{'contents'}[2]{'contents'}[0]{'parent'} =
$result_trees{'nested_macro_call'}{'contents'}[2];
+$result_trees{'nested_macro_call'}{'contents'}[2]{'contents'}[1]{'parent'} =
$result_trees{'nested_macro_call'}{'contents'}[2];
+$result_trees{'nested_macro_call'}{'contents'}[2]{'parent'} =
$result_trees{'nested_macro_call'};
+$result_trees{'nested_macro_call'}{'contents'}[3]{'parent'} =
$result_trees{'nested_macro_call'};
+$result_trees{'nested_macro_call'}{'contents'}[4]{'contents'}[0]{'parent'} =
$result_trees{'nested_macro_call'}{'contents'}[4];
+$result_trees{'nested_macro_call'}{'contents'}[4]{'parent'} =
$result_trees{'nested_macro_call'};
+$result_trees{'nested_macro_call'}{'contents'}[5]{'parent'} =
$result_trees{'nested_macro_call'};
+$result_trees{'nested_macro_call'}{'contents'}[6]{'contents'}[0]{'parent'} =
$result_trees{'nested_macro_call'}{'contents'}[6];
+$result_trees{'nested_macro_call'}{'contents'}[6]{'parent'} =
$result_trees{'nested_macro_call'};
+
+$result_texts{'nested_macro_call'} = '@macro machin{}
+(machin)
address@hidden macro
+
address@hidden truc{}
address@hidden
+
address@hidden macro
+
+Before (machin)
+ after truc.
+';
+
+$result_errors{'nested_macro_call'} = [];
+
+
Index: t/results/macro/two_macros_on_a_line.pl
===================================================================
RCS file: t/results/macro/two_macros_on_a_line.pl
diff -N t/results/macro/two_macros_on_a_line.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/macro/two_macros_on_a_line.pl 2 Oct 2010 17:22:53 -0000
1.1
@@ -0,0 +1,424 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'two_macros_on_a_line'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'mymacro',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'in mymacro
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' mymacro
+',
+ 'macrobody' => 'in mymacro
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'mymacro_with_args',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'in with args
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'now the arg \\arg\\
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'after
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg' => 0
+ },
+ 'macro_line' => ' mymacro_with_args{arg}
+',
+ 'macrobody' => 'in with args
+now the arg \\arg\\
+after
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'cmdname' => '@',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => 'mymacro'
+ },
+ {
+ 'cmdname' => '{',
+ 'parent' => {}
+ },
+ {
+ 'cmdname' => '}',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => ' '
+ },
+ {
+ 'cmdname' => '@',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => 'mymacro'
+ },
+ {
+ 'cmdname' => '{',
+ 'parent' => {}
+ },
+ {
+ 'cmdname' => '}',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'in mymacro in mymacro'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'cmdname' => '@',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => 'mymacro '
+ },
+ {
+ 'cmdname' => '@',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => 'mymacro'
+ },
+ {
+ 'cmdname' => '{',
+ 'parent' => {}
+ },
+ {
+ 'cmdname' => '}',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'in mymacro in mymacro'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'cmdname' => '@',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => 'mymacro'
+ },
+ {
+ 'cmdname' => '{',
+ 'parent' => {}
+ },
+ {
+ 'cmdname' => '}',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => ' '
+ },
+ {
+ 'cmdname' => '@',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => 'mymacro
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'in mymacro in mymacro'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'with args
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'in with args
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'now the arg an
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'in macro
+'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'after in mymacro'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ }
+ ]
+};
+$result_trees{'two_macros_on_a_line'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'two_macros_on_a_line'}{'contents'}[0];
+$result_trees{'two_macros_on_a_line'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[0];
+$result_trees{'two_macros_on_a_line'}{'contents'}[0]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[1]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[2]{'args'}[0]{'parent'} =
$result_trees{'two_macros_on_a_line'}{'contents'}[2];
+$result_trees{'two_macros_on_a_line'}{'contents'}[2]{'args'}[1]{'parent'} =
$result_trees{'two_macros_on_a_line'}{'contents'}[2];
+$result_trees{'two_macros_on_a_line'}{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[2];
+$result_trees{'two_macros_on_a_line'}{'contents'}[2]{'contents'}[1]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[2];
+$result_trees{'two_macros_on_a_line'}{'contents'}[2]{'contents'}[2]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[2];
+$result_trees{'two_macros_on_a_line'}{'contents'}[2]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[3]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[4]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[0]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[1]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[2]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[3]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[4]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[5]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[6]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[7]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[8]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[9]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'contents'}[10]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[5];
+$result_trees{'two_macros_on_a_line'}{'contents'}[5]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[6]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[7]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'contents'}[0]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[8];
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'contents'}[1]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[8];
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'contents'}[2]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[8];
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'contents'}[3]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[8];
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'contents'}[4]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[8];
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'contents'}[5]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[8];
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'contents'}[6]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[8];
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'contents'}[7]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[8];
+$result_trees{'two_macros_on_a_line'}{'contents'}[8]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[9]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[10]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'contents'}[0]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[11];
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'contents'}[1]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[11];
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'contents'}[2]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[11];
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'contents'}[3]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[11];
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'contents'}[4]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[11];
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'contents'}[5]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[11];
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'contents'}[6]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[11];
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'contents'}[7]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[11];
+$result_trees{'two_macros_on_a_line'}{'contents'}[11]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[12]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[13]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[14]{'contents'}[0]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[14];
+$result_trees{'two_macros_on_a_line'}{'contents'}[14]{'contents'}[1]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[14];
+$result_trees{'two_macros_on_a_line'}{'contents'}[14]{'contents'}[2]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[14];
+$result_trees{'two_macros_on_a_line'}{'contents'}[14]{'contents'}[3]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[14];
+$result_trees{'two_macros_on_a_line'}{'contents'}[14]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[15]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[16]{'contents'}[0]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[16];
+$result_trees{'two_macros_on_a_line'}{'contents'}[16]{'contents'}[1]{'parent'}
= $result_trees{'two_macros_on_a_line'}{'contents'}[16];
+$result_trees{'two_macros_on_a_line'}{'contents'}[16]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+$result_trees{'two_macros_on_a_line'}{'contents'}[17]{'parent'} =
$result_trees{'two_macros_on_a_line'};
+
+$result_texts{'two_macros_on_a_line'} = '@macro mymacro
+in mymacro
address@hidden macro
+
address@hidden mymacro_with_args{arg}
+in with args
+now the arg \\arg\\
+after
address@hidden macro
+
+
+@@address@hidden@} @@address@hidden@}
+in mymacro in mymacro
+
+@@mymacro @@address@hidden@}
+in mymacro in mymacro
+
+@@address@hidden@} @@mymacro
+in mymacro in mymacro
+
+with args
+in with args
+now the arg an
+arg
+
+in macro
+after in mymacro
+';
+
+$result_errors{'two_macros_on_a_line'} = [
+ {
+ 'error_line' => ':16: warning: @mymacro defined with zero or more than one
argument should be invoked with {}
+',
+ 'file_name' => '',
+ 'line_nr' => 16,
+ 'macro' => '',
+ 'text' => '@mymacro defined with zero or more than one argument should be
invoked with {}',
+ 'type' => 'warning'
+ },
+ {
+ 'error_line' => ':19: warning: @mymacro defined with zero or more than one
argument should be invoked with {}
+',
+ 'file_name' => '',
+ 'line_nr' => 19,
+ 'macro' => '',
+ 'text' => '@mymacro defined with zero or more than one argument should be
invoked with {}',
+ 'type' => 'warning'
+ }
+];
+
+
- texinfo/tp Texinfo/Parser.pm t/08misc_commands....,
Patrice Dumas <=