texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp TODO Texinfo/Parser.pm Texinfo/Struc...


From: Patrice Dumas
Subject: texinfo/tp TODO Texinfo/Parser.pm Texinfo/Struc...
Date: Wed, 20 Oct 2010 21:07:26 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/10/20 21:07:26

Modified files:
        tp             : TODO 
        tp/Texinfo     : Parser.pm Structuring.pm 
        tp/t/results/coverage: def.pl 
Added files:
        tp/t           : 19def.t 
        tp/t/results/def: all_commands.pl empty_def_command.pl 
                          empty_deftype.pl end_of_line_protect_at_end.pl 
                          end_of_lines_protected.pl 
                          end_of_lines_protected_in_footnote.pl 

Log message:
        Parse def commands more, split and process the arguments.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.88&r2=1.89
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Structuring.pm?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/19def.t?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/coverage/def.pl?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/def/all_commands.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/def/empty_def_command.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/def/empty_deftype.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/def/end_of_line_protect_at_end.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/def/end_of_lines_protected.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/def/end_of_lines_protected_in_footnote.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- TODO        18 Oct 2010 22:09:09 -0000      1.25
+++ TODO        20 Oct 2010 21:07:25 -0000      1.26
@@ -31,8 +31,10 @@
 glossary.texi
 bib-example.texi (big test)
 macro-at.texi (the macro part is already done)
+double_setfilename.texi
+bad_setfilename.texi
 
-from test_paths.texi
+from test_paths.texi:
 @image{formatting/f--ile}
 
 @@image dot.
@@ -46,5 +48,7 @@
 @@verbatiminclude dot.
 @verbatiminclude ./formatting/simplest.texi
 
-
-todo: setfilename_comment.texi (but done for @include)
+done:
+formatting/def_end_of_line.texi
+formatting/def_end_of_line_footnote.texi
+formatting/empty_deftype.texi

Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -b -r1.88 -r1.89
--- Texinfo/Parser.pm   19 Oct 2010 16:46:07 -0000      1.88
+++ Texinfo/Parser.pm   20 Oct 2010 21:07:25 -0000      1.89
@@ -145,14 +145,13 @@
   # FIXME for the following the @this* commands are not defined. Also
   # @value and maybe macro invocations may also be delayed.
   'everyheading' => 'lineraw', # @*heading @*footing use @|
-  'everyfooting' => 'lineraw', # + @thispage @thissectionname @thissectionnum
-  'evenheading'  => 'lineraw',  # @thissection @thischaptername 
@thischapternum 
-  'evenfooting'  => 'lineraw',  # @thischapter @thistitle @thisfile
-  'oddheading'   => 'lineraw',
+  'everyfooting'      => 'lineraw',  # + @thispage @thissectionname
+  'evenheading'       => 'lineraw',  # @thissectionnum @thissection
+  'evenfooting'       => 'lineraw',  # @thischaptername @thischapternum
+  'oddheading'        => 'lineraw',  # @thischapter @thistitle @thisfile
   'oddfooting'   => 'lineraw',
   'smallbook'    => 'skipline', # no arg
-  'syncodeindex' => 2,
-                    # args are index identifiers
+  'syncodeindex'      => 2,   # args are index identifiers
   'synindex'     => 2,
   'defindex'     => 1, # one identifier arg
   'defcodeindex' => 1, # one identifier arg
@@ -261,35 +260,75 @@
 # commands that forces closing an opened paragraph.
 my %close_paragraph_commands;
 
+my %index_type_def = (
+ 'f' => ['deffn', 'deftypefn', 'deftypeop', 'defop'],
+ 'v' => ['defvr', 'deftypevr', 'defcv', 'deftypecv' ],
+ 't' => ['deftp']
+);
+
+my %def_index_type;
+foreach my $index_type (keys %index_type_def) {
+  foreach my $def (@{$index_type_def{$index_type}}) {
+    $def_index_type{$def} = $index_type;
+  }
+}
+
+my %def_map = (
+    # basic commands
+    'deffn', [ 'category', 'name', 'arg' ],
+    'defvr', [  'category', 'name' ],
+    'deftypefn', [ 'category', 'type', 'name', 'argtype' ],
+    'deftypeop', [ 'category', 'class' , 'type', 'name', 'argtype' ],
+    'deftypevr', [ 'category', 'type', 'name' ],
+    'defcv', [ 'category', 'class' , 'name' ],
+    'deftypecv', [ 'category', 'class' , 'type', 'name' ],
+    'defop', [ 'category', 'class' , 'name', 'arg' ],
+    'deftp', [ 'category', 'name', 'argtype' ],
+    # shortcuts
+    # FIXME i18n
+    'defun', {'deffn' => 'Function'},
+    'defmac', {'deffn' => 'Macro'},
+    'defspec', {'deffn' => '{Special Form}'},
+    'defvar', {'defvr' => 'Variable'},
+    'defopt', {'defvr' => '{User Option}'},
+    'deftypefun', {'deftypefn' => '{Function}'},
+    'deftypevar', {'deftypevr' => 'Variable'},
+    'defivar', {'defcv' => '{Instance Variable}'},
+    'deftypeivar', {'deftypecv' => '{Instance Variable}'},
+    'defmethod', {'defop' => 'Method'},
+    'deftypemethod', {'deftypeop' => 'Method'},
+         );
+
 my %def_commands;
-foreach my $def_command(
-  'deffn',
-  'defvr',
-  'deftypefn',
-  'deftypeop',
-  'deftypevr',
-  'defcv',
-  'deftypecv',
-  'defop',
-  'deftp',
-  'defun',
-  'defmac',
-  'defspec',
-  'defvar',
-  'defopt',
-  'deftypefun',
-  'deftypevar',
-  'defivar',
-  'deftypeivar',
-  'defmethod',
-  'deftypemethod'
-) {
+my %def_aliases;
+my %def_prepended_content;
+foreach my $def_command(keys %def_map) {
   $block_commands{$def_command} = 'def';
   $misc_commands{$def_command.'x'} = 'line';
   $def_commands{$def_command} = 1;
   $def_commands{$def_command.'x'} = 1;
+  # prepare what will be prepended when the def command is an alias
+  if (ref($def_map{$def_command}) eq 'HASH') {
+    my ($real_command) = keys (%{$def_map{$def_command}});
+    $def_aliases{$def_command} = $real_command;
+    my $prepended = $def_map{$def_command}->{$real_command};
+    if ($prepended =~ /^\{/) {
+      my $text = $prepended;
+      $text =~ s/\{([^\}]+)\}/$1/;
+      my $bracketed = { 'type' => 'bracketed'};
+      $bracketed->{'contents'} = [ { 'parent' => $bracketed,
+                                     'text' => $text } ];
+      $def_prepended_content{$def_command} = [$bracketed];
+    } else {
+      $def_prepended_content{$def_command} = [{ 'text' => $prepended }];
+    }
+    push @{$def_prepended_content{$def_command}}, { 'text' => ' ' };
+  }
 }
 
+#print STDERR "".Data::Dumper->Dump([\%def_aliases]);
+#print STDERR "".Data::Dumper->Dump([\%def_prepended_content]);
+
 $block_commands{'multitable'} = 'multitable';
 $block_item_commands{'multitable'} = 1;
 
@@ -343,6 +382,11 @@
   $item_line_commands{$item_line_command} = 1;
 }
 
