texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp TODO Texinfo/Parser.pm t/60macro.t t...


From: Patrice Dumas
Subject: texinfo/tp TODO Texinfo/Parser.pm t/60macro.t t...
Date: Sun, 03 Oct 2010 11:51:37 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/10/03 11:51:37

Modified files:
        tp             : TODO 
        tp/Texinfo     : Parser.pm 
        tp/t           : 60macro.t test_utils.pl 
        tp/t/results/macro: macro_expansion.pl 
Added files:
        tp/t           : 55conditionals.t README 
        tp/t/results/conditionals: not_set.pl 
        tp/t/results/macro: arg_body_expansion_order.pl 
                            expansion_order.pl ifclear_in_macro.pl 
                            ifset_in_macro.pl ifset_in_macro_set.pl 
                            macro_in_ifset.pl 
                            macro_in_ifset_end_in_arg.pl 
                            too_much_args.pl 

Log message:
        Fix handling of ifset.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/60macro.t?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_utils.pl?cvsroot=texinfo&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/55conditionals.t?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/README?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/not_set.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_expansion.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/arg_body_expansion_order.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/expansion_order.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/ifclear_in_macro.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/ifset_in_macro.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/ifset_in_macro_set.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_in_ifset.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_in_ifset_end_in_arg.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/too_much_args.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- TODO        2 Oct 2010 13:25:07 -0000       1.4
+++ TODO        3 Oct 2010 11:51:36 -0000       1.5
@@ -18,8 +18,5 @@
 
 Test @set with an argument but no space following it. In ifset tests.
 
-test something @macro
-qsmlsmqldk
address@hidden macro sqjsqdlkjhdsq
-
+parse @sp a bit more.
 

Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- Texinfo/Parser.pm   2 Oct 2010 17:22:52 -0000       1.37
+++ Texinfo/Parser.pm   3 Oct 2010 11:51:36 -0000       1.38
@@ -1057,7 +1057,9 @@
       local $Data::Dumper::Indent = 1;
       local $Data::Dumper::Purity = 1;
       print STDERR "".Data::Dumper->Dump([$root], ['$root']);
-      print STDERR "NEW LINE($self->{'context_stack'}->[-1]): $line";
+      my $line_text = '';
+      $line_text = "$line_nr->{'line_nr'}.$line_nr->{'macro'}" if ($line_nr);
+      print STDERR "NEW 
LINE($self->{'context_stack'}->[-1]:@{$self->{'conditionals_stack'}}:$line_text):
 $line";
       delete $current->{'HERE !!!!'};
     }
 
@@ -1420,20 +1422,23 @@
             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'}) 
+                my $name = $1;
+                if ((exists($self->{'values'}->{$name}) and $command eq 
'ifset')
+                    or (!exists($self->{'values'}->{$name}) 
                          and $command eq 'ifclear')) {
                   $ifvalue_true = 1;
                 }
+                print STDERR "CONDITIONAL address@hidden $name: 
$ifvalue_true\n" if ($self->{'debug'});
               } 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});
