texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp Texinfo/Parser.pm t/50value.t t/60ma...


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Parser.pm t/50value.t t/60ma...
Date: Sat, 02 Oct 2010 10:03:42 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/10/02 10:03:42

Modified files:
        tp/Texinfo     : Parser.pm 
        tp/t           : 50value.t 60macro.t test_utils.pl 
        tp/t/results/macro: macro_expansion.pl 
        tp/t/results/misc_commands: clickstyle.pl invalid_clickstyle.pl 
        tp/t/results/value: bad_syntax.pl simple.pl 
Added files:
        tp/t/results/macro: expand_two_same.pl macro_zero.pl 
                            protect_comma_macro_line.pl 
                            protect_in_body.pl 
                            protect_in_body_line_arg.pl 
                            protect_in_body_one_arg.pl 
        tp/t/results/value: value_zero.pl 

Log message:
        Fix handling of arguments of misc macros and end of lines handling.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/50value.t?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/60macro.t?cvsroot=texinfo&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_utils.pl?cvsroot=texinfo&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_expansion.pl?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/expand_two_same.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_zero.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/protect_comma_macro_line.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/protect_in_body.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/protect_in_body_line_arg.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/protect_in_body_one_arg.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/misc_commands/clickstyle.pl?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/misc_commands/invalid_clickstyle.pl?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value/bad_syntax.pl?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value/simple.pl?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value/value_zero.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- Texinfo/Parser.pm   1 Oct 2010 06:50:57 -0000       1.33
+++ Texinfo/Parser.pm   2 Oct 2010 10:03:41 -0000       1.34
@@ -1185,6 +1185,8 @@
           } elsif (($args_number >= 2) or ($args_number <1)) {
             _line_warn($self, sprintf($self->__("address@hidden defined with 
zero or more than one argument should be invoked with {}"), $command), 
$line_nr);
           } else {
+            $line =~ s/^\s*// if ($line =~ /\S/);
+            chomp $line;
             $arguments = [$line];
             $line = "\n";
           } 
@@ -1519,7 +1521,6 @@
           }
 
         } elsif ($separator eq '}') { 
-          # FIXME use parents
           #_print_current ($current);
           if ($current->{'type'} and ($current->{'type'} eq 'bracketed')) {
              $current = $current->{'parent'};
@@ -1938,8 +1939,10 @@
     }
   }
   if ($misc_commands{$cmdname}
-      and $misc_commands{$cmdname}->{'skip'}
-      and $misc_commands{$cmdname}->{'skip'} eq 'line') {
+      and (($misc_commands{$cmdname}->{'skip'}
+             and $misc_commands{$cmdname}->{'skip'} eq 'line')
+           or ($misc_commands{$cmdname}->{'arg'}
+              and $misc_commands{$cmdname}->{'arg'} eq 'special'))) { 
     $result .="\n";
   }
   if (defined($block_commands{$cmdname})) {
@@ -1948,10 +1951,6 @@
     $result .= "\n" unless ($def_commands{$cmdname});
   }
   $result .= '{'.$cmd->{'type'}.'}' if ($cmdname eq 'value');
-#  $result .= $cmd->{'special'}->{'arg'} if ($misc_commands{$cmdname} 
-#     and $cmd->{'special'} and $cmd->{'special'}->{'arg'});
-  $result .= "\n" if ($misc_commands{$cmdname} 
-      and $cmd->{'special'} and $cmd->{'special'}->{'arg'});
   #print STDERR "Result: $result\n";
   return $result;
 }
@@ -1983,6 +1982,7 @@
     } else {
       _line_error ($self, sprintf($self->
                     __("%c%s requires a name"), ord('@'), $command), $line_nr);
+      chomp $line;
       $special = { 'arg' => $line };
     }
     $line = '';