+my %type_with_paragraph;
+foreach my $type ('before_item', 'text_root') {
+  $type_with_paragraph{$type} = 1;
+}
+
 my %deprecated_commands = (
   'ctrl' => '',
   'allow-recursion' => N__('recursion is always allowed'),
@@ -762,7 +806,7 @@
   my $self = shift;
   my $current = shift;
 
-  if ((!$current->{'type'} or $current->{'type'} eq 'before_item') 
+  if ((!$current->{'type'} or $type_with_paragraph{$current->{'type'}})
       and !$no_paragraph_contexts{$self->{'context_stack'}->[-1]}) {
     die "BUG: contents undef "._print_current($current) 
        if (!defined($current->{'contents'}));
@@ -1190,6 +1234,108 @@
   }
 }
 
+sub _next_bracketed_or_word($)
+{
+  my $contents = shift;
+  return undef if (!scalar(@{$contents}));
+  my $spaces;
+  $spaces = shift @{$contents} if (defined($contents->[0]->{'text'}) and 
+                                     $contents->[0]->{'text'} !~ /\S/);
+  $spaces = undef if (!$spaces->{'text'});
+  $spaces->{'type'} = 'spaces' if (defined($spaces));
+  return undef if (!scalar(@{$contents}));
+
+  #print STDERR "BEFORE PROCESSING ".tree_to_texi({'contents' => $contents});
+  if ($contents->[0]->{'type'} and $contents->[0]->{'type'} eq 'bracketed') {
+    #print STDERR "Return bracketed\n";
+    return ($spaces, shift @{$contents});
+  } elsif ($contents->[0]->{'cmdname'}) {
+    #print STDERR "Return command $contents->[0]->{'cmdname'}\n";
+    return ($spaces, shift @{$contents});
+  } else {
+    # we don't want to change the initial contents, so first we copy
+    #print STDERR "Process $contents->[0]->{'text'}\n";
+    $contents->[0]->{'text'} =~ s/^(\s*)//;
+    my $space_text = $1;
+    $spaces = {'text' => $space_text, 'type' => 'spaces'} if ($space_text);
+    $contents->[0]->{'text'} =~ s/^(\S+)//;
+    shift @{$contents} if ($contents->[0]->{'text'} eq '');
+    return ($spaces, {'text' => $1});
+  }
+}
+
+sub _parse_def ($$)
+{
+  my $command = shift;
+  my $contents = shift;
+  
+  my @contents = @$contents;
+  shift @contents if ($contents[0] and $contents[0]->{'type'}
+                    and $contents[0]->{'type'} eq 
'empty_spaces_after_command');
+  if ($def_aliases{$command}) {
+    unshift @contents, @{$def_prepended_content{$command}};
+    $command = $def_aliases{$command};
+  }
+  foreach (my $i = 0; $i < scalar(@contents); $i++) {
+    # copy, to avoid changing the original
+    $contents[$i] = {'text' => $contents[$i]->{'text'}} 
+       if (defined($contents[$i]->{'text'}));
+  }
+  my @result;
+  my @args = @{$def_map{$command}};
+  my $arg_type;
+  $arg_type = pop @args if ($args[-1] eq 'arg' or $args[-1] eq 'argtype');
+  foreach my $arg (@args) {
+    #print STDERR "$command $arg"._print_current($contents[0]);
+    #foreach my $content (@contents) {print STDERR " 
"._print_current($content)};
+    #print STDERR " contents ->".tree_to_texi ({'contents' => address@hidden);
+    my ($spaces, $next) = _next_bracketed_or_word(address@hidden);
+    last if (!defined($next));
+    #print STDERR "NEXT ".tree_to_texi($next)."\n";
+    push @result, ['spaces', $spaces] if (defined($spaces));
+    push @result, [$arg, $next];
+  }
+  my @args_results;
+  if ($arg_type) {
+    while (@contents) {
+      my ($spaces, $next) = _next_bracketed_or_word(address@hidden);
+      push @args_results, ['spaces', $spaces] if (defined($spaces));
+      last if (!defined($next));
+      if (defined($next->{'text'})) {
+        while (1) {
+          if ($next->{'text'} =~ s/^([^\[\](),]+)//) {
+            push @args_results, ['arg', {'text' => $1}];
+          } elsif ($next->{'text'} =~ s/^([\[\](),])//) {
+            push @args_results, ['delimiter', 
+                        {'text' => $1, 'type' => 'delimiter'}];
+          } else {
+            last;
+          }
+        }
+      } else {
+        push @args_results, [ 'arg', $next ];
+      }
+    }
+    if ($arg_type eq 'argtype') {
+      my $next_is_type = 1;
+      foreach my $arg(@args_results) {
+        if ($arg->[0] eq 'spaces') {
+        } elsif ($arg->[0] eq 'delimiter') {
+          $next_is_type = 1;
+        } elsif ($arg->[1]->{'cmdname'} and $arg->[1]->{'cmdname'} ne 'code') {
+          $next_is_type = 1;
+        } elsif ($next_is_type) {
+          $arg->[0] = 'typearg';
+          $next_is_type = 0;
+        } else {
+          $next_is_type = 1;
+        }
+      }
+    }
+  }
+  return address@hidden, @args_results];
+}
+
 # close constructs and do stuff at end of line (or end of the document)
 sub _end_line($$$)
 {
@@ -1302,6 +1448,10 @@
     my $def_context = pop @{$self->{'context_stack'}};
     die "BUG: def_context $def_context "._print_current($current) 
       if ($def_context ne 'def');
+    my $arguments = _parse_def 
($current->{'parent'}->{'special'}->{'def_command'}, 
+                                $current->{'contents'});
+    $current->{'parent'}->{'special'}->{'def_args'} = $arguments 
+       if scalar(@$arguments);
     $current = $current->{'parent'}->{'parent'};
 
   # other block command lines
@@ -1500,6 +1650,7 @@
   my $self = shift;
   my $first_lines = shift;
 
+  #my $root = { 'contents' => [], 'type' => 'text_root' };
   my $root = { 'contents' => [] };
   my $current = $root;
   if ($first_lines) {
@@ -2097,6 +2248,8 @@
                 }
                 push @{$self->{'context_stack'}}, 'def';
                 $current->{'contents'}->[-1]->{'type'} = 'def_line';
+                $current->{'contents'}->[-1]->{'special'} = 
+                   {'def_command' => $base_command};
               }
             }
             # a container for what is on the @-command line, considered to