+              print STDERR "CONDITIONAL address@hidden format $1: 
$ifvalue_true\n" if ($self->{'debug'});
             } else {
               die unless ($command =~ /^if(.*)/);
               $ifvalue_true = 1 if ($self->{'expanded_formats_hash'}->{$1});
+              print STDERR "CONDITIONAL address@hidden format $1: 
$ifvalue_true\n" if ($self->{'debug'});
             }
             if ($ifvalue_true) {
               push @{$self->{'conditionals_stack'}}, $command;
@@ -2069,21 +2074,26 @@
     }
     $line = '';
   } elsif ($command eq 'clear') {
-    if ($line =~ /^(\s+)([\w\-]+)/) {
-      $args = [$2];
-      delete $self->{'values'}->{$2};
+    if ($line =~ /^\s+([\w\-]+)/) {
+      $args = [$1];
+      delete $self->{'values'}->{$1};
     } else {
       _line_error ($self, sprintf($self->
                     __("%c%s requires a name"), ord('@'), $command), $line_nr);
+      chomp $line;
+      $special = { 'arg' => $line };
     }
+    $line = '';
   } elsif ($command eq 'unmacro') {
-    if ($line =~ /^(\s+)([\w\-]+)/) {
-      $args = [$2];
-      delete $self->{'macros'}->{$2};
+    if ($line =~ /^\s+([\w\-]+)/) {
+      $args = [$1];
+      delete $self->{'macros'}->{$1};
+      print STDERR "UNMACRO $1\n" if ($self->{'debug'});
     } else {
       _line_error ($self, sprintf($self->
                     __("%c%s requires a name"), ord('@'), $command), $line_nr);
     }
+    $line = '';
   } elsif ($command eq 'clickstyle') {
     if ($line =~ s/^\s+@(address@hidden)({})?\s*//) {
       $args = ['@'.$1];

Index: t/60macro.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/60macro.t,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- t/60macro.t 2 Oct 2010 17:22:52 -0000       1.7
+++ t/60macro.t 3 Oct 2010 11:51:37 -0000       1.8
@@ -72,6 +72,14 @@
 
 @test1 abc
 '],
+['too_much_args',
+'@macro twoargs {first, second}
+first arg: \first\
+second arg: \second\
address@hidden macro
+
address@hidden, two, three}.
+'],
 ['macro_expansion','
 @macro macro1 {arg1, arg2 }
 result of a macro with \arg1\ and 
@@ -82,15 +90,13 @@
 
 2 simple args. @macro1 {first arg, second arg}.
 
-3 simple args. @macro1{one , two, three}.
-
 comma in command. @macro1{aaa @samp{a macro , } bbb}.
 
 call on the line. @macro1 my arg.
 
 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
 
@@ -126,34 +132,34 @@
 '],
 ['protect_in_body',
 '@macro macro1 { arg1 , arg2 }
-result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
+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 }
-result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
+result: @emph{\arg1\} protected \\\\ -> \\\\arg1\\\\ @emph{\arg2\}
 @end macro
 
 @macro1 { @samp{f\irst arg}}
 '],
 ['protect_in_body_line_arg',
 '@macro macro1 { arg1 , arg2 }
-result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
+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{}
@@ -174,7 +180,7 @@
 
 @macro mymacro_with_args{arg}
 in with args
-now the arg \\arg\\
+now the arg \arg\
 after
 @end macro
 
@@ -257,7 +263,7 @@
 @macro4
 @end ifinfo
 @iftex
address@hidden,bb}
address@hidden,bb}
 @end iftex
 @macro4{}
 }
@@ -265,6 +271,130 @@
 Call macro7
 @macro7{aaa}
 
+'],
+['expansion_order',
+'@macro bidule{arg}
address@hidden
address@hidden macro
+
address@hidden machin
+\\\\arg\\\\
+
address@hidden macro
+
address@hidden
+'],
+['ifclear_in_macro',
+'@macro note {arg}
address@hidden notes 
+\arg\
address@hidden ifclear
address@hidden macro
+
address@hidden
+arg
+}
+'],
+['macro_in_ifset',
+'@macro macro1 {arg}
address@hidden ifset
address@hidden macro
+
address@hidden a
address@hidden
+in ifset
address@hidden ifset
+'],
+['macro_in_ifset_end_in_arg',
+'@macro macro1 {arg}
address@hidden ifset
address@hidden macro
+
address@hidden a
address@hidden
address@hidden ifset
+}
+in ifset
address@hidden ifset
+'],
+['ifset_in_macro',
+'@macro note {arg}
address@hidden notes 
+\arg\
address@hidden ifset
address@hidden macro
+
address@hidden
+arg
+}
+'],
+['ifset_in_macro_set',
+'@macro note {arg}
address@hidden notes 
+\arg\
address@hidden ifset
address@hidden macro
+
address@hidden
+arg
+}
+', {'values' => {'notes' => 1}}],
+# unmacro is required for C makeinfo to avoid a warning.
+# texi2dvi breaks.
+['arg_body_expansion_order',
+'
address@hidden othermacro
+initial
address@hidden macro
+
address@hidden redefineothermacro {arg}
address@hidden othermacro
address@hidden othermacro
+different
address@hidden macro
+\arg\
address@hidden macro
+
address@hidden@othermacro{}}
+']
+);
+
+my @todo =(
+['glossary',
+'@macro glossarytext
address@hidden @asis
address@hidden macro
+
address@hidden glossary
address@hidden
address@hidden table
+
address@hidden macro
+
address@hidden gentry {id, name, text}
address@hidden
address@hidden,\name\}
address@hidden ifhtml
address@hidden
+\name\ (@pxref{\id\})
address@hidden ifnothtml
address@hidden expandglossary
address@hidden expandglossary{glossary}
address@hidden glossarytext
address@hidden glossarytext
+\\\\glossary\\\\
address@hidden \name\ @anchor{\id\}
+\text\
address@hidden macro
address@hidden macro
address@hidden address@hidden
+
address@hidden macro
+
+The @gentry{id1, name1, text1\, arg1 } is used in many cases while
address@hidden, name2, text2} is quite specific
+
address@hidden
 ']
 );
 

Index: t/test_utils.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_utils.pl,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- t/test_utils.pl     2 Oct 2010 10:03:41 -0000       1.14
+++ t/test_utils.pl     3 Oct 2010 11:51:37 -0000       1.15
@@ -15,9 +15,11 @@
 
 our $arg_generate;
 our $arg_debug;
+our $arg_complete;
 
 Getopt::Long::Configure("gnu_getopt");
-GetOptions('g|generate' => \$arg_generate, 'd|debug' => \$arg_debug);
+GetOptions('g|generate' => \$arg_generate, 'd|debug' => \$arg_debug, 
+           'c|complete' => \$arg_complete);
 
 our $arg_test_case = shift @ARGV;
 
@@ -45,8 +47,11 @@
   my $test_case = shift;
   my $test_name = shift @$test_case;
   my $test_text = shift @$test_case;
+  my $parser_options = shift @$test_case;
+  $parser_options = {} if (!defined($parser_options));
 
-  my $parser = Texinfo::Parser->parser({'test' => 1, 'debug' => 
$self->{'debug'}});
+  my $parser = Texinfo::Parser->parser({'test' => 1, 'debug' => 
$self->{'debug'},
+                                       %$parser_options});
   print STDERR "  TEST $test_name\n" if ($self->{'debug'});
   my $result =  $parser->parse_texi_text($test_text, 1);
   my ($errors, $error_nrs) = $parser->errors();
@@ -124,13 +129,45 @@
   }
 
   foreach my $test_case (@$ran_tests) {
+    if ($arg_complete) {
+      $test->output_texi_file($test_case)
+    } else {
     $test->test($test_case);
   }
-  if ($generate) {
+  }
+  if ($generate or $arg_complete) {
     plan tests => 1;
   } else {
     plan tests => (1 + scalar(@$ran_tests) * 3);
   }
 }
 
+sub output_texi_file($)
+{
+  my $self = shift;
+  my $test_case = shift;
+  my $test_name = shift @$test_case;
+  my $test_text = shift @$test_case;
+
+  my $dir = "texi/$self->{'name'}/";
+  mkdir "texi/" or die 
+     unless (-d "texi/");
+  mkdir $dir or die 
+     unless (-d $dir);
+  my $file = "${dir}$test_name.texi";
+  open (OUTFILE, ">$file") or die ("Open $file: $!\n");
+  print OUTFILE "\\input texinfo address@hidden -*-texinfo-*-
+
address@hidden $test_name.info
+
address@hidden Top
+
address@hidden $test_name
+
+$test_text
+
address@hidden";
+  close (OUTFILE);
+}
+
 1;

Index: t/results/macro/macro_expansion.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/macro/macro_expansion.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/macro/macro_expansion.pl  2 Oct 2010 10:03:41 -0000       1.2
+++ t/results/macro/macro_expansion.pl  3 Oct 2010 11:51:37 -0000       1.3
@@ -118,46 +118,6 @@
       'contents' => [
         {
           'parent' => {},
-          'text' => '3 simple args. result of a macro with one  and 
-'
-        }
-      ],
-      'parent' => {},
-      'type' => 'paragraph'
-    },
-    {
-      'cmdname' => 'verbatim',
-      'contents' => [
-        {
-          'parent' => {},
-          'text' => 'two, three
-',
-          'type' => 'raw'
-        }
-      ],
-      'parent' => {}
-    },
-    {
-      'contents' => [
-        {
-          'parent' => {},
-          'text' => '.
-'
-        }
-      ],
-      'parent' => {},
-      'type' => 'paragraph'
-    },
-    {
-      'parent' => {},
-      'text' => '
-',
-      'type' => 'normal_line'
-    },
-    {
-      'contents' => [
-        {
-          'parent' => {},
           'text' => 'comma in command. result of a macro with aaa '
         },
         {
@@ -417,6 +377,10 @@
 $result_trees{'macro_expansion'}{'contents'}[5]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[6]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[7]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[7];
+$result_trees{'macro_expansion'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'macro_expansion'}{'contents'}[7]{'contents'}[1]{'args'}[0];
+$result_trees{'macro_expansion'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'macro_expansion'}{'contents'}[7]{'contents'}[1];
+$result_trees{'macro_expansion'}{'contents'}[7]{'contents'}[1]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[7];
+$result_trees{'macro_expansion'}{'contents'}[7]{'contents'}[2]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[7];
 $result_trees{'macro_expansion'}{'contents'}[7]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[8]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[8];
 $result_trees{'macro_expansion'}{'contents'}[8]{'parent'} = 
$result_trees{'macro_expansion'};
@@ -424,10 +388,6 @@
 $result_trees{'macro_expansion'}{'contents'}[9]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[10]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[11]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[11];
-$result_trees{'macro_expansion'}{'contents'}[11]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'macro_expansion'}{'contents'}[11]{'contents'}[1]{'args'}[0];
-$result_trees{'macro_expansion'}{'contents'}[11]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'macro_expansion'}{'contents'}[11]{'contents'}[1];
-$result_trees{'macro_expansion'}{'contents'}[11]{'contents'}[1]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[11];
-$result_trees{'macro_expansion'}{'contents'}[11]{'contents'}[2]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[11];
 $result_trees{'macro_expansion'}{'contents'}[11]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[12]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[12];
 $result_trees{'macro_expansion'}{'contents'}[12]{'parent'} = 
$result_trees{'macro_expansion'};
@@ -450,22 +410,15 @@
 $result_trees{'macro_expansion'}{'contents'}[22]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[23]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[23];
 $result_trees{'macro_expansion'}{'contents'}[23]{'parent'} = 
$result_trees{'macro_expansion'};
-$result_trees{'macro_expansion'}{'contents'}[24]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[24];
 $result_trees{'macro_expansion'}{'contents'}[24]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[25]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[25];
 $result_trees{'macro_expansion'}{'contents'}[25]{'parent'} = 
$result_trees{'macro_expansion'};
+$result_trees{'macro_expansion'}{'contents'}[26]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[26];
+$result_trees{'macro_expansion'}{'contents'}[26]{'contents'}[1]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[26];
+$result_trees{'macro_expansion'}{'contents'}[26]{'contents'}[2]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[26];
 $result_trees{'macro_expansion'}{'contents'}[26]{'parent'} = 
$result_trees{'macro_expansion'};
 $result_trees{'macro_expansion'}{'contents'}[27]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[27];
 $result_trees{'macro_expansion'}{'contents'}[27]{'parent'} = 
$result_trees{'macro_expansion'};
-$result_trees{'macro_expansion'}{'contents'}[28]{'parent'} = 
$result_trees{'macro_expansion'};
-$result_trees{'macro_expansion'}{'contents'}[29]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[29];
-$result_trees{'macro_expansion'}{'contents'}[29]{'parent'} = 
$result_trees{'macro_expansion'};
-$result_trees{'macro_expansion'}{'contents'}[30]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[30];
-$result_trees{'macro_expansion'}{'contents'}[30]{'contents'}[1]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[30];
-$result_trees{'macro_expansion'}{'contents'}[30]{'contents'}[2]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[30];
-$result_trees{'macro_expansion'}{'contents'}[30]{'parent'} = 
$result_trees{'macro_expansion'};
-$result_trees{'macro_expansion'}{'contents'}[31]{'contents'}[0]{'parent'} = 
$result_trees{'macro_expansion'}{'contents'}[31];
-$result_trees{'macro_expansion'}{'contents'}[31]{'parent'} = 
$result_trees{'macro_expansion'};
 
 $result_texts{'macro_expansion'} = '
 @macro macro1 {arg1, arg2 }
@@ -481,12 +434,6 @@
 @end verbatim
 .
 
-3 simple args. result of a macro with one  and 
address@hidden
-two, three
address@hidden verbatim
-.
-
 comma in command. result of a macro with aaa @samp{a macro , } bbb and 
 @verbatim
 
@@ -523,10 +470,10 @@
 
 $result_errors{'macro_expansion'} = [
   {
-    'error_line' => ':15: warning: @macro1 defined with zero or more than one 
argument should be invoked with {}
+    'error_line' => ':13: warning: @macro1 defined with zero or more than one 
argument should be invoked with {}
 ',
     'file_name' => '',
-    'line_nr' => 15,
+    'line_nr' => 13,
     'macro' => '',
     'text' => '@macro1 defined with zero or more than one argument should be 
invoked with {}',
     'type' => 'warning'

Index: t/55conditionals.t
===================================================================
RCS file: t/55conditionals.t
diff -N t/55conditionals.t
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/55conditionals.t  3 Oct 2010 11:51:37 -0000       1.1
@@ -0,0 +1,21 @@
+use strict;
+
+use Test::More;
+
+require 't/test_utils.pl';
+
+my @test_cases = (
+[ 'not_set',
+'@ifset a
+
+Flag a is set.
+
address@hidden ifset
+'],
+);
+
+our ($arg_test_case, $arg_generate, $arg_debug);
+
+run_all ('conditionals', address@hidden, $arg_test_case,
+   $arg_generate, $arg_debug);
+

Index: t/README
===================================================================
RCS file: t/README
diff -N t/README
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/README    3 Oct 2010 11:51:37 -0000       1.1
@@ -0,0 +1,9 @@
+From the top directory, you can create texinfo files corresponding with
+tests by running something along
+
+perl t/60macro.t -c
+
+to create a file for each of the test in t/60macro.t, or for a specific
+test, here arg_body_expansion_order: 
+
+perl t/60macro.t -c arg_body_expansion_order

Index: t/results/conditionals/not_set.pl
===================================================================
RCS file: t/results/conditionals/not_set.pl
diff -N t/results/conditionals/not_set.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/not_set.pl   3 Oct 2010 11:51:37 -0000       1.1
@@ -0,0 +1,11 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'not_set'} = {
+  'contents' => []
+};
+
+$result_texts{'not_set'} = '';
+
+$result_errors{'not_set'} = [];
+
+

Index: t/results/macro/arg_body_expansion_order.pl
===================================================================
RCS file: t/results/macro/arg_body_expansion_order.pl
diff -N t/results/macro/arg_body_expansion_order.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/arg_body_expansion_order.pl 3 Oct 2010 11:51:37 -0000       
1.1
@@ -0,0 +1,205 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'arg_body_expansion_order'} = {
+  'contents' => [
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'othermacro',
+          'type' => 'macro_name'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'initial
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' othermacro
+',
+        'macrobody' => 'initial
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'redefineothermacro',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '@unmacro othermacro
+',
+          'type' => 'raw'
+        },
+        {
+          'cmdname' => 'macro',
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'different
+',
+              'type' => 'raw'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'macro_line' => ' othermacro
+'
+          }
+        },
+        {
+          'parent' => {},
+          'text' => '\\arg\\
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' redefineothermacro {arg}
+',
+        'macrobody' => '@unmacro othermacro
address@hidden othermacro
+different
address@hidden macro
+\\arg\\
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'othermacro',
+          'type' => 'misc_arg'
+        }
+      ],
+      'cmdname' => 'unmacro',
+      'parent' => {}
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'othermacro',
+          'type' => 'macro_name'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'different
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' othermacro
+',
+        'macrobody' => 'different
+'
+      }
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'different'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'arg_body_expansion_order'}{'contents'}[0]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+$result_trees{'arg_body_expansion_order'}{'contents'}[1]{'args'}[0]{'parent'} 
= $result_trees{'arg_body_expansion_order'}{'contents'}[1];
+$result_trees{'arg_body_expansion_order'}{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'arg_body_expansion_order'}{'contents'}[1];
+$result_trees{'arg_body_expansion_order'}{'contents'}[1]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+$result_trees{'arg_body_expansion_order'}{'contents'}[2]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+$result_trees{'arg_body_expansion_order'}{'contents'}[3]{'args'}[0]{'parent'} 
= $result_trees{'arg_body_expansion_order'}{'contents'}[3];
+$result_trees{'arg_body_expansion_order'}{'contents'}[3]{'args'}[1]{'parent'} 
= $result_trees{'arg_body_expansion_order'}{'contents'}[3];
+$result_trees{'arg_body_expansion_order'}{'contents'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'arg_body_expansion_order'}{'contents'}[3];
+$result_trees{'arg_body_expansion_order'}{'contents'}[3]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'arg_body_expansion_order'}{'contents'}[3]{'contents'}[1];
+$result_trees{'arg_body_expansion_order'}{'contents'}[3]{'contents'}[1]{'parent'}
 = $result_trees{'arg_body_expansion_order'}{'contents'}[3];
