texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp Texinfo/Parser.pm t/16raw.t t/result...


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Parser.pm t/16raw.t t/result...
Date: Tue, 28 Sep 2010 22:31:13 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/09/28 22:31:13

Modified files:
        tp/Texinfo     : Parser.pm 
        tp/t           : 16raw.t 
        tp/t/results/raw: nested_macros.pl 
Added files:
        tp/t           : 60macro.t 
        tp/t/results/macro: bad_argument.pl bad_formal_arg.pl 
                            empty_end.pl zero_argument.pl 

Log message:
        Consider a @macro without name to still be a macro for the purpose
        of matching with @end macro.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/16raw.t?cvsroot=texinfo&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/60macro.t?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/bad_argument.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/bad_formal_arg.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/empty_end.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/zero_argument.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/raw/nested_macros.pl?cvsroot=texinfo&r1=1.2&r2=1.3

Patches:
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- Texinfo/Parser.pm   28 Sep 2010 21:26:39 -0000      1.27
+++ Texinfo/Parser.pm   28 Sep 2010 22:31:11 -0000      1.28
@@ -621,10 +621,11 @@
   my $parent = shift;
   my $line_nr = shift;
   my $top_level = shift;
-  my $macro;
+  my $macro = { 'cmdname' => $command, 'parent' => $parent, 'contents' => [],
+               'special' => {'macro_line' => $line} };
   #if ($line =~ /^\s+(\w[\w-]*)\s*(.*)/) {
   if ($line =~ /^\s+([\w\-]+)\s*(.*)/) {
-    my $macro_arg_name = $1;
+    my $macro_name = $1;
     my $args_def = $2;
     my @args;
 
@@ -633,18 +634,18 @@
     }
  
     if ($args_def =~ /address@hidden/ and $top_level) {
-      $self->_line_error(sprintf($self->__("Bad syntax for address@hidden"), 
$command));
+      $self->_line_error(sprintf($self->__("Bad syntax for address@hidden"), 
$command),
+                         $line_nr);
     }
+    print STDERR "MACRO address@hidden $macro_name\n" if ($self->{'debug'});
 
-    $macro = { 'cmdname' => $command, 'parent' => $parent, 'contents' => [],
-               'special' => {'macro_line' => $line} };
     $macro->{'args'} = [ 
-      { 'type' => 'macro_arg_name', 'text' => $macro_arg_name, 
+      { 'type' => 'macro_name', 'text' => $macro_name, 
           'parent' => $macro } ];
     foreach my $formal_arg (@args) {
       push @{$macro->{'args'}}, 
-        { 'type' => 'macro_arg_args', 'text' => $formal_arg, 
-          'parent' => $macro};
+        { 'type' => 'macro_arg', 'text' => $formal_arg, 
+          'parent' => $macro} if ($formal_arg ne '');
       $self->_line_error(sprintf($self->__("Bad address@hidden formal 
argument: %s"),
                                            $formal_arg), $line_nr)
             if ($formal_arg !~ /^[\w\-]+$/ and $top_level);
@@ -968,15 +969,13 @@
             $block_commands{$current->{'cmdname'}} and 
             ($block_commands{$current->{'cmdname'}} eq 'raw')) {
         # special case for macro that may be nested
-        my $macro;
         if (($current->{'cmdname'} eq 'macro' 
               or $current->{'cmdname'} eq 'rmacro') 
              and $line =~ /address@hidden/) {
           my $mline = $line;
           $mline =~ s/\s*\@(r?macro)//;
-          $macro = _parse_macro_command ($self, $1, $mline, $current, 
$line_nr);
-        }
-        if ($macro) {
+          my $macro = _parse_macro_command ($self, $1, $mline, 
+                                              $current, $line_nr);
           push @{$current->{'contents'}}, $macro;
           $current = $current->{'contents'}->[-1];
           last;
@@ -994,8 +993,10 @@
                         and $current->{'parent'}->{'cmdname'} ne 'rmacro'))) {
             $current->{'special'}->{'macrobody'} = 
                tree_to_texi({ 'contents' => $current->{'contents'} });
+            if ($current->{'args'} and $current->{'args'}->[0]) {
             $self->{'macros'}->{$current->{'args'}->[0]->{'text'}} = $current;
           }
+          }
           $current = $current->{'parent'};
           last unless ($line =~ /\S/);
         } else {
@@ -1183,12 +1184,9 @@
             $current = $current->{'args'}->[-1];
           }
         } elsif (exists($block_commands{$command})) {
-          my $macro;
           if ($command eq 'macro' or $command eq 'rmacro') {
-            $macro = _parse_macro_command ($self, $command, $line, 
+            my $macro = _parse_macro_command ($self, $command, $line, 
               $current, $line_nr, 1);
-          }
-          if ($macro) {
             push @{$current->{'contents'}}, $macro;
             $current = $current->{'contents'}->[-1];
             last;

Index: t/16raw.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/16raw.t,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- t/16raw.t   27 Sep 2010 22:06:16 -0000      1.5
+++ t/16raw.t   28 Sep 2010 22:31:11 -0000      1.6
@@ -12,6 +12,7 @@
 @end macro
 @macro
 @end macro
address@hidden macro
 '],
 ['misc_raw','
 @html 

Index: t/results/raw/nested_macros.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/raw/nested_macros.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/raw/nested_macros.pl      28 Sep 2010 21:26:39 -0000      1.2
+++ t/results/raw/nested_macros.pl      28 Sep 2010 22:31:13 -0000      1.3
@@ -7,17 +7,17 @@
         {
           'parent' => {},
           'text' => 'truc',
-          'type' => 'macro_arg_name'
+          'type' => 'macro_name'
         },
         {
           'parent' => {},
           'text' => 'arg',
-          'type' => 'macro_arg_args'
+          'type' => 'macro_arg'
         },
         {
           'parent' => {},
           'text' => 'ex',
-          'type' => 'macro_arg_args'
+          'type' => 'macro_arg'
         }
       ],
       'cmdname' => 'macro',
@@ -33,7 +33,7 @@
             {
               'parent' => {},
               'text' => 'othermacro',
-              'type' => 'macro_arg_name'
+              'type' => 'macro_name'
             }
           ],
           'cmdname' => 'macro',
@@ -52,10 +52,13 @@
           }
         },
         {
+          'cmdname' => 'macro',
+          'contents' => [],
           'parent' => {},
-          'text' => '@macro
-',
-          'type' => 'raw'
+          'special' => {
+            'macro_line' => '
+'
+          }
         }
       ],
       'parent' => {},