@@ -2181,6 +2334,8 @@
               push @{$current->{'contents'}}, { 
                                                 'type' => 'def_line',
                                                 'parent' => $current,
+                                                'special' => 
+                                                  {'def_command' => $command}
                                                 };
             } else {
               push @{$current->{'contents'}}, { 'cmdname' => $command, 
@@ -2251,6 +2406,8 @@
         my $separator = $1;
         print STDERR "SEPARATOR: $separator\n" if ($self->{'debug'});
         if ($separator eq '@') {
+          # this may happen with a @ at the very end of a file, therefore
+          # not followed by anything.
           _line_error ($self, $self->__("Unexpected \@"), $line_nr);
         } elsif ($separator eq '{') {
           _abort_empty_line ($self, $current);

Index: Texinfo/Structuring.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Structuring.pm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- Texinfo/Structuring.pm      19 Oct 2010 09:39:36 -0000      1.2
+++ Texinfo/Structuring.pm      20 Oct 2010 21:07:26 -0000      1.3
@@ -52,6 +52,15 @@
   $types_to_enter{$type_to_enter} = 1;
 }
 
+# anchor may appear in @center? @item/x?
+# going in node, sectioning 
+# not going in: pagesizes listoffloats shorttitle shorttitlepage 
+#               settitle author subtitle title
+# index entries
+# footnote? section node
+# float printindex contents shortcontents
+# anchor
+
 sub _next_content($)
 {
   my $current = shift;

Index: t/results/coverage/def.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/coverage/def.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/results/coverage/def.pl   17 Oct 2010 17:16:58 -0000      1.10
+++ t/results/coverage/def.pl   20 Oct 2010 21:07:26 -0000      1.11
@@ -41,6 +41,41 @@
             }
           ],
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--effn_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -100,6 +135,119 @@
             }
           ],
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'cate--gory'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'de--ffn_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'ar--guments'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => '    ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'more'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'args'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'even'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'more'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'so'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -173,6 +321,54 @@
             }
           ],
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'fset'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'a'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'g'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -215,6 +411,39 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'truc'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -261,6 +490,39 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Command'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -307,6 +569,39 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Command'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -353,6 +648,39 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Command'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -398,6 +726,41 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'cmde'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'truc'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -465,6 +828,41 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'cmde2'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'truc'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -488,6 +886,28 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'machin'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -525,6 +945,26 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {}
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -553,6 +993,28 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'machin'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -586,6 +1048,67 @@
           ],
           'cmdname' => 'deffnx',
           'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'followed'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'by'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'a'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'comment'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
           'type' => 'def_line'
         },
         {
@@ -638,6 +1161,67 @@
               ],
               'cmdname' => 'deffnx',
               'parent' => {},