+$result_trees{'arg_body_expansion_order'}{'contents'}[3]{'contents'}[2]{'parent'}
 = $result_trees{'arg_body_expansion_order'}{'contents'}[3];
+$result_trees{'arg_body_expansion_order'}{'contents'}[3]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+$result_trees{'arg_body_expansion_order'}{'contents'}[4]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+$result_trees{'arg_body_expansion_order'}{'contents'}[5]{'args'}[0]{'parent'} 
= $result_trees{'arg_body_expansion_order'}{'contents'}[5];
+$result_trees{'arg_body_expansion_order'}{'contents'}[5]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+$result_trees{'arg_body_expansion_order'}{'contents'}[6]{'args'}[0]{'parent'} 
= $result_trees{'arg_body_expansion_order'}{'contents'}[6];
+$result_trees{'arg_body_expansion_order'}{'contents'}[6]{'contents'}[0]{'parent'}
 = $result_trees{'arg_body_expansion_order'}{'contents'}[6];
+$result_trees{'arg_body_expansion_order'}{'contents'}[6]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+$result_trees{'arg_body_expansion_order'}{'contents'}[7]{'contents'}[0]{'parent'}
 = $result_trees{'arg_body_expansion_order'}{'contents'}[7];
+$result_trees{'arg_body_expansion_order'}{'contents'}[7]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+$result_trees{'arg_body_expansion_order'}{'contents'}[8]{'parent'} = 
$result_trees{'arg_body_expansion_order'};
+
+$result_texts{'arg_body_expansion_order'} = '
address@hidden othermacro
+initial
address@hidden macro
+
address@hidden redefineothermacro {arg}
address@hidden othermacro
address@hidden othermacro
+different
address@hidden macro
+\\arg\\
address@hidden macro
+
address@hidden othermacro
address@hidden othermacro
+different
address@hidden macro
+different
+';
+
+$result_errors{'arg_body_expansion_order'} = [];
+
+

