texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp Texinfo/Parser.pm t/18itemize.t t/57...


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Parser.pm t/18itemize.t t/57...
Date: Sat, 23 Oct 2010 14:02:21 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/10/23 14:02:21

Modified files:
        tp/Texinfo     : Parser.pm 
        tp/t           : 18itemize.t 57invalid_nestings.t 
        tp/t/results/include: double_include.pl 
Added files:
        tp/t/results/invalid_nestings: accents.pl center.pl 
                                       on_itemize_line.pl 
        tp/t/results/itemize: lone_end_itemize.pl not_closed_item.pl 
                              not_closed_itemize.pl 

Log message:
        Close nested line @-commands as soon as possible.
        Warn if a lone @end appears.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.92&r2=1.93
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/18itemize.t?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/57invalid_nestings.t?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/include/double_include.pl?cvsroot=texinfo&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/accents.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/center.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/on_itemize_line.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/itemize/lone_end_itemize.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/itemize/not_closed_item.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/itemize/not_closed_itemize.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -b -r1.92 -r1.93
--- Texinfo/Parser.pm   23 Oct 2010 10:50:12 -0000      1.92
+++ Texinfo/Parser.pm   23 Oct 2010 14:02:21 -0000      1.93
@@ -518,6 +518,8 @@
 foreach my $brace_command(keys(%brace_commands)) {
   $in_accent_commands{$brace_command} = 1 if 
(!$brace_commands{$brace_command});
 }
+$in_accent_commands{'c'} = 1;
+$in_accent_commands{'comment'} = 1;
 
 # commands that may appear in texts arguments
 my %in_full_text_commands = %no_brace_commands;
@@ -989,6 +991,10 @@
        ($preformatted_commands{$current->{'cmdname'}} 
          or $menu_commands{$current->{'cmdname'}});
     $current = $current->{'parent'}
+  } elsif ($command) {
+    _line_error ($self, 
+                sprintf($self->__("Unmatched `%c%s'"), 
+                       ord('@'), "end $command"), $line_nr);
   }
   return $current;
 }
@@ -1414,6 +1420,7 @@
 }
 
 # close constructs and do stuff at end of line (or end of the document)
+sub _end_line($$$);
 sub _end_line($$$)
 {
   my $self = shift;
@@ -1535,6 +1542,9 @@
   } elsif ($current->{'type'}
             and $current->{'type'} eq 'block_line_arg') {
     my $empty_text;
+    my $context = pop @{$self->{'context_stack'}};
+    print STDERR "BUG: $context in block_line_arg ne line\n" 
+       if ($context ne 'line');
     # @multitable args
     if ($current->{'parent'} and $current->{'parent'}->{'cmdname'}
                and $current->{'parent'}->{'cmdname'} eq 'multitable') {
@@ -1595,6 +1605,9 @@
   # misc command line arguments
   } elsif ($current->{'type'} 
            and $current->{'type'} eq 'misc_line_arg') {
+    my $context = pop @{$self->{'context_stack'}};
+    print STDERR "BUG: $context in misc_line_arg ne line\n" 
+       if ($context ne 'line');
     $self->_isolate_last_space($current);
 
     # first parent is the @command, second is the parent
@@ -1658,6 +1671,10 @@
         _line_error ($self, sprintf($self->__("address@hidden only meaningful 
on a address@hidden line"), 
            $command), $line_nr);
       } else {
+        # This is the multitable block_line_arg line context
+        my $context = pop @{$self->{'context_stack'}};
+          print STDERR "BUG: $context in misc_line_arg ne line\n" 
+        if ($context ne 'line');
         $current = $current->{'parent'};
         $current->{'special'}->{'max_columns'} = 0;
         $current->{'special'}->{'max_columns'} = 
@@ -1687,6 +1704,34 @@
       unshift @{$current->{'parent'}->{'contents'}}, $empty_line;
     }
   }
+  if ($self->{'context_stack'}->[-1] eq 'line' 
+            or $self->{'context_stack'}->[-1] eq 'def') {
+    print STDERR "Still opened line command 
$self->{'context_stack'}->[-1]:"._print_current($current) 
+      if ($self->{'debug'});
+    if ($self->{'context_stack'}->[-1] eq 'def') {
+      while ($current->{'parent'} and !($current->{'parent'}->{'parent'}
+            and $current->{'parent'}->{'parent'}->{'type'}
+            and $current->{'parent'}->{'parent'}->{'type'} eq 'def_line')) {
+        _line_error($self, sprintf($self->__("Closing address@hidden"), 
+                                  $current->{'cmdname'}), $line_nr)
+          if (exists $current->{'cmdname'});
+        $current = $current->{'parent'};
+      }
+    } else {
+      while ($current->{'parent'} and !($current->{'type'}
+             and ($current->{'type'} eq 'brace_line_arg'
+                  or $current->{'type'} eq 'misc_line_arg'))) {
+        _line_error($self, sprintf($self->__("Closing address@hidden"), 
+                                  $current->{'cmdname'}), $line_nr)
+          if (exists $current->{'cmdname'});
+        $current = $current->{'parent'};
+      }
+    }
+
+    my $other_included_file = 0;
+    ($current, $other_included_file) = $self->_end_line($current, $line_nr);
+    $included_file = $included_file + $other_included_file;
+  }
   return ($current, $included_file);
 }
 