+              'special' => {
+                'def_args' => [
+                  [
+                    'category',
+                    {}
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'name',
+                    {
+                      'text' => 'after'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'arg',
+                    {
+                      'text' => 'a'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'arg',
+                    {
+                      'text' => 'deff'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'arg',
+                    {
+                      'text' => 'item'
+                    }
+                  ]
+                ],
+                'def_command' => 'deffn'
+              },
               'type' => 'def_line'
             },
             {
@@ -688,6 +1272,67 @@
               ],
               'cmdname' => 'deffnx',
               'parent' => {},
+              'special' => {
+                'def_args' => [
+                  [
+                    'category',
+                    {}
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'name',
+                    {
+                      'text' => 'deffnx'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'arg',
+                    {
+                      'text' => 'before'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'arg',
+                    {
+                      'text' => 'end'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'arg',
+                    {
+                      'text' => 'deffn'
+                    }
+                  ]
+                ],
+                'def_command' => 'deffn'
+              },
               'type' => 'def_line'
             }
           ],
@@ -712,6 +1357,7 @@
 
$result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0];
 $result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[1]{'contents'}[0];
 $result_trees{'def'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[1];
+$result_trees{'def'}{'contents'}[1]{'contents'}[0]{'special'}{'def_args'}[0][1]
 = $result_trees{'def'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1];
 $result_trees{'def'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[1]{'contents'}[1];
 $result_trees{'def'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'def'}{'contents'}[1];
 $result_trees{'def'}{'contents'}[1]{'parent'} = $result_trees{'def'};
@@ -723,6 +1369,7 @@
 
$result_trees{'def'}{'contents'}[4]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'def'}{'contents'}[4]{'contents'}[0]{'args'}[0];
 $result_trees{'def'}{'contents'}[4]{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[4]{'contents'}[0];
 $result_trees{'def'}{'contents'}[4]{'contents'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[4];
+$result_trees{'def'}{'contents'}[4]{'contents'}[0]{'special'}{'def_args'}[10][1]
 = $result_trees{'def'}{'contents'}[4]{'contents'}[0]{'args'}[0]{'contents'}[2];
 $result_trees{'def'}{'contents'}[4]{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[4]{'contents'}[1];
 $result_trees{'def'}{'contents'}[4]{'contents'}[1]{'parent'} = 
$result_trees{'def'}{'contents'}[4];
 $result_trees{'def'}{'contents'}[4]{'parent'} = $result_trees{'def'};
@@ -736,6 +1383,7 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[0]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[0]{'special'}{'def_args'}[2][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[2];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[1];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0];
@@ -744,6 +1392,8 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[1];
 $result_trees{'def'}{'contents'}[7]{'contents'}[1]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[1]{'special'}{'def_args'}[0][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'def'}{'contents'}[7]{'contents'}[1]{'special'}{'def_args'}[4][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[3];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[2];
@@ -753,6 +1403,8 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[2];
 $result_trees{'def'}{'contents'}[7]{'contents'}[2]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[2]{'special'}{'def_args'}[2][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[2];
+$result_trees{'def'}{'contents'}[7]{'contents'}[2]{'special'}{'def_args'}[4][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[2]{'args'}[0]{'contents'}[4];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0]{'contents'}[2];
@@ -762,6 +1414,8 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[3];
 $result_trees{'def'}{'contents'}[7]{'contents'}[3]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[3]{'special'}{'def_args'}[2][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0]{'contents'}[2];
+$result_trees{'def'}{'contents'}[7]{'contents'}[3]{'special'}{'def_args'}[4][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[3]{'args'}[0]{'contents'}[4];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[2];
@@ -771,6 +1425,8 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[4];
 $result_trees{'def'}{'contents'}[7]{'contents'}[4]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[4]{'special'}{'def_args'}[2][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[2];
+$result_trees{'def'}{'contents'}[7]{'contents'}[4]{'special'}{'def_args'}[4][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[4]{'args'}[0]{'contents'}[4];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0]{'contents'}[2]{'args'}[0];
@@ -779,6 +1435,7 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[5];
 $result_trees{'def'}{'contents'}[7]{'contents'}[5]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[5]{'special'}{'def_args'}[2][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[5]{'args'}[0]{'contents'}[2];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0]{'contents'}[2]{'args'}[0];
@@ -791,10 +1448,12 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[6];
 $result_trees{'def'}{'contents'}[7]{'contents'}[6]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[6]{'special'}{'def_args'}[2][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[6]{'args'}[0]{'contents'}[2];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[7]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[7]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[7]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[7]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[7];
 $result_trees{'def'}{'contents'}[7]{'contents'}[7]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[7]{'special'}{'def_args'}[0][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[7]{'args'}[0]{'contents'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0]{'contents'}[2];
@@ -802,17 +1461,21 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[8];
 $result_trees{'def'}{'contents'}[7]{'contents'}[8]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[8]{'special'}{'def_args'}[0][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0]{'contents'}[0];
+$result_trees{'def'}{'contents'}[7]{'contents'}[8]{'special'}{'def_args'}[2][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[8]{'args'}[0]{'contents'}[2];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[9]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[9]{'args'}[0]{'contents'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[9]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[9]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[9]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[9]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[9]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[9];
 $result_trees{'def'}{'contents'}[7]{'contents'}[9]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[9]{'special'}{'def_args'}[0][1]
 = $result_trees{'def'}{'contents'}[7]{'contents'}[9]{'args'}[0]{'contents'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0]{'contents'}[1];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0];
 $result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[10];
 $result_trees{'def'}{'contents'}[7]{'contents'}[10]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
+$result_trees{'def'}{'contents'}[7]{'contents'}[10]{'special'}{'def_args'}[0][1]
 = 
$result_trees{'def'}{'contents'}[7]{'contents'}[10]{'args'}[0]{'contents'}[1];
 $result_trees{'def'}{'contents'}[7]{'contents'}[11]{'args'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[11];
 $result_trees{'def'}{'contents'}[7]{'contents'}[11]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
 $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[0]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12];
@@ -822,6 +1485,7 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[1]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[1];
 $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[1]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12];
+$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[1]{'special'}{'def_args'}[0][1]
 = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[1]{'args'}[0]{'contents'}[1];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[2]{'args'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[2];
 $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[2]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12];
 $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[3]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12];
@@ -831,6 +1495,7 @@
 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[4]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[4]{'args'}[0];
 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[4]{'args'}[0]{'parent'}
 = $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[4];
 $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[4]{'parent'} = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12];
+$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[4]{'special'}{'def_args'}[0][1]
 = 
$result_trees{'def'}{'contents'}[7]{'contents'}[12]{'contents'}[4]{'args'}[0]{'contents'}[1];
 $result_trees{'def'}{'contents'}[7]{'contents'}[12]{'parent'} = 
$result_trees{'def'}{'contents'}[7];
 $result_trees{'def'}{'contents'}[7]{'parent'} = $result_trees{'def'};
 $result_trees{'def'}{'contents'}[8]{'parent'} = $result_trees{'def'};

Index: t/19def.t
===================================================================
RCS file: t/19def.t
diff -N t/19def.t
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/19def.t   20 Oct 2010 21:07:26 -0000      1.1
@@ -0,0 +1,134 @@
+use strict;
+
+use Test::More;
+
+require 't/test_utils.pl';
+
+my @test_cases = (
+['all_commands',
+'@defvr c--ategory d--efvr_name
+d--efvr
address@hidden defvr
+
address@hidden c--ategory t--ype d--eftypefn_name a--rguments...
+d--eftypefn
address@hidden deftypefn
+
address@hidden c--ategory c--lass t--ype d--eftypeop_name a--rguments...
+d--eftypeop
address@hidden deftypeop
+
address@hidden c--ategory t--ype d--eftypevr_name
+d--eftypevr
address@hidden deftypevr
+
address@hidden c--ategory c--lass d--efcv_name
+d--efcv
address@hidden defcv
+
address@hidden c--ategory c--lass d--efop_name a--rguments...
+d--efop
address@hidden defop
+
address@hidden c--ategory d--eftp_name a--ttributes...
+d--eftp
address@hidden deftp
+
address@hidden d--efun_name a--rguments...
+d--efun
address@hidden defun
+
address@hidden d--efmac_name a--rguments...
+d--efmac
address@hidden defmac
+
address@hidden d--efspec_name a--rguments...
+d--efspec
address@hidden defspec
+
address@hidden d--efvar_name
+d--efvar
address@hidden defvar
+
address@hidden d--efopt_name
+d--efopt
address@hidden defopt
+
address@hidden t--ype d--eftypefun_name a--rguments...
+d--eftypefun
address@hidden deftypefun
+
address@hidden t--ype d--eftypevar_name
+d--eftypevar
address@hidden deftypevar
+
address@hidden c--lass d--efivar_name
+d--efivar
address@hidden defivar
+
address@hidden c--lass t--ype d--eftypeivar_name
+d--eftypeivar
address@hidden deftypeivar
+
address@hidden c--lass d--efmethod_name a--rguments...
+d--efmethod
address@hidden defmethod
+
address@hidden c--lass t--ype d--eftypemethod_name a--rguments...
+d--eftypemethod
address@hidden deftypemethod
+'],
+['end_of_lines_protected',
+'@deffn category deffn_name arguments @
+   more {args @
+  with end of line within} with 3 @@ @@@
+ {one last arg}
+deffn
address@hidden deffn
+'],
+['empty_def_command',
+'@deffn empty deffn
address@hidden deffn
+
address@hidden empty deffn with deffnx
address@hidden empty deffnx
address@hidden deffn
+'],
+['end_of_line_protect_at_end',
+'
address@hidden category2 deffn_name2 arguments2 @'],
+['end_of_lines_protected_in_footnote',
+'@footnote{
address@hidden category deffn_name arguments arg2 @
+   more {args @
+  with end of line within} with 3 @@ @@@
+ {one last arg}
+deffn
address@hidden deffn
+}
+'],
+# the command with type is compared with the corresponding command without type
+['empty_deftype',
+'@deftypefun {} f (const type& x)
+Deftypefun.
address@hidden deftypefun
+
address@hidden f (const type& x)
+Defun.
address@hidden defun
+
address@hidden c {} f (const type& x)
+Deftypemethod.
address@hidden deftypemethod
+
address@hidden c f (const type& x)
+Defmethod.
address@hidden defmethod
+']
+);
+
+our ($arg_test_case, $arg_generate, $arg_debug);
+
+run_all ('def', address@hidden, $arg_test_case,
+   $arg_generate, $arg_debug);
+

Index: t/results/def/all_commands.pl
===================================================================
RCS file: t/results/def/all_commands.pl
diff -N t/results/def/all_commands.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/def/all_commands.pl       20 Oct 2010 21:07:26 -0000      1.1
@@ -0,0 +1,1973 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'all_commands'} = {
+  'contents' => [
+    {
+      'cmdname' => 'defvr',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--ategory d--efvr_name
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'c--ategory'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efvr_name'
+                }
+              ]
+            ],
+            'def_command' => 'defvr'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efvr
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftypefn',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--ategory t--ype d--eftypefn_name a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'c--ategory'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {
+                  'text' => 't--ype'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--eftypefn_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'deftypefn'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--eftypefn
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftypeop',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--ategory c--lass t--ype d--eftypeop_name 
a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'c--ategory'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c--lass'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {
+                  'text' => 't--ype'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--eftypeop_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'deftypeop'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--eftypeop
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftypevr',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--ategory t--ype d--eftypevr_name
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'c--ategory'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {
+                  'text' => 't--ype'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--eftypevr_name'
+                }
+              ]
+            ],
+            'def_command' => 'deftypevr'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--eftypevr
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defcv',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--ategory c--lass d--efcv_name
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'c--ategory'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c--lass'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efcv_name'
+                }
+              ]
+            ],
+            'def_command' => 'defcv'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efcv
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defop',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--ategory c--lass d--efop_name a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'c--ategory'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c--lass'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efop_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'defop'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efop
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftp',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--ategory d--eftp_name a--ttributes...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'c--ategory'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--eftp_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'a--ttributes...'
+                }
+              ]
+            ],
+            'def_command' => 'deftp'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--eftp
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defun',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'd--efun_name a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Function'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efun_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'defun'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efun
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defmac',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'd--efmac_name a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Macro'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efmac_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'defmac'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efmac
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defspec',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'd--efspec_name a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'Special Form'
+                    }
+                  ],
+                  'type' => 'bracketed'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efspec_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'defspec'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efspec
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defvar',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'd--efvar_name
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Variable'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efvar_name'
+                }
+              ]
+            ],
+            'def_command' => 'defvar'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efvar
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defopt',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'd--efopt_name
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'User Option'
+                    }
+                  ],
+                  'type' => 'bracketed'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efopt_name'
+                }
+              ]
+            ],
+            'def_command' => 'defopt'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efopt
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftypefun',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 't--ype d--eftypefun_name a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'Function'
+                    }
+                  ],
+                  'type' => 'bracketed'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {
+                  'text' => 't--ype'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--eftypefun_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'deftypefun'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--eftypefun
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftypevar',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 't--ype d--eftypevar_name
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Variable'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {
+                  'text' => 't--ype'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--eftypevar_name'
+                }
+              ]
+            ],
+            'def_command' => 'deftypevar'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--eftypevar
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defivar',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--lass d--efivar_name
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'Instance Variable'
+                    }
+                  ],
+                  'type' => 'bracketed'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c--lass'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efivar_name'
+                }
+              ]
+            ],
+            'def_command' => 'defivar'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efivar
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftypeivar',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--lass t--ype d--eftypeivar_name
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'Instance Variable'
+                    }
+                  ],
+                  'type' => 'bracketed'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c--lass'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {
+                  'text' => 't--ype'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--eftypeivar_name'
+                }
+              ]
+            ],
+            'def_command' => 'deftypeivar'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--eftypeivar
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defmethod',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--lass d--efmethod_name a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Method'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c--lass'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--efmethod_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'defmethod'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--efmethod
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftypemethod',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c--lass t--ype d--eftypemethod_name a--rguments...
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Method'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c--lass'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {
+                  'text' => 't--ype'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'd--eftypemethod_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'a--rguments...'
+                }
+              ]
+            ],
+            'def_command' => 'deftypemethod'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'd--eftypemethod
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ]
+};
+$result_trees{'all_commands'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[0]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[0]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[2]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[3]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[3]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[3];
+$result_trees{'all_commands'}{'contents'}[3]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[3]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[3]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[3];
+$result_trees{'all_commands'}{'contents'}[3]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[4]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[5]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[6]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[6]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[6]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[6]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[6];
+$result_trees{'all_commands'}{'contents'}[6]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[6]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[6]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[6];
+$result_trees{'all_commands'}{'contents'}[6]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[7]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[8]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[9]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[9]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[9]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[9];
+$result_trees{'all_commands'}{'contents'}[9]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[9]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[9]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[9];
+$result_trees{'all_commands'}{'contents'}[9]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[10]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[11]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[12]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[12]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[12]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[12]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[12]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[12]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[12]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[12];
+$result_trees{'all_commands'}{'contents'}[12]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[12]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[12]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[12];
+$result_trees{'all_commands'}{'contents'}[12]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[13]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[14]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[15]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[15]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[15]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[15]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[15]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[15]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[15]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[15];
+$result_trees{'all_commands'}{'contents'}[15]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[15]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[15]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[15];
+$result_trees{'all_commands'}{'contents'}[15]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[16]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[17]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[18]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[18]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[18]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[18]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[18]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[18]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[18]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[18];
+$result_trees{'all_commands'}{'contents'}[18]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[18]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[18]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[18];
+$result_trees{'all_commands'}{'contents'}[18]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[19]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[20]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[21]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[21]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[21]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[21]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[21]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[21]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[21]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[21];
+$result_trees{'all_commands'}{'contents'}[21]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[21]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[21]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[21];
+$result_trees{'all_commands'}{'contents'}[21]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[22]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[23]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[24]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[24]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[24]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[24]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[24]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[24]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[24]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[24];
+$result_trees{'all_commands'}{'contents'}[24]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[24]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[24]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[24];
+$result_trees{'all_commands'}{'contents'}[24]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[25]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[26]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[27]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[27]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[27]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[27]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[27]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[27]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[27]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[27];
+$result_trees{'all_commands'}{'contents'}[27]{'contents'}[0]{'special'}{'def_args'}[0][1]{'contents'}[0]{'parent'}
 = 
$result_trees{'all_commands'}{'contents'}[27]{'contents'}[0]{'special'}{'def_args'}[0][1];
+$result_trees{'all_commands'}{'contents'}[27]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[27]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[27]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[27];
+$result_trees{'all_commands'}{'contents'}[27]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[28]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[29]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[30]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[30]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[30]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[30]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[30]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[30]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[30]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[30];
+$result_trees{'all_commands'}{'contents'}[30]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[30]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[30]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[30];
+$result_trees{'all_commands'}{'contents'}[30]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[31]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[32]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[33]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[33]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[33]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[33]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[33]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[33]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[33]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[33];
+$result_trees{'all_commands'}{'contents'}[33]{'contents'}[0]{'special'}{'def_args'}[0][1]{'contents'}[0]{'parent'}
 = 
$result_trees{'all_commands'}{'contents'}[33]{'contents'}[0]{'special'}{'def_args'}[0][1];
+$result_trees{'all_commands'}{'contents'}[33]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[33]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[33]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[33];
+$result_trees{'all_commands'}{'contents'}[33]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[34]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[35]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[36]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[36]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[36]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[36]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[36]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[36]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[36]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[36];
+$result_trees{'all_commands'}{'contents'}[36]{'contents'}[0]{'special'}{'def_args'}[0][1]{'contents'}[0]{'parent'}
 = 
$result_trees{'all_commands'}{'contents'}[36]{'contents'}[0]{'special'}{'def_args'}[0][1];
+$result_trees{'all_commands'}{'contents'}[36]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[36]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[36]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[36];
+$result_trees{'all_commands'}{'contents'}[36]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[37]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[38]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[39]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[39]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[39]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[39]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[39]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[39]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[39]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[39];
+$result_trees{'all_commands'}{'contents'}[39]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[39]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[39]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[39];
+$result_trees{'all_commands'}{'contents'}[39]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[40]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[41]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[42]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[42]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[42]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[42]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[42]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[42]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[42]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[42];
+$result_trees{'all_commands'}{'contents'}[42]{'contents'}[0]{'special'}{'def_args'}[0][1]{'contents'}[0]{'parent'}
 = 
$result_trees{'all_commands'}{'contents'}[42]{'contents'}[0]{'special'}{'def_args'}[0][1];
+$result_trees{'all_commands'}{'contents'}[42]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[42]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[42]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[42];
+$result_trees{'all_commands'}{'contents'}[42]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[43]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[44]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[45]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[45]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[45]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[45]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[45]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[45]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[45]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[45];
+$result_trees{'all_commands'}{'contents'}[45]{'contents'}[0]{'special'}{'def_args'}[0][1]{'contents'}[0]{'parent'}
 = 
$result_trees{'all_commands'}{'contents'}[45]{'contents'}[0]{'special'}{'def_args'}[0][1];
+$result_trees{'all_commands'}{'contents'}[45]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[45]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[45]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[45];
+$result_trees{'all_commands'}{'contents'}[45]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[46]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[47]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[48]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[48]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[48]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[48]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[48]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[48]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[48]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[48];
+$result_trees{'all_commands'}{'contents'}[48]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[48]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[48]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[48];
+$result_trees{'all_commands'}{'contents'}[48]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[49]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[50]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[51]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[51]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[51]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[51]{'contents'}[0]{'args'}[0];
+$result_trees{'all_commands'}{'contents'}[51]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[51]{'contents'}[0];
+$result_trees{'all_commands'}{'contents'}[51]{'contents'}[0]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[51];
+$result_trees{'all_commands'}{'contents'}[51]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'all_commands'}{'contents'}[51]{'contents'}[1];
+$result_trees{'all_commands'}{'contents'}[51]{'contents'}[1]{'parent'} = 
$result_trees{'all_commands'}{'contents'}[51];
+$result_trees{'all_commands'}{'contents'}[51]{'parent'} = 
$result_trees{'all_commands'};
+$result_trees{'all_commands'}{'contents'}[52]{'parent'} = 
$result_trees{'all_commands'};
+
+$result_texis{'all_commands'} = '@defvr c--ategory d--efvr_name
+d--efvr
address@hidden defvr
+
address@hidden c--ategory t--ype d--eftypefn_name a--rguments...
+d--eftypefn
address@hidden deftypefn
+
address@hidden c--ategory c--lass t--ype d--eftypeop_name a--rguments...
+d--eftypeop
address@hidden deftypeop
+
address@hidden c--ategory t--ype d--eftypevr_name
+d--eftypevr
address@hidden deftypevr
+
address@hidden c--ategory c--lass d--efcv_name
+d--efcv
address@hidden defcv
+
address@hidden c--ategory c--lass d--efop_name a--rguments...
+d--efop
address@hidden defop
+
address@hidden c--ategory d--eftp_name a--ttributes...
+d--eftp
address@hidden deftp
+
address@hidden d--efun_name a--rguments...
+d--efun
address@hidden defun
+
address@hidden d--efmac_name a--rguments...
+d--efmac
address@hidden defmac
+
address@hidden d--efspec_name a--rguments...
+d--efspec
address@hidden defspec
+
address@hidden d--efvar_name
+d--efvar
address@hidden defvar
+
address@hidden d--efopt_name
+d--efopt
address@hidden defopt
+
address@hidden t--ype d--eftypefun_name a--rguments...
+d--eftypefun
address@hidden deftypefun
+
address@hidden t--ype d--eftypevar_name
+d--eftypevar
address@hidden deftypevar
+
address@hidden c--lass d--efivar_name
+d--efivar
address@hidden defivar
+
address@hidden c--lass t--ype d--eftypeivar_name
+d--eftypeivar
address@hidden deftypeivar
+
address@hidden c--lass d--efmethod_name a--rguments...
+d--efmethod
address@hidden defmethod
+
address@hidden c--lass t--ype d--eftypemethod_name a--rguments...
+d--eftypemethod
address@hidden deftypemethod
+';
+
+
+$result_texts{'all_commands'} = 'd--efvr
+
+d--eftypefn
+
+d--eftypeop
+
+d--eftypevr
+
+d--efcv
+
+d--efop
+
+d--eftp
+
+d--efun
+
+d--efmac
+
+d--efspec
+
+d--efvar
+
+d--efopt
+
+d--eftypefun
+
+d--eftypevar
+
+d--efivar
+
+d--eftypeivar
+
+d--efmethod
+
+d--eftypemethod
+';
+
+$result_errors{'all_commands'} = [];
+
+