@@ -67,6 +70,7 @@
 other macro
 @end macro
 @macro
address@hidden macro
 '
       }
     }
@@ -89,6 +93,7 @@
 @end macro
 @macro
 @end macro
address@hidden macro
 ';
 
 $result_errors{'nested_macros'} = [];

Index: t/60macro.t
===================================================================
RCS file: t/60macro.t
diff -N t/60macro.t
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/60macro.t 28 Sep 2010 22:31:11 -0000      1.1
@@ -0,0 +1,54 @@
+use strict;
+
+use Test::More;
+
+require 't/test_utils.pl';
+
+my @test_cases = (
+['zero_argument',
+'@macro foo {}
+in foo
address@hidden macro
+
address@hidden bar
+in bar
address@hidden macro'],
+['empty_end','@macro foo {aaa, }
+in foo
address@hidden macro'],
+[ 'bad_argument', '@macro
+in macro
address@hidden macro
+
address@hidden bar aaa
+in
address@hidden rmacro
+
address@hidden after-name {ggg} more
+in macro
address@hidden macro
+'],
+['bad_formal_arg',
+'
address@hidden bad  { , not_empty}
+in bad macro
address@hidden macro
+
address@hidden bad_space{first, in 2arg}
+bad space
address@hidden macro
+
address@hidden bar {:::}
+in bar
address@hidden foo {? aaa}
+in macro foo
address@hidden macro
address@hidden macro
+']
+);
+
+our ($arg_test_case, $arg_generate, $arg_debug);
+
+run_all ('macro', address@hidden, $arg_test_case,
+   $arg_generate, $arg_debug);
+

Index: t/results/macro/bad_argument.pl
===================================================================
RCS file: t/results/macro/bad_argument.pl
diff -N t/results/macro/bad_argument.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/bad_argument.pl     28 Sep 2010 22:31:11 -0000      1.1
@@ -0,0 +1,147 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'bad_argument'} = {
+  'contents' => [
+    {
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in macro
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => '
+',
+        'macrobody' => 'in macro
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'bar',
+          'type' => 'macro_name'
+        }
+      ],
+      'cmdname' => 'rmacro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' bar aaa
+',
+        'macrobody' => 'in
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'after-name',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'ggg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in macro
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' after-name {ggg} more
+',
+        'macrobody' => 'in macro
+'
+      }
+    }
+  ]
+};
+$result_trees{'bad_argument'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'bad_argument'}{'contents'}[0];
+$result_trees{'bad_argument'}{'contents'}[0]{'parent'} = 
$result_trees{'bad_argument'};
+$result_trees{'bad_argument'}{'contents'}[1]{'parent'} = 
$result_trees{'bad_argument'};
+$result_trees{'bad_argument'}{'contents'}[2]{'args'}[0]{'parent'} = 
$result_trees{'bad_argument'}{'contents'}[2];
+$result_trees{'bad_argument'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'bad_argument'}{'contents'}[2];
+$result_trees{'bad_argument'}{'contents'}[2]{'parent'} = 
$result_trees{'bad_argument'};
+$result_trees{'bad_argument'}{'contents'}[3]{'parent'} = 
$result_trees{'bad_argument'};
+$result_trees{'bad_argument'}{'contents'}[4]{'args'}[0]{'parent'} = 
$result_trees{'bad_argument'}{'contents'}[4];
+$result_trees{'bad_argument'}{'contents'}[4]{'args'}[1]{'parent'} = 
$result_trees{'bad_argument'}{'contents'}[4];
+$result_trees{'bad_argument'}{'contents'}[4]{'contents'}[0]{'parent'} = 
$result_trees{'bad_argument'}{'contents'}[4];
+$result_trees{'bad_argument'}{'contents'}[4]{'parent'} = 
$result_trees{'bad_argument'};
+
+$result_texts{'bad_argument'} = '@macro
+in macro
address@hidden macro
+
address@hidden bar aaa
+in
address@hidden rmacro
+
address@hidden after-name {ggg} more
+in macro
address@hidden macro
+';
+
+$result_errors{'bad_argument'} = [
+  {
+    'error_line' => ':1: @macro requires a name
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => '@macro requires a name',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':5: Bad syntax for @rmacro
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => 'Bad syntax for @rmacro',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':9: Bad syntax for @macro
+',
+    'file_name' => '',
+    'line_nr' => 9,
+    'macro' => '',
+    'text' => 'Bad syntax for @macro',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/macro/bad_formal_arg.pl
===================================================================
RCS file: t/results/macro/bad_formal_arg.pl
diff -N t/results/macro/bad_formal_arg.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/bad_formal_arg.pl   28 Sep 2010 22:31:11 -0000      1.1
@@ -0,0 +1,219 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'bad_formal_arg'} = {
+  'contents' => [
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'bad',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'not_empty',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in bad macro
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' bad  { , not_empty}
+',
+        'macrobody' => 'in bad macro
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'bad_space',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'first',
+          'type' => 'macro_arg'
+        },
+        {
+          'parent' => {},
+          'text' => 'in 2arg',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'bad space
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' bad_space{first, in 2arg}
+',
+        'macrobody' => 'bad space
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'bar',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => ':::',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in bar
+',
+          'type' => 'raw'
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => 'foo',
+              'type' => 'macro_name'
+            },
+            {
+              'parent' => {},
+              'text' => '? aaa',
+              'type' => 'macro_arg'
+            }
+          ],
+          'cmdname' => 'macro',
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'in macro foo
+',
+              'type' => 'raw'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'macro_line' => ' foo {? aaa}
+'
+          }
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' bar {:::}
+',
+        'macrobody' => 'in bar
address@hidden foo {? aaa}
+in macro foo
address@hidden macro
+'
+      }
+    }
+  ]
+};
+$result_trees{'bad_formal_arg'}{'contents'}[0]{'parent'} = 
$result_trees{'bad_formal_arg'};
+$result_trees{'bad_formal_arg'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[1];
+$result_trees{'bad_formal_arg'}{'contents'}[1]{'args'}[1]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[1];
+$result_trees{'bad_formal_arg'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[1];
+$result_trees{'bad_formal_arg'}{'contents'}[1]{'parent'} = 
$result_trees{'bad_formal_arg'};
+$result_trees{'bad_formal_arg'}{'contents'}[2]{'parent'} = 
$result_trees{'bad_formal_arg'};
+$result_trees{'bad_formal_arg'}{'contents'}[3]{'args'}[0]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[3];
+$result_trees{'bad_formal_arg'}{'contents'}[3]{'args'}[1]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[3];
+$result_trees{'bad_formal_arg'}{'contents'}[3]{'args'}[2]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[3];
+$result_trees{'bad_formal_arg'}{'contents'}[3]{'contents'}[0]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[3];
+$result_trees{'bad_formal_arg'}{'contents'}[3]{'parent'} = 
$result_trees{'bad_formal_arg'};
+$result_trees{'bad_formal_arg'}{'contents'}[4]{'parent'} = 
$result_trees{'bad_formal_arg'};
+$result_trees{'bad_formal_arg'}{'contents'}[5]{'args'}[0]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[5];
+$result_trees{'bad_formal_arg'}{'contents'}[5]{'args'}[1]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[5];
+$result_trees{'bad_formal_arg'}{'contents'}[5]{'contents'}[0]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[5];
+$result_trees{'bad_formal_arg'}{'contents'}[5]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'bad_formal_arg'}{'contents'}[5]{'contents'}[1];
+$result_trees{'bad_formal_arg'}{'contents'}[5]{'contents'}[1]{'args'}[1]{'parent'}
 = $result_trees{'bad_formal_arg'}{'contents'}[5]{'contents'}[1];
+$result_trees{'bad_formal_arg'}{'contents'}[5]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'bad_formal_arg'}{'contents'}[5]{'contents'}[1];
+$result_trees{'bad_formal_arg'}{'contents'}[5]{'contents'}[1]{'parent'} = 
$result_trees{'bad_formal_arg'}{'contents'}[5];
+$result_trees{'bad_formal_arg'}{'contents'}[5]{'parent'} = 
$result_trees{'bad_formal_arg'};
+
+$result_texts{'bad_formal_arg'} = '
address@hidden bad  { , not_empty}
+in bad macro
address@hidden macro
+
address@hidden bad_space{first, in 2arg}
+bad space
address@hidden macro
+
address@hidden bar {:::}
+in bar
address@hidden foo {? aaa}
+in macro foo
address@hidden macro
address@hidden macro
+';
+
+$result_errors{'bad_formal_arg'} = [
+  {
+    'error_line' => ':2: Bad @macro formal argument: 
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'Bad @macro formal argument: ',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':6: Bad @macro formal argument: in 2arg
+',
+    'file_name' => '',
+    'line_nr' => 6,
+    'macro' => '',
+    'text' => 'Bad @macro formal argument: in 2arg',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':10: Bad @macro formal argument: :::
+',
+    'file_name' => '',
+    'line_nr' => 10,
+    'macro' => '',
+    'text' => 'Bad @macro formal argument: :::',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/macro/empty_end.pl
===================================================================
RCS file: t/results/macro/empty_end.pl
diff -N t/results/macro/empty_end.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/empty_end.pl        28 Sep 2010 22:31:11 -0000      1.1
@@ -0,0 +1,49 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'empty_end'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'foo',
+          'type' => 'macro_name'
+        },
+        {
+          'parent' => {},
+          'text' => 'aaa',
+          'type' => 'macro_arg'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in foo
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' foo {aaa, }
+',
+        'macrobody' => 'in foo
+'
+      }
+    }
+  ]
+};
+$result_trees{'empty_end'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'empty_end'}{'contents'}[0];
+$result_trees{'empty_end'}{'contents'}[0]{'args'}[1]{'parent'} = 
$result_trees{'empty_end'}{'contents'}[0];
+$result_trees{'empty_end'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'empty_end'}{'contents'}[0];
+$result_trees{'empty_end'}{'contents'}[0]{'parent'} = 
$result_trees{'empty_end'};
+
+$result_texts{'empty_end'} = '@macro foo {aaa, }
+in foo
address@hidden macro
+';
+
+$result_errors{'empty_end'} = [];
+
+