@@ -2387,6 +2432,8 @@
               # be very wise...
               $current->{'remaining_args'} = 3 if ($command eq 'node');
               $current = $current->{'args'}->[-1];
+              push @{$self->{'context_stack'}}, 'line' 
+                unless ($def_commands{$command});
             }
             $line = _start_empty_line_after_command($line, $current);
           }
@@ -2476,6 +2523,8 @@
                 if ($block_commands{$command} =~ /^\d+$/ 
                     and $block_commands{$command} -1);
               $current = $current->{'args'}->[-1];
+              push @{$self->{'context_stack'}}, 'line' 
+                unless ($def_commands{$command});
             } else {
               push @{$self->{'context_stack'}}, 'preformatted' 
                 if ($preformatted_commands{$command});

Index: t/18itemize.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/18itemize.t,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/18itemize.t       5 Oct 2010 22:41:39 -0000       1.2
+++ t/18itemize.t       23 Oct 2010 14:02:21 -0000      1.3
@@ -20,6 +20,16 @@
 @itemize @~
 @item item
 @end itemize
+'],
+['not_closed_item',
+'@itemize
address@hidden in item
+'],
+['not_closed_itemize',
+'@itemize
+'],
+['lone_end_itemize',
+'@end itemize
 ']
 );
 

Index: t/57invalid_nestings.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/57invalid_nestings.t,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/57invalid_nestings.t      23 Oct 2010 10:50:12 -0000      1.1
+++ t/57invalid_nestings.t      23 Oct 2010 14:02:21 -0000      1.2
@@ -27,8 +27,32 @@
 in address@hidden in item}
 @end table
 '],
+['on_itemize_line',
+'@itemize @indent @titlefont{in titlefont} @anchor{in address@hidden @exdent 
exdent
address@hidden in item.
address@hidden itemize
+
address@hidden on line @item in item
address@hidden itemize
+'],
 ['on_index_entry_line',
 '@cindex @indent @titlefont{in titlefont} @anchor{in address@hidden @exdent 
exdent
+'],
+['center',
+'@center @indent @titlefont{in titlefont} @anchor{in address@hidden
+
address@hidden center @cindex cindex
+
address@hidden @quotation
+in quotation
address@hidden quotation
+'],
+['accents',
+'Valid
address@hidden@TeX{}}. @~{@@}.
+
+Invalid
address@hidden@code{a}}.  @address@hidden
 ']
 );
 

Index: t/results/include/double_include.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/include/double_include.pl,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- t/results/include/double_include.pl 23 Oct 2010 10:22:22 -0000      1.5
+++ t/results/include/double_include.pl 23 Oct 2010 14:02:21 -0000      1.6
@@ -9,51 +9,38 @@
       'type' => 'empty_line'
     },
     {
-      'args' => [
-        {
           'contents' => [
             {
               'parent' => {},
-              'text' => ' ',
-              'type' => 'empty_spaces_after_command'
-            },
-            {
-              'parent' => {},
-              'text' => 'inc_file.texi In included file.'
+          'text' => 'In included file.
+'
             },
             {
               'parent' => {},
-              'text' => '
-',
-              'type' => 'spaces_at_end'
-            }
-          ],
-          'parent' => {},
-          'type' => 'misc_line_arg'
+          'text' => 'In included file.
+'
         }
       ],
-      'cmdname' => 'include',
       'parent' => {},
-      'special' => {
-        'text_arg' => 'inc_file.texi In included file.'
-      }
+      'type' => 'paragraph'
     }
   ],
   'type' => 'text_root'
 };
 $result_trees{'double_include'}{'contents'}[0]{'parent'} = 