Index: t/results/def/empty_def_command.pl
===================================================================
RCS file: t/results/def/empty_def_command.pl
diff -N t/results/def/empty_def_command.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/def/empty_def_command.pl  20 Oct 2010 21:07:26 -0000      1.1
@@ -0,0 +1,234 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'empty_def_command'} = {
+  'contents' => [
+    {
+      'cmdname' => 'deffn',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'empty deffn
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'empty'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'deffn'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
+          'type' => 'def_line'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deffn',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'empty deffn with deffnx
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'empty'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'deffn'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'with'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'deffnx'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'empty deffnx
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'misc_line_arg'
+            }
+          ],
+          'cmdname' => 'deffnx',
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'empty'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'deffnx'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
+          'type' => 'def_line'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ]
+};
+$result_trees{'empty_def_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_def_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_def_command'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[0]{'contents'}[0];
+$result_trees{'empty_def_command'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'empty_def_command'}{'contents'}[0];
+$result_trees{'empty_def_command'}{'contents'}[0]{'parent'} = 
$result_trees{'empty_def_command'};
+$result_trees{'empty_def_command'}{'contents'}[1]{'parent'} = 
$result_trees{'empty_def_command'};
+$result_trees{'empty_def_command'}{'contents'}[2]{'parent'} = 
$result_trees{'empty_def_command'};
+$result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[0];
+$result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[0]{'parent'} = 
$result_trees{'empty_def_command'}{'contents'}[3];
+$result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[1]{'args'}[0];
+$result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[1]{'args'}[0];
+$result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[1];
+$result_trees{'empty_def_command'}{'contents'}[3]{'contents'}[1]{'parent'} = 
$result_trees{'empty_def_command'}{'contents'}[3];
+$result_trees{'empty_def_command'}{'contents'}[3]{'parent'} = 
$result_trees{'empty_def_command'};
+$result_trees{'empty_def_command'}{'contents'}[4]{'parent'} = 
$result_trees{'empty_def_command'};
+
+$result_texis{'empty_def_command'} = '@deffn empty deffn
address@hidden deffn
+
address@hidden empty deffn with deffnx
address@hidden empty deffnx
address@hidden deffn
+';
+
+
+$result_texts{'empty_def_command'} = '
+';
+
+$result_errors{'empty_def_command'} = [];
+
+

Index: t/results/def/empty_deftype.pl
===================================================================
RCS file: t/results/def/empty_deftype.pl
diff -N t/results/def/empty_deftype.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/def/empty_deftype.pl      20 Oct 2010 21:07:26 -0000      1.1
@@ -0,0 +1,652 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'empty_deftype'} = {
+  'contents' => [
+    {
+      'cmdname' => 'deftypefun',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'contents' => [],
+                  'parent' => {},
+                  'type' => 'bracketed'
+                },
+                {
+                  'parent' => {},
+                  'text' => ' f (const type& x)
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'Function'
+                    }
+                  ],
+                  'type' => 'bracketed'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'f'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'delimiter',
+                {
+                  'text' => '(',
+                  'type' => 'delimiter'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'const'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'type&'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'x'
+                }
+              ],
+              [
+                'delimiter',
+                {
+                  'text' => ')',
+                  'type' => 'delimiter'
+                }
+              ]
+            ],
+            'def_command' => 'deftypefun'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'Deftypefun.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defun',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'f (const type& x)
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Function'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'f'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'delimiter',
+                {
+                  'text' => '(',
+                  'type' => 'delimiter'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'const'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'type&'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'x'
+                }
+              ],
+              [
+                'delimiter',
+                {
+                  'text' => ')',
+                  'type' => 'delimiter'
+                }
+              ]
+            ],
+            'def_command' => 'defun'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'Defun.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deftypemethod',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c '
+                },
+                {
+                  'contents' => [],
+                  'parent' => {},
+                  'type' => 'bracketed'
+                },
+                {
+                  'parent' => {},
+                  'text' => ' f (const type& x)
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Method'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'type',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'f'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'delimiter',
+                {
+                  'text' => '(',
+                  'type' => 'delimiter'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'const'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'type&'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'typearg',
+                {
+                  'text' => 'x'
+                }
+              ],
+              [
+                'delimiter',
+                {
+                  'text' => ')',
+                  'type' => 'delimiter'
+                }
+              ]
+            ],
+            'def_command' => 'deftypemethod'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'Deftypemethod.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'defmethod',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'c f (const type& x)
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'Method'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'class',
+                {
+                  'text' => 'c'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'f'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'delimiter',
+                {
+                  'text' => '(',
+                  'type' => 'delimiter'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'const'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'type&'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'x'
+                }
+              ],
+              [
+                'delimiter',
+                {
+                  'text' => ')',
+                  'type' => 'delimiter'
+                }
+              ]
+            ],
+            'def_command' => 'defmethod'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'Defmethod.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ]
+};
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0];
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'empty_deftype'}{'contents'}[0];
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'special'}{'def_args'}[0][1]{'contents'}[0]{'parent'}
 = 