@@ -2009,6 +2009,7 @@
     } else {
       _line_error ($self, sprintf($self->__("address@hidden should only accept 
a address@hidden as argument, not `%s'"), $command, $line), $line_nr);
     }
+    $line = '';
   } elsif ($arg_spec) {
     $line =~ s/^[ \t]*// unless ($command eq 'c' or $command eq 'comment');
     #$args = [ $line ];

Index: t/50value.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/50value.t,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/50value.t 28 Sep 2010 19:47:03 -0000      1.1
+++ t/50value.t 2 Oct 2010 10:03:41 -0000       1.2
@@ -18,7 +18,13 @@
 @value{gurgl
 
 @value{unknown}
-']
+'],
+['value_zero',
+'@set zero 0
+Value
address@hidden'
+]
+
 );
 
 our ($arg_test_case, $arg_generate, $arg_debug);

Index: t/60macro.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/60macro.t,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- t/60macro.t 30 Sep 2010 06:02:29 -0000      1.3
+++ t/60macro.t 2 Oct 2010 10:03:41 -0000       1.4
@@ -76,9 +76,61 @@
 @end macro
 
 call @foo{ something
+'],
+['expand_two_same',
+'@macro macro2 { arg }
+With a doubles arg \arg\ and re \arg\
+
address@hidden macro
+Call macro2
address@hidden { a simple @code{
+arg}
+}
+Call macro2 with 2 args
address@hidden { arg with comma , here }
+'],
+['macro_zero',
+'@macro zero
+0
address@hidden macro
+
+Macro
address@hidden
+'],
+['protect_in_body',
+'@macro macro1 { arg1 , arg2 }
+result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
address@hidden macro
+
+the @macro1 { @samp{f\irst arg}, second arg } after macro.
+'],
+['protect_in_body_one_arg',
+'@macro macro1 { arg1 , arg2 }
+result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
address@hidden macro
+
address@hidden { @samp{f\irst arg}}
+'],
+['protect_in_body_line_arg',
+'@macro macro1 { arg1 , arg2 }
+result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
address@hidden macro
+
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\
+
+and a last in another paragraph
address@hidden macro
+
address@hidden  arg,  comma \,
 ']
 );
 
+
 our ($arg_test_case, $arg_generate, $arg_debug);
 
 run_all ('macro', address@hidden, $arg_test_case,

Index: t/test_utils.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_utils.pl,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- t/test_utils.pl     1 Oct 2010 06:50:57 -0000       1.13
+++ t/test_utils.pl     2 Oct 2010 10:03:41 -0000       1.14
@@ -67,7 +67,9 @@
 
     #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";
+    my $perl_string_result = tree_to_texi($result);
+    $perl_string_result =~ s/\\/\\\\/g;
+    $out_result .= "\n".'$result_texts{\''.$test_name.'\'} = 
\''.$perl_string_result."';\n\n";
     $out_result .= "".Data::Dumper->Dump([$errors], 
['$result_errors{\''.$test_name.'\'}']) ."\n\n";
     print OUT $out_result;
     close (OUT);
@@ -129,7 +131,6 @@
   } else {
     plan tests => (1 + scalar(@$ran_tests) * 3);
   }
-
 }
 
 1;

Index: t/results/macro/macro_expansion.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/macro/macro_expansion.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/results/macro/macro_expansion.pl  30 Sep 2010 06:49:47 -0000      1.1
+++ t/results/macro/macro_expansion.pl  2 Oct 2010 10:03:41 -0000       1.2
@@ -469,9 +469,9 @@
 
 $result_texts{'macro_expansion'} = '
 @macro macro1 {arg1, arg2 }
-result of a macro with \arg1\ and 
+result of a macro with \\arg1\\ and 
 @verbatim
-\arg2\
+\\arg2\\
 @end verbatim
 @end macro
 
@@ -507,7 +507,7 @@
 
 protect stuff. result of a macro with first , arg and 
 @verbatim
-{} \ 
+{} \\ 
 @end verbatim
 .
 

Index: t/results/misc_commands/clickstyle.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/misc_commands/clickstyle.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/results/misc_commands/clickstyle.pl       1 Oct 2010 06:50:57 -0000       
1.1
+++ t/results/misc_commands/clickstyle.pl       2 Oct 2010 10:03:41 -0000       
1.2
@@ -58,6 +58,7 @@
 $result_trees{'clickstyle'}{'contents'}[2]{'parent'} = 
$result_trees{'clickstyle'};
 
 $result_texts{'clickstyle'} = '@clickstyle @result
+
 A @click{} (result).
 ';
 

Index: t/results/misc_commands/invalid_clickstyle.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/misc_commands/invalid_clickstyle.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/results/misc_commands/invalid_clickstyle.pl       1 Oct 2010 06:50:57 
-0000       1.1
+++ t/results/misc_commands/invalid_clickstyle.pl       2 Oct 2010 10:03:41 
-0000       1.2
@@ -20,17 +20,6 @@
       'parent' => {}
     },
     {
-      'contents' => [
-        {
-          'parent' => {},
-          'text' => 'on the same line
-'
-        }
-      ],
-      'parent' => {},
-      'type' => 'paragraph'
-    },
-    {
       'parent' => {},
       'text' => '
 ',
@@ -124,17 +113,6 @@
       'parent' => {}
     },
     {
-      'contents' => [
-        {
-          'parent' => {},
-          'text' => ' something
-'
-        }
-      ],
-      'parent' => {},
-      'type' => 'paragraph'
-    },
-    {
       'parent' => {},
       'text' => '
 ',
@@ -172,43 +150,40 @@
 $result_trees{'invalid_clickstyle'}{'contents'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'};
 $result_trees{'invalid_clickstyle'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[1];
 $result_trees{'invalid_clickstyle'}{'contents'}[1]{'parent'} = 
$result_trees{'invalid_clickstyle'};
-$result_trees{'invalid_clickstyle'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[2];
 $result_trees{'invalid_clickstyle'}{'contents'}[2]{'parent'} = 
$result_trees{'invalid_clickstyle'};
+$result_trees{'invalid_clickstyle'}{'contents'}[3]{'contents'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[3];
+$result_trees{'invalid_clickstyle'}{'contents'}[3]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'invalid_clickstyle'}{'contents'}[3]{'contents'}[1];
+$result_trees{'invalid_clickstyle'}{'contents'}[3]{'contents'}[1]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[3];
+$result_trees{'invalid_clickstyle'}{'contents'}[3]{'contents'}[2]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[3];
 $result_trees{'invalid_clickstyle'}{'contents'}[3]{'parent'} = 
$result_trees{'invalid_clickstyle'};
-$result_trees{'invalid_clickstyle'}{'contents'}[4]{'contents'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[4];
-$result_trees{'invalid_clickstyle'}{'contents'}[4]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'invalid_clickstyle'}{'contents'}[4]{'contents'}[1];
-$result_trees{'invalid_clickstyle'}{'contents'}[4]{'contents'}[1]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[4];
-$result_trees{'invalid_clickstyle'}{'contents'}[4]{'contents'}[2]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[4];
 $result_trees{'invalid_clickstyle'}{'contents'}[4]{'parent'} = 
$result_trees{'invalid_clickstyle'};
+$result_trees{'invalid_clickstyle'}{'contents'}[5]{'args'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[5];
 $result_trees{'invalid_clickstyle'}{'contents'}[5]{'parent'} = 
$result_trees{'invalid_clickstyle'};
-$result_trees{'invalid_clickstyle'}{'contents'}[6]{'args'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[6];
 $result_trees{'invalid_clickstyle'}{'contents'}[6]{'parent'} = 
$result_trees{'invalid_clickstyle'};
+$result_trees{'invalid_clickstyle'}{'contents'}[7]{'contents'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[7];
+$result_trees{'invalid_clickstyle'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'invalid_clickstyle'}{'contents'}[7]{'contents'}[1];
+$result_trees{'invalid_clickstyle'}{'contents'}[7]{'contents'}[1]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[7];
+$result_trees{'invalid_clickstyle'}{'contents'}[7]{'contents'}[2]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[7];
 $result_trees{'invalid_clickstyle'}{'contents'}[7]{'parent'} = 
$result_trees{'invalid_clickstyle'};
-$result_trees{'invalid_clickstyle'}{'contents'}[8]{'contents'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[8];
-$result_trees{'invalid_clickstyle'}{'contents'}[8]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'invalid_clickstyle'}{'contents'}[8]{'contents'}[1];
-$result_trees{'invalid_clickstyle'}{'contents'}[8]{'contents'}[1]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[8];
-$result_trees{'invalid_clickstyle'}{'contents'}[8]{'contents'}[2]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[8];
 $result_trees{'invalid_clickstyle'}{'contents'}[8]{'parent'} = 
$result_trees{'invalid_clickstyle'};
 $result_trees{'invalid_clickstyle'}{'contents'}[9]{'parent'} = 
$result_trees{'invalid_clickstyle'};
 $result_trees{'invalid_clickstyle'}{'contents'}[10]{'parent'} = 
$result_trees{'invalid_clickstyle'};
 $result_trees{'invalid_clickstyle'}{'contents'}[11]{'contents'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[11];
+$result_trees{'invalid_clickstyle'}{'contents'}[11]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'invalid_clickstyle'}{'contents'}[11]{'contents'}[1];
+$result_trees{'invalid_clickstyle'}{'contents'}[11]{'contents'}[1]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[11];
+$result_trees{'invalid_clickstyle'}{'contents'}[11]{'contents'}[2]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[11];
 $result_trees{'invalid_clickstyle'}{'contents'}[11]{'parent'} = 
$result_trees{'invalid_clickstyle'};
-$result_trees{'invalid_clickstyle'}{'contents'}[12]{'parent'} = 
$result_trees{'invalid_clickstyle'};
-$result_trees{'invalid_clickstyle'}{'contents'}[13]{'contents'}[0]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[13];
-$result_trees{'invalid_clickstyle'}{'contents'}[13]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'invalid_clickstyle'}{'contents'}[13]{'contents'}[1];
-$result_trees{'invalid_clickstyle'}{'contents'}[13]{'contents'}[1]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[13];
-$result_trees{'invalid_clickstyle'}{'contents'}[13]{'contents'}[2]{'parent'} = 
$result_trees{'invalid_clickstyle'}{'contents'}[13];
-$result_trees{'invalid_clickstyle'}{'contents'}[13]{'parent'} = 
$result_trees{'invalid_clickstyle'};
 
 $result_texts{'invalid_clickstyle'} = '
address@hidden @resulton the same line
address@hidden @result
 
 A @click{} (result on the same line).
 
 @clickstyle @nocmd
+
 A @click{} (nocmd).
 
address@hidden something
address@hidden
 
 A @click{} (something).
 ';

Index: t/results/value/bad_syntax.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/value/bad_syntax.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/results/value/bad_syntax.pl       28 Sep 2010 19:47:03 -0000      1.1
+++ t/results/value/bad_syntax.pl       2 Oct 2010 10:03:41 -0000       1.2
@@ -12,32 +12,28 @@
       'cmdname' => 'set',
       'parent' => {},
       'special' => {
-        'arg' => '
-'
+        'arg' => ''
       }
     },
     {
       'cmdname' => 'set',
       'parent' => {},
       'special' => {
-        'arg' => ' 
-'
+        'arg' => ' '
       }
     },
     {
       'cmdname' => 'set',
       'parent' => {},
       'special' => {
-        'arg' => ' ?
-'
+        'arg' => ' ?'
       }
     },
     {
       'cmdname' => 'set',
       'parent' => {},
       'special' => {
-        'arg' => ' :-/ hey!
-'
+        'arg' => ' :-/ hey!'
       }
     },
     {

Index: t/results/value/simple.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/value/simple.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/results/value/simple.pl   28 Sep 2010 19:47:03 -0000      1.1
+++ t/results/value/simple.pl   2 Oct 2010 10:03:41 -0000       1.2
@@ -83,6 +83,7 @@
 $result_trees{'simple'}{'contents'}[2]{'parent'} = $result_trees{'simple'};
 
 $result_texts{'simple'} = '@set a-_5b the value @b{b} @c comment
+
 the value @b{b} @c comment After value.
 ';
 

Index: t/results/macro/expand_two_same.pl
===================================================================
RCS file: t/results/macro/expand_two_same.pl
diff -N t/results/macro/expand_two_same.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/expand_two_same.pl  2 Oct 2010 10:03:41 -0000       1.1
@@ -0,0 +1,198 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'expand_two_same'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'macro2',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'With a doubles arg \\arg\\ and re \\arg\\
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' macro2 { arg }
+',
+        'macrobody' => 'With a doubles arg \\arg\\ and re \\arg\\
+
+'
+      }
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'Call macro2
+'
+        },
+        {
+          'parent' => {},
+          'text' => 'With a doubles arg a simple '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '
+'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'arg'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'code',
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => '
+'
+        },
+        {
+          'parent' => {},
+          'text' => ' and re a simple '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '
+'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'arg'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'code',
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => '
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'Call macro2 with 2 args
+'
+        },
+        {
+          'parent' => {},
+          'text' => 'With a doubles arg arg with comma , here  and re arg with 
comma , here 
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'expand_two_same'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[0];
+$result_trees{'expand_two_same'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[0];
+$result_trees{'expand_two_same'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[0];
+$result_trees{'expand_two_same'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[0];
+$result_trees{'expand_two_same'}{'contents'}[0]{'parent'} = 
$result_trees{'expand_two_same'};
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[1];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[1];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = $result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[2];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[2]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[1];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[3]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[1];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[4]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[1];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[5]{'args'}[0];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[5]{'args'}[0];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'parent'}
 = $result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[5];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[5]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[1];
+$result_trees{'expand_two_same'}{'contents'}[1]{'contents'}[6]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[1];
+$result_trees{'expand_two_same'}{'contents'}[1]{'parent'} = 
$result_trees{'expand_two_same'};
+$result_trees{'expand_two_same'}{'contents'}[2]{'parent'} = 
$result_trees{'expand_two_same'};
+$result_trees{'expand_two_same'}{'contents'}[3]{'parent'} = 
$result_trees{'expand_two_same'};
+$result_trees{'expand_two_same'}{'contents'}[4]{'contents'}[0]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[4];
+$result_trees{'expand_two_same'}{'contents'}[4]{'contents'}[1]{'parent'} = 
$result_trees{'expand_two_same'}{'contents'}[4];
+$result_trees{'expand_two_same'}{'contents'}[4]{'parent'} = 
$result_trees{'expand_two_same'};
+$result_trees{'expand_two_same'}{'contents'}[5]{'parent'} = 
$result_trees{'expand_two_same'};
+
+$result_texts{'expand_two_same'} = '@macro macro2 { arg }
+With a doubles arg \\arg\\ and re \\arg\\
+
address@hidden macro
+Call macro2
+With a doubles arg a simple @code{
+arg}
+ and re a simple @code{
+arg}
+
+
+Call macro2 with 2 args
+With a doubles arg arg with comma , here  and re arg with comma , here 
+
+';
+
+$result_errors{'expand_two_same'} = [];
+
+

Index: t/results/macro/macro_zero.pl
===================================================================
RCS file: t/results/macro/macro_zero.pl
diff -N t/results/macro/macro_zero.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/macro_zero.pl       2 Oct 2010 10:03:41 -0000       1.1
@@ -0,0 +1,78 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'macro_zero'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'zero',
+          'type' => 'macro_name'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '0
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' zero
+',
+        'macrobody' => '0
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'Macro
+'
+        },
+        {
+          'parent' => {},
+          'text' => '0'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'macro_zero'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'macro_zero'}{'contents'}[0];
+$result_trees{'macro_zero'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'macro_zero'}{'contents'}[0];
+$result_trees{'macro_zero'}{'contents'}[0]{'parent'} = 
$result_trees{'macro_zero'};
+$result_trees{'macro_zero'}{'contents'}[1]{'parent'} = 
$result_trees{'macro_zero'};
+$result_trees{'macro_zero'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'macro_zero'}{'contents'}[2];
+$result_trees{'macro_zero'}{'contents'}[2]{'contents'}[1]{'parent'} = 
$result_trees{'macro_zero'}{'contents'}[2];
+$result_trees{'macro_zero'}{'contents'}[2]{'parent'} = 
$result_trees{'macro_zero'};
+$result_trees{'macro_zero'}{'contents'}[3]{'parent'} = 
$result_trees{'macro_zero'};
+
+$result_texts{'macro_zero'} = '@macro zero
+0
address@hidden macro
+
+Macro
+0
+';
+
+$result_errors{'macro_zero'} = [];
+
+

Index: t/results/macro/protect_comma_macro_line.pl
===================================================================
RCS file: t/results/macro/protect_comma_macro_line.pl
diff -N t/results/macro/protect_comma_macro_line.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/protect_comma_macro_line.pl 2 Oct 2010 10:03:41 -0000       
1.1
@@ -0,0 +1,130 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'protect_comma_macro_line'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'macro2',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'we get \\arg\\ and another \\arg\\
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => 'and another one on another line \\arg\\
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => 'and a last in another paragraph
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' macro2 { arg }
+',
+        'macrobody' => 'we get \\arg\\ and another \\arg\\
+and another one on another line \\arg\\
+
+and a last in another paragraph
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'we get arg,  comma \\, and another arg,  comma \\,
+'
+        },
+        {
+          'parent' => {},
+          'text' => 'and another one on another line arg,  comma \\,
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'and a last in another paragraph
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ]
+};
+$result_trees{'protect_comma_macro_line'}{'contents'}[0]{'args'}[0]{'parent'} 
= $result_trees{'protect_comma_macro_line'}{'contents'}[0];
+$result_trees{'protect_comma_macro_line'}{'contents'}[0]{'args'}[1]{'parent'} 
= $result_trees{'protect_comma_macro_line'}{'contents'}[0];
+$result_trees{'protect_comma_macro_line'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'protect_comma_macro_line'}{'contents'}[0];
+$result_trees{'protect_comma_macro_line'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'protect_comma_macro_line'}{'contents'}[0];
+$result_trees{'protect_comma_macro_line'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'protect_comma_macro_line'}{'contents'}[0];
+$result_trees{'protect_comma_macro_line'}{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'protect_comma_macro_line'}{'contents'}[0];
+$result_trees{'protect_comma_macro_line'}{'contents'}[0]{'parent'} = 
$result_trees{'protect_comma_macro_line'};
+$result_trees{'protect_comma_macro_line'}{'contents'}[1]{'parent'} = 
$result_trees{'protect_comma_macro_line'};
+$result_trees{'protect_comma_macro_line'}{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'protect_comma_macro_line'}{'contents'}[2];
+$result_trees{'protect_comma_macro_line'}{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'protect_comma_macro_line'}{'contents'}[2];
+$result_trees{'protect_comma_macro_line'}{'contents'}[2]{'parent'} = 
$result_trees{'protect_comma_macro_line'};
+$result_trees{'protect_comma_macro_line'}{'contents'}[3]{'parent'} = 
$result_trees{'protect_comma_macro_line'};
+$result_trees{'protect_comma_macro_line'}{'contents'}[4]{'contents'}[0]{'parent'}
 = $result_trees{'protect_comma_macro_line'}{'contents'}[4];
+$result_trees{'protect_comma_macro_line'}{'contents'}[4]{'parent'} = 
$result_trees{'protect_comma_macro_line'};
+
+$result_texts{'protect_comma_macro_line'} = '@macro macro2 { arg }
+we get \\arg\\ and another \\arg\\
+and another one on another line \\arg\\
+
+and a last in another paragraph
address@hidden macro
+
+we get arg,  comma \\, and another arg,  comma \\,
+and another one on another line arg,  comma \\,
+
+and a last in another paragraph
+';
+
+$result_errors{'protect_comma_macro_line'} = [];
+
+

Index: t/results/macro/protect_in_body.pl
===================================================================
RCS file: t/results/macro/protect_in_body.pl
diff -N t/results/macro/protect_in_body.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/protect_in_body.pl  2 Oct 2010 10:03:41 -0000       1.1
@@ -0,0 +1,146 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'protect_in_body'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'macro1',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg1',
+          'type' => 'macro_arg'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg2',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ 
@emph{\\arg2\\}
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg1' => 0,
+          'arg2' => 1
+        },
+        'macro_line' => ' macro1 { arg1 , arg2 }
+',
+        'macrobody' => 'result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ 
@emph{\\arg2\\}
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'the result: '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'f\\irst arg'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'samp',
+                  'parent' => {},
+                  'remaining_args' => 0
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'emph',
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => ' protected \\ -> \\arg1\\ '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'second arg '
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'emph',
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => ' after macro.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ]
+};
+$result_trees{'protect_in_body'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[0];
+$result_trees{'protect_in_body'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[0];
+$result_trees{'protect_in_body'}{'contents'}[0]{'args'}[2]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[0];
+$result_trees{'protect_in_body'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[0];
+$result_trees{'protect_in_body'}{'contents'}[0]{'parent'} = 
$result_trees{'protect_in_body'};
+$result_trees{'protect_in_body'}{'contents'}[1]{'parent'} = 
$result_trees{'protect_in_body'};
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[2];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1]{'args'}[0];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[1]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[2];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[2]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[2];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[3]{'args'}[0];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'parent'}
 = $result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[3];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[3]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[2];
+$result_trees{'protect_in_body'}{'contents'}[2]{'contents'}[4]{'parent'} = 
$result_trees{'protect_in_body'}{'contents'}[2];
+$result_trees{'protect_in_body'}{'contents'}[2]{'parent'} = 
$result_trees{'protect_in_body'};
+
+$result_texts{'protect_in_body'} = '@macro macro1 { arg1 , arg2 }
+result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
address@hidden macro
+
+the result: @address@hidden arg}} protected \\ -> \\arg1\\ @emph{second arg } 
after macro.
+';
+
+$result_errors{'protect_in_body'} = [];
+
+

Index: t/results/macro/protect_in_body_line_arg.pl
===================================================================
RCS file: t/results/macro/protect_in_body_line_arg.pl
diff -N t/results/macro/protect_in_body_line_arg.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/protect_in_body_line_arg.pl 2 Oct 2010 10:03:41 -0000       
1.1
@@ -0,0 +1,154 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'protect_in_body_line_arg'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'macro1',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg1',
+          'type' => 'macro_arg'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg2',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ 
@emph{\\arg2\\}
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg1' => 0,
+          'arg2' => 1
+        },
+        'macro_line' => ' macro1 { arg1 , arg2 }
+',
+        'macrobody' => 'result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ 
@emph{\\arg2\\}
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'result: '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'emph',
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => ' protected \\ -> \\arg1\\ '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'emph',
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => ' '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'f\\irst arg'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'samp',
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => ', second arg
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ]
+};
+$result_trees{'protect_in_body_line_arg'}{'contents'}[0]{'args'}[0]{'parent'} 
= $result_trees{'protect_in_body_line_arg'}{'contents'}[0];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[0]{'args'}[1]{'parent'} 
= $result_trees{'protect_in_body_line_arg'}{'contents'}[0];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[0]{'args'}[2]{'parent'} 
= $result_trees{'protect_in_body_line_arg'}{'contents'}[0];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[0];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[0]{'parent'} = 
$result_trees{'protect_in_body_line_arg'};
+$result_trees{'protect_in_body_line_arg'}{'contents'}[1]{'parent'} = 
$result_trees{'protect_in_body_line_arg'};
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[1];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[2]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[3];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[3]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[4]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[5]{'args'}[0];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[5]{'args'}[0]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[5];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[5]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'contents'}[6]{'parent'}
 = $result_trees{'protect_in_body_line_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_line_arg'}{'contents'}[2]{'parent'} = 
$result_trees{'protect_in_body_line_arg'};
+
+$result_texts{'protect_in_body_line_arg'} = '@macro macro1 { arg1 , arg2 }
+result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
address@hidden macro
+
+result: @emph{} protected \\ -> \\arg1\\ @emph{} @samp{f\\irst arg}, second arg
+';
+
+$result_errors{'protect_in_body_line_arg'} = [
+  {
+    'error_line' => ':5: warning: @macro1 defined with zero or more than one 
argument should be invoked with {}
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => '@macro1 defined with zero or more than one argument should be 
invoked with {}',
+    'type' => 'warning'
+  }
+];
+
+

Index: t/results/macro/protect_in_body_one_arg.pl
===================================================================
RCS file: t/results/macro/protect_in_body_one_arg.pl
diff -N t/results/macro/protect_in_body_one_arg.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/protect_in_body_one_arg.pl  2 Oct 2010 10:03:41 -0000       
1.1
@@ -0,0 +1,141 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'protect_in_body_one_arg'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'macro1',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg1',
+          'type' => 'macro_arg'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg2',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ 
@emph{\\arg2\\}
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg1' => 0,
+          'arg2' => 1
+        },
+        'macro_line' => ' macro1 { arg1 , arg2 }
+',
+        'macrobody' => 'result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ 
@emph{\\arg2\\}
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'result: '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'f\\irst arg'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'samp',
+                  'parent' => {},
+                  'remaining_args' => 0
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'emph',
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => ' protected \\ -> \\arg1\\ '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'emph',
+          'parent' => {},
+          'remaining_args' => 0
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'protect_in_body_one_arg'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'protect_in_body_one_arg'}{'contents'}[0];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'protect_in_body_one_arg'}{'contents'}[0];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[0]{'args'}[2]{'parent'} = 
$result_trees{'protect_in_body_one_arg'}{'contents'}[0];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'protect_in_body_one_arg'}{'contents'}[0];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[0]{'parent'} = 
$result_trees{'protect_in_body_one_arg'};
+$result_trees{'protect_in_body_one_arg'}{'contents'}[1]{'parent'} = 
$result_trees{'protect_in_body_one_arg'};
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'protect_in_body_one_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1]{'args'}[0];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'protect_in_body_one_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[2]{'parent'}
 = $result_trees{'protect_in_body_one_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'parent'}
 = $result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[3];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'contents'}[3]{'parent'}
 = $result_trees{'protect_in_body_one_arg'}{'contents'}[2];
+$result_trees{'protect_in_body_one_arg'}{'contents'}[2]{'parent'} = 
$result_trees{'protect_in_body_one_arg'};
+$result_trees{'protect_in_body_one_arg'}{'contents'}[3]{'parent'} = 
$result_trees{'protect_in_body_one_arg'};
+
+$result_texts{'protect_in_body_one_arg'} = '@macro macro1 { arg1 , arg2 }
+result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
address@hidden macro
+
+result: @address@hidden arg}} protected \\ -> \\arg1\\ @emph{}
+';
+
+$result_errors{'protect_in_body_one_arg'} = [];
+
+

Index: t/results/value/value_zero.pl
===================================================================
RCS file: t/results/value/value_zero.pl
diff -N t/results/value/value_zero.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/value/value_zero.pl       2 Oct 2010 10:03:41 -0000       1.1
@@ -0,0 +1,51 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'value_zero'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'zero',
+          'type' => 'misc_arg'
+        },
+        {
+          'parent' => {},
+          'text' => '0',
+          'type' => 'misc_arg'
+        }
+      ],
+      'cmdname' => 'set',
+      'parent' => {}
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'Value
+'
+        },
+        {
+          'parent' => {},
+          'text' => '0'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ]
+};
+$result_trees{'value_zero'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'value_zero'}{'contents'}[0];
+$result_trees{'value_zero'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'value_zero'}{'contents'}[0];
+$result_trees{'value_zero'}{'contents'}[0]{'parent'} = 
$result_trees{'value_zero'};
+$result_trees{'value_zero'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'value_zero'}{'contents'}[1];
+$result_trees{'value_zero'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'value_zero'}{'contents'}[1];
+$result_trees{'value_zero'}{'contents'}[1]{'parent'} = 
$result_trees{'value_zero'};
+
+$result_texts{'value_zero'} = '@set zero 0
+Value
+0';
+
+$result_errors{'value_zero'} = [];
+
+



reply via email to

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