$result_trees{'double_include'};
-$result_trees{'double_include'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'double_include'}{'contents'}[1]{'args'}[0];
-$result_trees{'double_include'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'double_include'}{'contents'}[1]{'args'}[0];
-$result_trees{'double_include'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'double_include'}{'contents'}[1]{'args'}[0];
-$result_trees{'double_include'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'double_include'}{'contents'}[1];
+$result_trees{'double_include'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'double_include'}{'contents'}[1];
+$result_trees{'double_include'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'double_include'}{'contents'}[1];
 $result_trees{'double_include'}{'contents'}[1]{'parent'} = 
$result_trees{'double_include'};
 
 $result_texis{'double_include'} = '
address@hidden inc_file.texi In included file.
+In included file.
+In included file.
 ';
 
 
 $result_texts{'double_include'} = '
+In included file.
+In included file.
 ';
 
 $result_errors{'double_include'} = [
@@ -74,15 +61,6 @@
     'macro' => '',
     'text' => '@include should not appear in @include',
     'type' => 'warning'
-  },
-  {
-    'error_line' => 'inc_file.texi:2: @include: Cannot find inc_file.texi In 
included file.
-',
-    'file_name' => 't/include//inc_file.texi',
-    'line_nr' => 2,
-    'macro' => '',
-    'text' => '@include: Cannot find inc_file.texi In included file.',
-    'type' => 'error'
   }
 ];
 

Index: t/results/invalid_nestings/accents.pl
===================================================================
RCS file: t/results/invalid_nestings/accents.pl
diff -N t/results/invalid_nestings/accents.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/accents.pl       23 Oct 2010 14:02:21 -0000      
1.1
@@ -0,0 +1,219 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'accents'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'Valid
+'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'TeX',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => '~',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'cmdname' => '@',
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => '~',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'Invalid
+'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'a'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'code',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => '~',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.  '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'truc'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'anchor',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => '^',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '.
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'accents'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'accents'}{'contents'}[0];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'accents'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'accents'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'accents'}{'contents'}[0]{'contents'}[1];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'accents'}{'contents'}[0];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'accents'}{'contents'}[0];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'accents'}{'contents'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[3]{'args'}[0]{'parent'} = 
$result_trees{'accents'}{'contents'}[0]{'contents'}[3];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[3]{'parent'} = 
$result_trees{'accents'}{'contents'}[0];
+$result_trees{'accents'}{'contents'}[0]{'contents'}[4]{'parent'} = 
$result_trees{'accents'}{'contents'}[0];
+$result_trees{'accents'}{'contents'}[0]{'parent'} = $result_trees{'accents'};
+$result_trees{'accents'}{'contents'}[1]{'parent'} = $result_trees{'accents'};
+$result_trees{'accents'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'accents'}{'contents'}[2];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'accents'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'accents'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'accents'}{'contents'}[2]{'contents'}[1]{'args'}[0];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'accents'}{'contents'}[2]{'contents'}[1];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[1]{'parent'} = 
$result_trees{'accents'}{'contents'}[2];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[2]{'parent'} = 
$result_trees{'accents'}{'contents'}[2];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'accents'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'accents'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'contents'}[0];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'accents'}{'contents'}[2]{'contents'}[3]{'args'}[0];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[3]{'args'}[0]{'parent'} = 
$result_trees{'accents'}{'contents'}[2]{'contents'}[3];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[3]{'parent'} = 
$result_trees{'accents'}{'contents'}[2];
+$result_trees{'accents'}{'contents'}[2]{'contents'}[4]{'parent'} = 
$result_trees{'accents'}{'contents'}[2];
+$result_trees{'accents'}{'contents'}[2]{'parent'} = $result_trees{'accents'};
+
+$result_texis{'accents'} = 'Valid
address@hidden@TeX{}}. @~{@@}.
+
+Invalid
address@hidden@code{a}}.  @address@hidden
+';
+
+
+$result_texts{'accents'} = 'Valid
+TeX~. @~.
+
+Invalid
+a~.  ^.
+';
+
+$result_errors{'accents'} = [
+  {
+    'error_line' => ':5: warning: @code should not appear in @~
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => '@code should not appear in @~',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':5: warning: @anchor should not appear in @^
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => '@anchor should not appear in @^',
+    'type' => 'warning'
+  }
+];
+
+