$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'special'}{'def_args'}[0][1];
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'special'}{'def_args'}[2][1]
 = 
$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[1];
+$result_trees{'empty_deftype'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'empty_deftype'}{'contents'}[0];
+$result_trees{'empty_deftype'}{'contents'}[0]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[1]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[2]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[0];
+$result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[0]{'parent'} = 
$result_trees{'empty_deftype'}{'contents'}[3];
+$result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[1];
+$result_trees{'empty_deftype'}{'contents'}[3]{'contents'}[1]{'parent'} = 
$result_trees{'empty_deftype'}{'contents'}[3];
+$result_trees{'empty_deftype'}{'contents'}[3]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[4]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[5]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0];
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'parent'} = 
$result_trees{'empty_deftype'}{'contents'}[6];
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'special'}{'def_args'}[4][1]
 = 
$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[1];
+$result_trees{'empty_deftype'}{'contents'}[6]{'contents'}[1]{'parent'} = 
$result_trees{'empty_deftype'}{'contents'}[6];
+$result_trees{'empty_deftype'}{'contents'}[6]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[7]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[8]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[0];
+$result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[0]{'parent'} = 
$result_trees{'empty_deftype'}{'contents'}[9];
+$result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[1];
+$result_trees{'empty_deftype'}{'contents'}[9]{'contents'}[1]{'parent'} = 
$result_trees{'empty_deftype'}{'contents'}[9];
+$result_trees{'empty_deftype'}{'contents'}[9]{'parent'} = 
$result_trees{'empty_deftype'};
+$result_trees{'empty_deftype'}{'contents'}[10]{'parent'} = 
$result_trees{'empty_deftype'};
+
+$result_texis{'empty_deftype'} = '@deftypefun {} f (const type& x)
+Deftypefun.
address@hidden deftypefun
+
address@hidden f (const type& x)
+Defun.
address@hidden defun
+
address@hidden c {} f (const type& x)
+Deftypemethod.
address@hidden deftypemethod
+
address@hidden c f (const type& x)
+Defmethod.
address@hidden defmethod
+';
+
+
+$result_texts{'empty_deftype'} = 'Deftypefun.
+
+Defun.
+
+Deftypemethod.
+
+Defmethod.
+';
+
+$result_errors{'empty_deftype'} = [];
+
+