Index: t/results/macro/expansion_order.pl
===================================================================
RCS file: t/results/macro/expansion_order.pl
diff -N t/results/macro/expansion_order.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/expansion_order.pl  3 Oct 2010 11:51:37 -0000       1.1
@@ -0,0 +1,130 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'expansion_order'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'bidule',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '@machin{}
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' bidule{arg}
+',
+        'macrobody' => '@machin{}
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'machin',
+          'type' => 'macro_name'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '\\\\arg\\\\
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' machin
+',
+        'macrobody' => '\\\\arg\\\\
+
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '\\arg\\
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'expansion_order'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'expansion_order'}{'contents'}[0];
+$result_trees{'expansion_order'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'expansion_order'}{'contents'}[0];
+$result_trees{'expansion_order'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'expansion_order'}{'contents'}[0];
+$result_trees{'expansion_order'}{'contents'}[0]{'parent'} = 
$result_trees{'expansion_order'};
+$result_trees{'expansion_order'}{'contents'}[1]{'parent'} = 
$result_trees{'expansion_order'};
+$result_trees{'expansion_order'}{'contents'}[2]{'args'}[0]{'parent'} = 
$result_trees{'expansion_order'}{'contents'}[2];
+$result_trees{'expansion_order'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'expansion_order'}{'contents'}[2];
+$result_trees{'expansion_order'}{'contents'}[2]{'contents'}[1]{'parent'} = 
$result_trees{'expansion_order'}{'contents'}[2];
+$result_trees{'expansion_order'}{'contents'}[2]{'parent'} = 
$result_trees{'expansion_order'};
+$result_trees{'expansion_order'}{'contents'}[3]{'parent'} = 
$result_trees{'expansion_order'};
+$result_trees{'expansion_order'}{'contents'}[4]{'contents'}[0]{'parent'} = 
$result_trees{'expansion_order'}{'contents'}[4];
+$result_trees{'expansion_order'}{'contents'}[4]{'parent'} = 
$result_trees{'expansion_order'};
+$result_trees{'expansion_order'}{'contents'}[5]{'parent'} = 
$result_trees{'expansion_order'};
+
+$result_texts{'expansion_order'} = '@macro bidule{arg}
address@hidden
address@hidden macro
+
address@hidden machin
+\\\\arg\\\\
+
address@hidden macro
+
+\\arg\\
+
+';
+
+$result_errors{'expansion_order'} = [];
+
+