Index: t/results/invalid_nestings/center.pl
===================================================================
RCS file: t/results/invalid_nestings/center.pl
diff -N t/results/invalid_nestings/center.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/center.pl        23 Oct 2010 14:02:21 -0000      
1.1
@@ -0,0 +1,306 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'center'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'cmdname' => 'indent',
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'in titlefont'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'titlefont',
+              'contents' => [],
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' '
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'in anchor'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'parent' => {}
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'footnote'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'paragraph'
+                    }
+                  ],
+                  'parent' => {}
+                }
+              ],
+              'cmdname' => 'footnote',
+              'contents' => [],
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'spaces_at_end'
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'center',
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'center'
+            },
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'spaces_at_end'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => ' ',
+                      'type' => 'empty_spaces_after_command'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => 'cindex'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '
+',
+                      'type' => 'spaces_at_end'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'misc_line_arg'
+                }
+              ],
+              'cmdname' => 'cindex',
+              'parent' => {}
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'center',
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'cmdname' => 'quotation',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'empty_line_after_command'
+                }
+              ],
+              'parent' => {}
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'center',
+      'parent' => {}
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'in quotation
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'center'}{'contents'}[0]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'center'}{'contents'}[0]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'center'}{'contents'}[0]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'args'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[3];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'} = 
$result_trees{'center'}{'contents'}[0]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[4]{'parent'} = 
$result_trees{'center'}{'contents'}[0]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[5]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[5]{'args'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[5];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[5]{'parent'} = 
$result_trees{'center'}{'contents'}[0]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0]{'contents'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[6];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'parent'} = 
$result_trees{'center'}{'contents'}[0]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'contents'}[7]{'parent'} = 
$result_trees{'center'}{'contents'}[0]{'args'}[0];
+$result_trees{'center'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'center'}{'contents'}[0];
+$result_trees{'center'}{'contents'}[0]{'parent'} = $result_trees{'center'};
+$result_trees{'center'}{'contents'}[1]{'parent'} = $result_trees{'center'};
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'center'}{'contents'}[2]{'args'}[0];
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'center'}{'contents'}[2]{'args'}[0];
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'center'}{'contents'}[2]{'args'}[0];
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3]{'args'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3];
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'contents'}[3]{'parent'} = 
$result_trees{'center'}{'contents'}[2]{'args'}[0];
+$result_trees{'center'}{'contents'}[2]{'args'}[0]{'parent'} = 
$result_trees{'center'}{'contents'}[2];
+$result_trees{'center'}{'contents'}[2]{'parent'} = $result_trees{'center'};
+$result_trees{'center'}{'contents'}[3]{'parent'} = $result_trees{'center'};
+$result_trees{'center'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'center'}{'contents'}[4]{'args'}[0];
+$result_trees{'center'}{'contents'}[4]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'center'}{'contents'}[4]{'args'}[0]{'contents'}[1];
+$result_trees{'center'}{'contents'}[4]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'center'}{'contents'}[4]{'args'}[0];
+$result_trees{'center'}{'contents'}[4]{'args'}[0]{'parent'} = 
$result_trees{'center'}{'contents'}[4];
+$result_trees{'center'}{'contents'}[4]{'parent'} = $result_trees{'center'};
+$result_trees{'center'}{'contents'}[5]{'contents'}[0]{'parent'} = 
$result_trees{'center'}{'contents'}[5];
+$result_trees{'center'}{'contents'}[5]{'parent'} = $result_trees{'center'};
+$result_trees{'center'}{'contents'}[6]{'parent'} = $result_trees{'center'};
+
+$result_texis{'center'} = '@center @indent @titlefont{in titlefont} @anchor{in 
address@hidden
+
address@hidden center @cindex cindex
+
address@hidden @quotation
address@hidden quotationin quotation
+
+';
+
+
+$result_texts{'center'} = 'in titlefont 
+
+center
+
+
+in quotation
+';
+
+$result_errors{'center'} = [
+  {
+    'error_line' => ':3: warning: @cindex should not appear in @center
+',
+    'file_name' => '',
+    'line_nr' => 3,
+    'macro' => '',
+    'text' => '@cindex should not appear in @center',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':5: warning: @quotation should not appear in @center
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => '@quotation should not appear in @center',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':5: Closing @quotation
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => 'Closing @quotation',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':7: Unmatched address@hidden quotation\'
+',
+    'file_name' => '',
+    'line_nr' => 7,
+    'macro' => '',
+    'text' => 'Unmatched address@hidden quotation\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/on_itemize_line.pl
===================================================================
RCS file: t/results/invalid_nestings/on_itemize_line.pl
diff -N t/results/invalid_nestings/on_itemize_line.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/on_itemize_line.pl       23 Oct 2010 14:02:21 
-0000      1.1
@@ -0,0 +1,321 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'on_itemize_line'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'cmdname' => 'indent',
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'in titlefont'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'titlefont',
+              'contents' => [],
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' '
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'in anchor'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'parent' => {}
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'footnote'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'paragraph'
+                    }
+                  ],
+                  'parent' => {}
+                }
+              ],
+              'cmdname' => 'footnote',
+              'contents' => [],
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' '
+            },
+            {
+              'cmdname' => 'exdent',
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'exdent
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'block_line_arg'
+        }
+      ],
+      'cmdname' => 'itemize',
+      'contents' => [
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        },
+        {
+          'cmdname' => 'item',
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'in item.
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'paragraph'
+            }
+          ],
+          'parent' => {}
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'on line '
+            },
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'in item
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'block_line_arg'
+        }
+      ],
+      'cmdname' => 'itemize',
+      'contents' => [
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'args'}[0]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[3];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[5]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[5]{'args'}[0]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[5];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0]{'contents'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'args'}[0]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[6];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[6]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[7]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[8]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[9]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'contents'}[10]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'on_itemize_line'}{'contents'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'on_itemize_line'}{'contents'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'contents'}[1];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'on_itemize_line'}{'contents'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[0]{'contents'}[1];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'on_itemize_line'}{'contents'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[0]{'parent'} = 
$result_trees{'on_itemize_line'};
+$result_trees{'on_itemize_line'}{'contents'}[1]{'parent'} = 
$result_trees{'on_itemize_line'};
+$result_trees{'on_itemize_line'}{'contents'}[2]{'parent'} = 
$result_trees{'on_itemize_line'};
+$result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0];
+$result_trees{'on_itemize_line'}{'contents'}[3]{'args'}[0]{'parent'} = 
$result_trees{'on_itemize_line'}{'contents'}[3];
+$result_trees{'on_itemize_line'}{'contents'}[3]{'contents'}[0]{'parent'} = 
$result_trees{'on_itemize_line'}{'contents'}[3];
+$result_trees{'on_itemize_line'}{'contents'}[3]{'parent'} = 
$result_trees{'on_itemize_line'};
+$result_trees{'on_itemize_line'}{'contents'}[4]{'parent'} = 
$result_trees{'on_itemize_line'};
+
+$result_texis{'on_itemize_line'} = '@itemize @indent @titlefont{in titlefont} 
@anchor{in address@hidden @exdent exdent
address@hidden in item.
address@hidden itemize
+
address@hidden on line  in item
address@hidden itemize
+';
+
+
+$result_texts{'on_itemize_line'} = 'in item.
+
+';
+
+$result_errors{'on_itemize_line'} = [
+  {
+    'error_line' => ':1: warning: @indent should not appear in @itemize
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => '@indent should not appear in @itemize',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':1: warning: @titlefont should not appear in @itemize
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => '@titlefont should not appear in @itemize',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':1: warning: @anchor should not appear in @itemize
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => '@anchor should not appear in @itemize',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':1: warning: @footnote should not appear in @itemize
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => '@footnote should not appear in @itemize',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':1: warning: @exdent should only appear at a line 
beginning
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => '@exdent should only appear at a line beginning',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':1: warning: @exdent should not appear in @itemize
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => '@exdent should not appear in @itemize',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':5: warning: @item should not appear in @itemize
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => '@item should not appear in @itemize',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':5: @item outside of table or list
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => '@item outside of table or list',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/itemize/lone_end_itemize.pl
===================================================================
RCS file: t/results/itemize/lone_end_itemize.pl
diff -N t/results/itemize/lone_end_itemize.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/itemize/lone_end_itemize.pl       23 Oct 2010 14:02:21 -0000      
1.1
@@ -0,0 +1,34 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'lone_end_itemize'} = {
+  'contents' => [
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'lone_end_itemize'}{'contents'}[0]{'parent'} = 
$result_trees{'lone_end_itemize'};
+
+$result_texis{'lone_end_itemize'} = '
+';
+
+
+$result_texts{'lone_end_itemize'} = '';
+
+$result_errors{'lone_end_itemize'} = [
+  {
+    'error_line' => ':1: Unmatched address@hidden itemize\'
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => 'Unmatched address@hidden itemize\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/itemize/not_closed_item.pl
===================================================================
RCS file: t/results/itemize/not_closed_item.pl
diff -N t/results/itemize/not_closed_item.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/itemize/not_closed_item.pl        23 Oct 2010 14:02:21 -0000      
1.1
@@ -0,0 +1,75 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'not_closed_item'} = {
+  'contents' => [
+    {
+      'cmdname' => 'itemize',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        },
+        {
+          'cmdname' => 'item',
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'in item
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'paragraph'
+            }
+          ],
+          'parent' => {}
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'not_closed_item'}{'contents'}[0];
+$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'not_closed_item'}{'contents'}[0];
+$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2];
+$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'contents'}[1];
+$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2];
+$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'not_closed_item'}{'contents'}[0];
+$result_trees{'not_closed_item'}{'contents'}[0]{'parent'} = 
$result_trees{'not_closed_item'};
+
+$result_texis{'not_closed_item'} = '@itemize
address@hidden in item
address@hidden itemize';
+
+
+$result_texts{'not_closed_item'} = 'in item
+';
+
+$result_errors{'not_closed_item'} = [
+  {
+    'error_line' => ':2: No matching address@hidden itemize\'
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'No matching address@hidden itemize\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/itemize/not_closed_itemize.pl
===================================================================
RCS file: t/results/itemize/not_closed_itemize.pl
diff -N t/results/itemize/not_closed_itemize.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/itemize/not_closed_itemize.pl     23 Oct 2010 14:02:21 -0000      
1.1
@@ -0,0 +1,47 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'not_closed_itemize'} = {
+  'contents' => [
+    {
+      'cmdname' => 'itemize',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'not_closed_itemize'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'not_closed_itemize'}{'contents'}[0];
+$result_trees{'not_closed_itemize'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'not_closed_itemize'}{'contents'}[0];
+$result_trees{'not_closed_itemize'}{'contents'}[0]{'parent'} = 
$result_trees{'not_closed_itemize'};
+
+$result_texis{'not_closed_itemize'} = '@itemize
address@hidden itemize';
+
+
+$result_texts{'not_closed_itemize'} = '';
+
+$result_errors{'not_closed_itemize'} = [
+  {
+    'error_line' => ':1: No matching address@hidden itemize\'
+',
+    'file_name' => '',
+    'line_nr' => 1,
+    'macro' => '',
+    'text' => 'No matching address@hidden itemize\'',
+    'type' => 'error'
+  }
+];
+
+



reply via email to

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