Index: t/results/def/end_of_line_protect_at_end.pl
===================================================================
RCS file: t/results/def/end_of_line_protect_at_end.pl
diff -N t/results/def/end_of_line_protect_at_end.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/def/end_of_line_protect_at_end.pl 20 Oct 2010 21:07:26 -0000      
1.1
@@ -0,0 +1,112 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'end_of_line_protect_at_end'} = {
+  'contents' => [
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'deffn',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'category2 deffn_name2 arguments2 '
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'category2'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'deffn_name2'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'arguments2'
+                }
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
+          'type' => 'def_line'
+        }
+      ],
+      'parent' => {}
+    }
+  ]
+};
+$result_trees{'end_of_line_protect_at_end'}{'contents'}[0]{'parent'} = 
$result_trees{'end_of_line_protect_at_end'};
+$result_trees{'end_of_line_protect_at_end'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_line_protect_at_end'}{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_line_protect_at_end'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'end_of_line_protect_at_end'}{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_line_protect_at_end'}{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'end_of_line_protect_at_end'}{'contents'}[1]{'contents'}[0];
+$result_trees{'end_of_line_protect_at_end'}{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'end_of_line_protect_at_end'}{'contents'}[1];
+$result_trees{'end_of_line_protect_at_end'}{'contents'}[1]{'parent'} = 
$result_trees{'end_of_line_protect_at_end'};
+
+$result_texis{'end_of_line_protect_at_end'} = '
address@hidden category2 deffn_name2 arguments2 @end deffn';
+
+
+$result_texts{'end_of_line_protect_at_end'} = '
+';
+
+$result_errors{'end_of_line_protect_at_end'} = [
+  {
+    'error_line' => ':2: Unexpected @
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'Unexpected @',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':2: No matching address@hidden deffn\'
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'No matching address@hidden deffn\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/def/end_of_lines_protected.pl
===================================================================
RCS file: t/results/def/end_of_lines_protected.pl
diff -N t/results/def/end_of_lines_protected.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/def/end_of_lines_protected.pl     20 Oct 2010 21:07:26 -0000      
1.1
@@ -0,0 +1,250 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'end_of_lines_protected'} = {
+  'contents' => [
+    {
+      'cmdname' => 'deffn',
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'category deffn_name arguments    more '
+                },
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'args   with end of line within'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'bracketed'
+                },
+                {
+                  'parent' => {},
+                  'text' => ' with 3 '
+                },
+                {
+                  'cmdname' => '@',
+                  'parent' => {}
+                },
+                {
+                  'parent' => {},
+                  'text' => ' '
+                },
+                {
+                  'cmdname' => '@',
+                  'parent' => {}
+                },
+                {
+                  'parent' => {},
+                  'text' => ' '
+                },
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'one last arg'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'bracketed'
+                },
+                {
+                  'parent' => {},
+                  'text' => '
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'def_args' => [
+              [
+                'category',
+                {
+                  'text' => 'category'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'name',
+                {
+                  'text' => 'deffn_name'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'arguments'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => '    ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'more'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => 'with'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {
+                  'text' => '3'
+                }
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ],
+              [
+                'spaces',
+                {
+                  'text' => ' ',
+                  'type' => 'spaces'
+                }
+              ],
+              [
+                'arg',
+                {}
+              ]
+            ],
+            'def_command' => 'deffn'
+          },
+          'type' => 'def_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'deffn
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ]
+};
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[4]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[5]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[6]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[7]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[8]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[8];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[8]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[9]{'parent'}
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'end_of_lines_protected'}{'contents'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'special'}{'def_args'}[8][1]
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'special'}{'def_args'}[14][1]
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[4];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'special'}{'def_args'}[16][1]
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[6];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'special'}{'def_args'}[18][1]
 = 