Index: t/results/macro/ifclear_in_macro.pl
===================================================================
RCS file: t/results/macro/ifclear_in_macro.pl
diff -N t/results/macro/ifclear_in_macro.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/ifclear_in_macro.pl 3 Oct 2010 11:51:37 -0000       1.1
@@ -0,0 +1,100 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'ifclear_in_macro'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'note',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '@ifclear notes 
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '\\arg\\
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '@end ifclear
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' note {arg}
+',
+        'macrobody' => '@ifclear notes 
+\\arg\\
address@hidden ifclear
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'arg
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'ifclear_in_macro'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'ifclear_in_macro'}{'contents'}[0];
+$result_trees{'ifclear_in_macro'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'ifclear_in_macro'}{'contents'}[0];
+$result_trees{'ifclear_in_macro'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'ifclear_in_macro'}{'contents'}[0];
+$result_trees{'ifclear_in_macro'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'ifclear_in_macro'}{'contents'}[0];
+$result_trees{'ifclear_in_macro'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'ifclear_in_macro'}{'contents'}[0];
+$result_trees{'ifclear_in_macro'}{'contents'}[0]{'parent'} = 
$result_trees{'ifclear_in_macro'};
+$result_trees{'ifclear_in_macro'}{'contents'}[1]{'parent'} = 
$result_trees{'ifclear_in_macro'};
+$result_trees{'ifclear_in_macro'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'ifclear_in_macro'}{'contents'}[2];
+$result_trees{'ifclear_in_macro'}{'contents'}[2]{'parent'} = 
$result_trees{'ifclear_in_macro'};
+$result_trees{'ifclear_in_macro'}{'contents'}[3]{'parent'} = 
$result_trees{'ifclear_in_macro'};
+
+$result_texts{'ifclear_in_macro'} = '@macro note {arg}
address@hidden notes 
+\\arg\\
address@hidden ifclear
address@hidden macro
+
+arg
+
+';
+
+$result_errors{'ifclear_in_macro'} = [];
+
+