Index: t/results/macro/zero_argument.pl
===================================================================
RCS file: t/results/macro/zero_argument.pl
diff -N t/results/macro/zero_argument.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/macro/zero_argument.pl    28 Sep 2010 22:31:13 -0000      1.1
@@ -0,0 +1,82 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'zero_argument'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'foo',
+          'type' => 'macro_name'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in foo
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' foo {}
+',
+        'macrobody' => 'in foo
+'
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'normal_line'
+    },
+    {
+      'args' => [
+        {
+          'parent' => {},
+          'text' => 'bar',
+          'type' => 'macro_name'
+        }
+      ],
+      'cmdname' => 'macro',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in bar
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'macro_line' => ' bar
+',
+        'macrobody' => 'in bar
+'
+      }
+    }
+  ]
+};
+$result_trees{'zero_argument'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'zero_argument'}{'contents'}[0];
+$result_trees{'zero_argument'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'zero_argument'}{'contents'}[0];
+$result_trees{'zero_argument'}{'contents'}[0]{'parent'} = 
$result_trees{'zero_argument'};
+$result_trees{'zero_argument'}{'contents'}[1]{'parent'} = 
$result_trees{'zero_argument'};
+$result_trees{'zero_argument'}{'contents'}[2]{'args'}[0]{'parent'} = 
$result_trees{'zero_argument'}{'contents'}[2];
+$result_trees{'zero_argument'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'zero_argument'}{'contents'}[2];
+$result_trees{'zero_argument'}{'contents'}[2]{'parent'} = 
$result_trees{'zero_argument'};
+
+$result_texts{'zero_argument'} = '@macro foo {}
+in foo
address@hidden macro
+
address@hidden bar
+in bar
address@hidden macro
+';
+
+$result_errors{'zero_argument'} = [];
+
+



reply via email to

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