$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[8];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[1];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'end_of_lines_protected'}{'contents'}[0];
+$result_trees{'end_of_lines_protected'}{'contents'}[0]{'parent'} = 
$result_trees{'end_of_lines_protected'};
+$result_trees{'end_of_lines_protected'}{'contents'}[1]{'parent'} = 
$result_trees{'end_of_lines_protected'};
+
+$result_texis{'end_of_lines_protected'} = '@deffn category deffn_name 
arguments    more {args   with end of line within} with 3 @@ @@ {one last arg}
+deffn
address@hidden deffn
+';
+
+
+$result_texts{'end_of_lines_protected'} = 'deffn
+';
+
+$result_errors{'end_of_lines_protected'} = [];
+
+

Index: t/results/def/end_of_lines_protected_in_footnote.pl
===================================================================
RCS file: t/results/def/end_of_lines_protected_in_footnote.pl
diff -N t/results/def/end_of_lines_protected_in_footnote.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/def/end_of_lines_protected_in_footnote.pl 20 Oct 2010 21:07:26 
-0000      1.1
@@ -0,0 +1,300 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'end_of_lines_protected_in_footnote'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'empty_line'
+                },
+                {
+                  'cmdname' => 'deffn',
+                  'contents' => [
+                    {
+                      'args' => [
+                        {
+                          'contents' => [
+                            {
+                              'parent' => {},
+                              'text' => ' ',
+                              'type' => 'empty_spaces_after_command'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => 'category deffn_name arguments arg2    
more '
+                            },
+                            {
+                              'contents' => [
+                                {
+                                  'parent' => {},
+                                  'text' => 'args   with end of line within'
+                                }
+                              ],
+                              'parent' => {},
+                              'type' => 'bracketed'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => ' with 3 '
+                            },
+                            {
+                              'cmdname' => '@',
+                              'parent' => {}
+                            },
+                            {
+                              'parent' => {},
+                              'text' => ' '
+                            },
+                            {
+                              'cmdname' => '@',
+                              'parent' => {}
+                            },
+                            {
+                              'parent' => {},
+                              'text' => ' '
+                            },
+                            {
+                              'contents' => [
+                                {
+                                  'parent' => {},
+                                  'text' => 'one last arg'
+                                }
+                              ],
+                              'parent' => {},
+                              'type' => 'bracketed'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => '
+'
+                            }
+                          ],
+                          'parent' => {},
+                          'type' => 'block_line_arg'
+                        }
+                      ],
+                      'parent' => {},
+                      'special' => {
+                        'def_args' => [
+                          [
+                            'category',
+                            {
+                              'text' => 'category'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'name',
+                            {
+                              'text' => 'deffn_name'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {
+                              'text' => 'arguments'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {
+                              'text' => 'arg2'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => '    ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {
+                              'text' => 'more'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {}
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {
+                              'text' => 'with'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {
+                              'text' => '3'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {}
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {}
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {}
+                          ]
+                        ],
+                        'def_command' => 'deffn'
+                      },
+                      'type' => 'def_line'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'deffn
+'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'paragraph'
+                    }
+                  ],
+                  'parent' => {}
+                },
+                {
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'empty_line_after_command'
+                }
+              ],
+              'parent' => {}
+            }
+          ],
+          'cmdname' => 'footnote',
+          'contents' => [],
+          'parent' => {},
+          'remaining_args' => 0
+        },
+        {
+          'parent' => {},
+          'text' => '
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ]
+};
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[4]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[5]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[6]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[7]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[8]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[8];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[8]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[9]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'special'}{'def_args'}[10][1]
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'special'}{'def_args'}[16][1]
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[4];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'special'}{'def_args'}[18][1]
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[6];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'special'}{'def_args'}[20][1]
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[8];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0];
+$result_trees{'end_of_lines_protected_in_footnote'}{'contents'}[0]{'parent'} = 
$result_trees{'end_of_lines_protected_in_footnote'};
+
+$result_texis{'end_of_lines_protected_in_footnote'} = '@footnote{
address@hidden category deffn_name arguments arg2    more {args   with end of 
line within} with 3 @@ @@ {one last arg}
+deffn
address@hidden deffn
+}
+';
+
+
+$result_texts{'end_of_lines_protected_in_footnote'} = '
+';
+
+$result_errors{'end_of_lines_protected_in_footnote'} = [];
+
+



reply via email to

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