Index: t/results/macro/ifset_in_macro.pl
===================================================================
RCS file: t/results/macro/ifset_in_macro.pl
diff -N t/results/macro/ifset_in_macro.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/ifset_in_macro.pl   3 Oct 2010 11:51:37 -0000       1.1
@@ -0,0 +1,78 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'ifset_in_macro'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'note',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '@ifset notes 
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '\\arg\\
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '@end ifset
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' note {arg}
+',
+        'macrobody' => '@ifset notes 
+\\arg\\
address@hidden ifset
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'ifset_in_macro'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'ifset_in_macro'}{'contents'}[0];
+$result_trees{'ifset_in_macro'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'ifset_in_macro'}{'contents'}[0];
+$result_trees{'ifset_in_macro'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'ifset_in_macro'}{'contents'}[0];
+$result_trees{'ifset_in_macro'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'ifset_in_macro'}{'contents'}[0];
+$result_trees{'ifset_in_macro'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'ifset_in_macro'}{'contents'}[0];
+$result_trees{'ifset_in_macro'}{'contents'}[0]{'parent'} = 
$result_trees{'ifset_in_macro'};
+$result_trees{'ifset_in_macro'}{'contents'}[1]{'parent'} = 
$result_trees{'ifset_in_macro'};
+
+$result_texts{'ifset_in_macro'} = '@macro note {arg}
address@hidden notes 
+\\arg\\
address@hidden ifset
address@hidden macro
+
+';
+
+$result_errors{'ifset_in_macro'} = [];
+
+

Index: t/results/macro/ifset_in_macro_set.pl
===================================================================
RCS file: t/results/macro/ifset_in_macro_set.pl
diff -N t/results/macro/ifset_in_macro_set.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/ifset_in_macro_set.pl       3 Oct 2010 11:51:37 -0000       
1.1
@@ -0,0 +1,100 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'ifset_in_macro_set'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'note',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '@ifset notes 
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '\\arg\\
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => '@end ifset
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' note {arg}
+',
+        'macrobody' => '@ifset notes 
+\\arg\\
address@hidden ifset
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'arg
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'ifset_in_macro_set'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'ifset_in_macro_set'}{'contents'}[0];
+$result_trees{'ifset_in_macro_set'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'ifset_in_macro_set'}{'contents'}[0];
+$result_trees{'ifset_in_macro_set'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'ifset_in_macro_set'}{'contents'}[0];
+$result_trees{'ifset_in_macro_set'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'ifset_in_macro_set'}{'contents'}[0];
+$result_trees{'ifset_in_macro_set'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'ifset_in_macro_set'}{'contents'}[0];
+$result_trees{'ifset_in_macro_set'}{'contents'}[0]{'parent'} = 
$result_trees{'ifset_in_macro_set'};
+$result_trees{'ifset_in_macro_set'}{'contents'}[1]{'parent'} = 
$result_trees{'ifset_in_macro_set'};
+$result_trees{'ifset_in_macro_set'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'ifset_in_macro_set'}{'contents'}[2];
+$result_trees{'ifset_in_macro_set'}{'contents'}[2]{'parent'} = 
$result_trees{'ifset_in_macro_set'};
+$result_trees{'ifset_in_macro_set'}{'contents'}[3]{'parent'} = 
$result_trees{'ifset_in_macro_set'};
+
+$result_texts{'ifset_in_macro_set'} = '@macro note {arg}
address@hidden notes 
+\\arg\\
address@hidden ifset
address@hidden macro
+
+arg
+
+';
+
+$result_errors{'ifset_in_macro_set'} = [];
+
+

Index: t/results/macro/macro_in_ifset.pl
===================================================================
RCS file: t/results/macro/macro_in_ifset.pl
diff -N t/results/macro/macro_in_ifset.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/macro_in_ifset.pl   3 Oct 2010 11:51:37 -0000       1.1
@@ -0,0 +1,60 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'macro_in_ifset'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'macro1',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '@end ifset
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' macro1 {arg}
+',
+        'macrobody' => '@end ifset
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    }
+  ]
+};
+$result_trees{'macro_in_ifset'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'macro_in_ifset'}{'contents'}[0];
+$result_trees{'macro_in_ifset'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'macro_in_ifset'}{'contents'}[0];
+$result_trees{'macro_in_ifset'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'macro_in_ifset'}{'contents'}[0];
+$result_trees{'macro_in_ifset'}{'contents'}[0]{'parent'} = 
$result_trees{'macro_in_ifset'};
+$result_trees{'macro_in_ifset'}{'contents'}[1]{'parent'} = 
$result_trees{'macro_in_ifset'};
+
+$result_texts{'macro_in_ifset'} = '@macro macro1 {arg}
address@hidden ifset
address@hidden macro
+
+';
+
+$result_errors{'macro_in_ifset'} = [];
+
+

Index: t/results/macro/macro_in_ifset_end_in_arg.pl
===================================================================
RCS file: t/results/macro/macro_in_ifset_end_in_arg.pl
diff -N t/results/macro/macro_in_ifset_end_in_arg.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/macro_in_ifset_end_in_arg.pl        3 Oct 2010 11:51:37 
-0000       1.1
@@ -0,0 +1,100 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'macro_in_ifset_end_in_arg'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'macro1',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '@end ifset
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'arg' => 0
+        },
+        'macro_line' => ' macro1 {arg}
+',
+        'macrobody' => '@end ifset
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'parent' => {},
+      'text' => '
+'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in ifset
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ]
+};
+$result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[0]{'args'}[0]{'parent'} 
= $result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[0];
+$result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[0]{'args'}[1]{'parent'} 
= $result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[0];
+$result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[0];
+$result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[0]{'parent'} = 
$result_trees{'macro_in_ifset_end_in_arg'};
+$result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[1]{'parent'} = 
$result_trees{'macro_in_ifset_end_in_arg'};
+$result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[2]{'parent'} = 
$result_trees{'macro_in_ifset_end_in_arg'};
+$result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[3];
+$result_trees{'macro_in_ifset_end_in_arg'}{'contents'}[3]{'parent'} = 
$result_trees{'macro_in_ifset_end_in_arg'};
+
+$result_texts{'macro_in_ifset_end_in_arg'} = '@macro macro1 {arg}
address@hidden ifset
address@hidden macro
+
+
+in ifset
+';
+
+$result_errors{'macro_in_ifset_end_in_arg'} = [
+  {
+    'error_line' => ':8: Misplaced }
+',
+    'file_name' => '',
+    'line_nr' => 8,
+    'macro' => '',
+    'text' => 'Misplaced }',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':10: Unmatched address@hidden'
+',
+    'file_name' => '',
+    'line_nr' => 10,
+    'macro' => '',
+    'text' => 'Unmatched address@hidden'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/macro/too_much_args.pl
===================================================================
RCS file: t/results/macro/too_much_args.pl
diff -N t/results/macro/too_much_args.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/too_much_args.pl    3 Oct 2010 11:51:37 -0000       1.1
@@ -0,0 +1,97 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'too_much_args'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'twoargs',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'first',
+          'type' => 'macro_arg'
+        },
+        {
+          'parent' => {},
+          'text' => 'second',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'first arg: \\first\\
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => 'second arg: \\second\\
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'args_index' => {
+          'first' => 0,
+          'second' => 1
+        },
+        'macro_line' => ' twoargs {first, second}
+',
+        'macrobody' => 'first arg: \\first\\
+second arg: \\second\\
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'first arg: one
+'
+        },
+        {
+          'parent' => {},
+          'text' => 'second arg: two, three.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ]
+};
+$result_trees{'too_much_args'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'too_much_args'}{'contents'}[0];
+$result_trees{'too_much_args'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'too_much_args'}{'contents'}[0];
+$result_trees{'too_much_args'}{'contents'}[0]{'args'}[2]{'parent'} = 
$result_trees{'too_much_args'}{'contents'}[0];
+$result_trees{'too_much_args'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'too_much_args'}{'contents'}[0];
+$result_trees{'too_much_args'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'too_much_args'}{'contents'}[0];
+$result_trees{'too_much_args'}{'contents'}[0]{'parent'} = 
$result_trees{'too_much_args'};
+$result_trees{'too_much_args'}{'contents'}[1]{'parent'} = 
$result_trees{'too_much_args'};
+$result_trees{'too_much_args'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'too_much_args'}{'contents'}[2];
+$result_trees{'too_much_args'}{'contents'}[2]{'contents'}[1]{'parent'} = 
$result_trees{'too_much_args'}{'contents'}[2];
+$result_trees{'too_much_args'}{'contents'}[2]{'parent'} = 
$result_trees{'too_much_args'};
+
+$result_texts{'too_much_args'} = '@macro twoargs {first, second}
+first arg: \\first\\
+second arg: \\second\\
address@hidden macro
+
+first arg: one
+second arg: two, three.
+';
+
+$result_errors{'too_much_args'} = [];
+
+



reply via email to

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