texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp TODO t/10menu.t t/16raw.t t/25region...


From: Patrice Dumas
Subject: texinfo/tp TODO t/10menu.t t/16raw.t t/25region...
Date: Sun, 24 Oct 2010 09:39:12 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/10/24 09:39:12

Modified files:
        tp             : TODO 
        tp/t           : 10menu.t 16raw.t 25regions.t 
                         57invalid_nestings.t 
Added files:
        tp/t/results/invalid_nestings: 
                                       def_not_closed_in_menu_description.pl 
                                       multitable_item_in_index.pl 
                                       node_in_copying.pl 
                                       node_in_copying_not_closed.pl 
                                       recursive_copying.pl 
                                       style_not_closed_in_block_command.pl 
                                       style_not_closed_in_table_line.pl 
                                       tab_in_index.pl 
                                       table_not_closed_in_menu_comment.pl 
                                       table_not_closed_in_menu_description.pl 
        tp/t/results/menu: menu_no_closed_after_empty_line.pl 
                           menu_no_closed_entry_beginning.pl 
                           menu_no_closed_in_description.pl 
                           menu_no_closed_in_entry.pl 
                           menu_no_closed_star.pl 
        tp/t/results/raw: tex_not_closed.pl 
        tp/t/results/regions: double_titlepage_not_closed.pl 

Log message:
        TEst for invalid nestings, menu and other commands not closed.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/10menu.t?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/16raw.t?cvsroot=texinfo&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/25regions.t?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/57invalid_nestings.t?cvsroot=texinfo&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/def_not_closed_in_menu_description.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/multitable_item_in_index.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/node_in_copying.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/node_in_copying_not_closed.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/recursive_copying.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/style_not_closed_in_block_command.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/style_not_closed_in_table_line.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/tab_in_index.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/table_not_closed_in_menu_comment.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/table_not_closed_in_menu_description.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/menu_no_closed_after_empty_line.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/menu_no_closed_entry_beginning.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/menu_no_closed_in_description.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/menu_no_closed_in_entry.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/menu_no_closed_star.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/raw/tex_not_closed.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/regions/double_titlepage_not_closed.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- TODO        24 Oct 2010 09:06:55 -0000      1.36
+++ TODO        24 Oct 2010 09:39:12 -0000      1.37
@@ -17,6 +17,8 @@
 
 test invalid, especially commands not closed/bad nesting
 
+test empty line in block or brace command in menu description.
+
 in t/57invalid_nestings.t in_table, no warning for bad stuff on @item line.
 
 in hyphenation: only text and accent commands, and should
@@ -29,6 +31,9 @@
 t/25regions.t double_copying
 
 no warning in
+t/57invalid_nestings.t recursive_copying
+
+no warning in
 t/19def.t empty_def_arguments
 
 
@@ -92,3 +97,13 @@
 invalid/math_not_closed.texi
 invalid/multitable_begin_with_tab.texi
 invalid/multitable_too_much_col.texi
+invalid/node_in_copying.texi
+invalid/node_too_much_arguments.texi
+invalid/not_closed_in_menu.texi
+invalid/recursive_copying.texi
+invalid/style_not_closed_in_cartouche.texi
+invalid/style_not_closed_in_table_line.texi
+invalid/tab_in_index.texi                  (but not the printindex)
+invalid/tex_not_closed.texi
+invalid/titlepage_not_closed.texi
+

Index: t/10menu.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/10menu.t,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/10menu.t  16 Oct 2010 09:37:06 -0000      1.4
+++ t/10menu.t  24 Oct 2010 09:39:12 -0000      1.5
@@ -83,6 +83,28 @@
 *something::
 address@hidden code}::
 @end menu'
+],
+['menu_no_closed_after_empty_line',
+'@menu
+* (manual_in_menu):: desc2
+
+
+'],
+['menu_no_closed_in_description',
+'@menu
+* (manual_in_menu):: desc'
+],
+['menu_no_closed_in_entry',
+'@menu
+* a1:'
+],
+['menu_no_closed_entry_beginning',
+'@menu
+* node'
+],
+['menu_no_closed_star',
+'@menu
+* '
 ]
 );
 

Index: t/16raw.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/16raw.t,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- t/16raw.t   24 Oct 2010 08:45:27 -0000      1.8
+++ t/16raw.t   24 Oct 2010 09:39:12 -0000      1.9
@@ -62,6 +62,11 @@
 
 This is some html
 <address> my address </address>
+'],
+['tex_not_closed',
+'@tex
+
+This is some \LaTeX{}
 ']
 );
 

Index: t/25regions.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/25regions.t,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/25regions.t       23 Oct 2010 17:33:23 -0000      1.1
+++ t/25regions.t       24 Oct 2010 09:39:12 -0000      1.2
@@ -17,6 +17,16 @@
 And a second one (?)
 @end copying
 @end copying
+'],
+['double_titlepage_not_closed',
+'@titlepage
+
+This is in title page
+
+
address@hidden
+
+And still in title page
 ']
 
 );

Index: t/57invalid_nestings.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/57invalid_nestings.t,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- t/57invalid_nestings.t      24 Oct 2010 08:45:27 -0000      1.6
+++ t/57invalid_nestings.t      24 Oct 2010 09:39:12 -0000      1.7
@@ -113,6 +113,17 @@
 @address@hidden bidule}
 @end multitable
 '],
+['tab_in_index',
+'@multitable {one nonlettered character} {normal text}
address@hidden one nonlettered character @tab aaa
address@hidden in index entry @tab in tab
address@hidden multitable
+'],
+['multitable_item_in_index',
+'@multitable {aaa} {bbb}
address@hidden @item on item line
address@hidden multitable
+'],
 ['style_not_closed_no_newline_root_commands',
 '@node Top
 
@@ -149,6 +160,18 @@
 @node Top
 In node
 '],
+['style_not_closed_in_block_command',
+'@cartouche
+cartouche @code{in code 
address@hidden cartouche
+'],
+['style_not_closed_in_table_line',
+'@table @asis
address@hidden first item
+line
+line @code{in code @item in item
address@hidden table
+'],
 ['formats_not_closed_in_example',
 '@example
 
@@ -184,6 +207,57 @@
 @headitem headitem outside.
 @someitem someitem outside.
 @tab tab outside
+'],
+['node_in_copying',
+'@copying
address@hidden node
+
address@hidden copying
+'],
+['node_in_copying_not_closed',
+'@copying
+
+This is an unterminatted copyright notice
+
+
address@hidden Top
address@hidden Top section
+
address@hidden
+'],
+['table_not_closed_in_menu_description',
+'@menu
+* (gcc):: text @table @minus
address@hidden item
+table line
address@hidden menu
+'],
+['table_not_closed_in_menu_comment',
+'@menu
+* (manual):: desc
+
address@hidden @bullet
address@hidden item
+comment
+* (manual2)::
address@hidden menu
+'],
+['def_not_closed_in_menu_description',
+'@menu
+* (info):: before deff @deffn bidule truc chose
+
+deffn text
address@hidden menu
+'],
+['recursive_copying',
+'@copying
+
+In copying.
+
address@hidden
address@hidden copying
+
address@hidden
 ']
 );
 

Index: t/results/invalid_nestings/def_not_closed_in_menu_description.pl
===================================================================
RCS file: t/results/invalid_nestings/def_not_closed_in_menu_description.pl
diff -N t/results/invalid_nestings/def_not_closed_in_menu_description.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/def_not_closed_in_menu_description.pl    24 Oct 
2010 09:39:12 -0000      1.1
@@ -0,0 +1,190 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'def_not_closed_in_menu_description'} = {
+  'contents' => [
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => '* ',
+              'type' => 'menu_entry_leading_text'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '(info)'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_node'
+            },
+            {
+              'parent' => {},
+              'text' => ':: ',
+              'type' => 'menu_entry_separator'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'before deff '
+                },
+                {
+                  'cmdname' => 'deffn',
+                  'contents' => [
+                    {
+                      'args' => [
+                        {
+                          'contents' => [
+                            {
+                              'parent' => {},
+                              'text' => ' ',
+                              'type' => 'empty_spaces_after_command'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => 'bidule truc chose
+'
+                            }
+                          ],
+                          'parent' => {},
+                          'type' => 'block_line_arg'
+                        }
+                      ],
+                      'parent' => {},
+                      'special' => {
+                        'def_args' => [
+                          [
+                            'category',
+                            {
+                              'text' => 'bidule'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'name',
+                            {
+                              'text' => 'truc'
+                            }
+                          ],
+                          [
+                            'spaces',
+                            {
+                              'text' => ' ',
+                              'type' => 'spaces'
+                            }
+                          ],
+                          [
+                            'arg',
+                            {
+                              'text' => 'chose'
+                            }
+                          ]
+                        ],
+                        'def_command' => 'deffn'
+                      },
+                      'type' => 'def_line'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '
+',
+                      'type' => 'empty_line'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => 'deffn text
+'
+                    }
+                  ],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_description'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_entry'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'def_not_closed_in_menu_description'}{'contents'}[0];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[1];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[2]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[0];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'parent'}
 = 
$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'def_not_closed_in_menu_description'}{'contents'}[0];
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[0]{'parent'} = 
$result_trees{'def_not_closed_in_menu_description'};
+$result_trees{'def_not_closed_in_menu_description'}{'contents'}[1]{'parent'} = 
$result_trees{'def_not_closed_in_menu_description'};
+
+$result_texis{'def_not_closed_in_menu_description'} = '@menu
+* (info):: before deff @deffn bidule truc chose
+
+deffn text
address@hidden address@hidden menu
+';
+
+
+$result_texts{'def_not_closed_in_menu_description'} = '* (info):: before deff 
bidule truc chose
+
+deffn text
+';
+
+$result_errors{'def_not_closed_in_menu_description'} = [
+  {
+    'error_line' => ':2: warning: @deffn should only appear at a line beginning
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => '@deffn should only appear at a line beginning',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':5: address@hidden' expected `deffn\', but saw `menu\'
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => 'address@hidden' expected `deffn\', but saw `menu\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/multitable_item_in_index.pl
===================================================================
RCS file: t/results/invalid_nestings/multitable_item_in_index.pl
diff -N t/results/invalid_nestings/multitable_item_in_index.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/multitable_item_in_index.pl      24 Oct 2010 
09:39:12 -0000      1.1
@@ -0,0 +1,156 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'multitable_item_in_index'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'aaa'
+                }
+              ],
+              'parent' => {},
+              'type' => 'bracketed'
+            },
+            {
+              'parent' => {},
+              'text' => ' '
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'bbb'
+                }
+              ],
+              'parent' => {},
+              'type' => 'bracketed'
+            },
+            {
+              'parent' => {},
+              'text' => '
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'block_line_arg'
+        }
+      ],
+      'cmdname' => 'multitable',
+      'contents' => [
+        {
+          'contents' => [
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => ' ',
+                      'type' => 'empty_spaces_after_command'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => ' ',
+                      'type' => 'empty_spaces_after_command'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => 'on item line'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '
+',
+                      'type' => 'spaces_at_end'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'misc_line_arg'
+                }
+              ],
+              'cmdname' => 'vindex',
+              'parent' => {}
+            }
+          ],
+          'parent' => {},
+          'type' => 'before_item'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'max_columns' => 2,
+        'prototypes' => [
+          {},
+          {}
+        ]
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[3];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'parent'} 
= $result_trees{'multitable_item_in_index'}{'contents'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'multitable_item_in_index'}{'contents'}[0];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'parent'} = 
$result_trees{'multitable_item_in_index'};
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'special'}{'prototypes'}[0]
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'multitable_item_in_index'}{'contents'}[0]{'special'}{'prototypes'}[1]
 = 
$result_trees{'multitable_item_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[3];
+$result_trees{'multitable_item_in_index'}{'contents'}[1]{'parent'} = 
$result_trees{'multitable_item_in_index'};
+
+$result_texis{'multitable_item_in_index'} = '@multitable {aaa} {bbb}
address@hidden  on item line
address@hidden multitable
+';
+
+
+$result_texts{'multitable_item_in_index'} = '';
+
+$result_errors{'multitable_item_in_index'} = [
+  {
+    'error_line' => ':2: warning: @item should not appear in @vindex
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => '@item should not appear in @vindex',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':2: @item outside of table or list
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => '@item outside of table or list',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/node_in_copying.pl
===================================================================
RCS file: t/results/invalid_nestings/node_in_copying.pl
diff -N t/results/invalid_nestings/node_in_copying.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/node_in_copying.pl       24 Oct 2010 09:39:12 
-0000      1.1
@@ -0,0 +1,107 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'node_in_copying'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'cmdname' => 'copying',
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line_after_command'
+            }
+          ],
+          'parent' => {}
+        }
+      ],
+      'type' => 'text_root'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'node'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'spaces_at_end'
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'node',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'document_root'
+};
+$result_trees{'node_in_copying'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying'}{'contents'}[0]{'contents'}[0];
+$result_trees{'node_in_copying'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'node_in_copying'}{'contents'}[0];
+$result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0];
+$result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0];
+$result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0];
+$result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'node_in_copying'}{'contents'}[1];
+$result_trees{'node_in_copying'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'node_in_copying'}{'contents'}[1];
+$result_trees{'node_in_copying'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'node_in_copying'}{'contents'}[1];
+$result_trees{'node_in_copying'}{'contents'}[1]{'parent'} = 
$result_trees{'node_in_copying'};
+
+$result_texis{'node_in_copying'} = '@copying
address@hidden address@hidden node
+
+
+';
+
+
+$result_texts{'node_in_copying'} = '
+';
+
+$result_errors{'node_in_copying'} = [
+  {
+    'error_line' => ':2: No matching address@hidden copying\'
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'No matching address@hidden copying\'',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':4: Unmatched address@hidden copying\'
+',
+    'file_name' => '',
+    'line_nr' => 4,
+    'macro' => '',
+    'text' => 'Unmatched address@hidden copying\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/node_in_copying_not_closed.pl
===================================================================
RCS file: t/results/invalid_nestings/node_in_copying_not_closed.pl
diff -N t/results/invalid_nestings/node_in_copying_not_closed.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/node_in_copying_not_closed.pl    24 Oct 2010 
09:39:12 -0000      1.1
@@ -0,0 +1,176 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'node_in_copying_not_closed'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'cmdname' => 'copying',
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'This is an unterminatted copyright notice
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'paragraph'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line'
+            }
+          ],
+          'parent' => {}
+        }
+      ],
+      'type' => 'text_root'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'Top'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'spaces_at_end'
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'node',
+      'contents' => [],
+      'parent' => {}
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'Top section'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'spaces_at_end'
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'top',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'cmdname' => 'insertcopying',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '
+'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'document_root'
+};
+$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = 
$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[2];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[1];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'parent'} = 
$result_trees{'node_in_copying_not_closed'};
+$result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'args'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'args'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'args'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'args'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[2];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[2];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[2];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'contents'}[2]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[2];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[2]{'parent'} = 
$result_trees{'node_in_copying_not_closed'};
+
+$result_texis{'node_in_copying_not_closed'} = '@copying
+
+This is an unterminatted copyright notice
+
+
address@hidden address@hidden Top
address@hidden Top section
+
address@hidden
+';
+
+
+$result_texts{'node_in_copying_not_closed'} = 'Top section
+
+
+';
+
+$result_errors{'node_in_copying_not_closed'} = [
+  {
+    'error_line' => ':6: No matching address@hidden copying\'
+',
+    'file_name' => '',
+    'line_nr' => 6,
+    'macro' => '',
+    'text' => 'No matching address@hidden copying\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/recursive_copying.pl
===================================================================
RCS file: t/results/invalid_nestings/recursive_copying.pl
diff -N t/results/invalid_nestings/recursive_copying.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/recursive_copying.pl     24 Oct 2010 09:39:12 
-0000      1.1
@@ -0,0 +1,103 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'recursive_copying'} = {
+  'contents' => [
+    {
+      'cmdname' => 'copying',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'In copying.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'cmdname' => 'insertcopying',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '
+'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'insertcopying',
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'recursive_copying'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'recursive_copying'}{'contents'}[0];
+$result_trees{'recursive_copying'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'recursive_copying'}{'contents'}[0];
+$result_trees{'recursive_copying'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'recursive_copying'}{'contents'}[0]{'contents'}[2];
+$result_trees{'recursive_copying'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'recursive_copying'}{'contents'}[0];
+$result_trees{'recursive_copying'}{'contents'}[0]{'contents'}[3]{'parent'} = 
$result_trees{'recursive_copying'}{'contents'}[0];
+$result_trees{'recursive_copying'}{'contents'}[0]{'contents'}[4]{'parent'} = 
$result_trees{'recursive_copying'}{'contents'}[0];
+$result_trees{'recursive_copying'}{'contents'}[0]{'contents'}[5]{'parent'} = 
$result_trees{'recursive_copying'}{'contents'}[0];
+$result_trees{'recursive_copying'}{'contents'}[0]{'parent'} = 
$result_trees{'recursive_copying'};
+$result_trees{'recursive_copying'}{'contents'}[1]{'parent'} = 
$result_trees{'recursive_copying'};
+$result_trees{'recursive_copying'}{'contents'}[2]{'parent'} = 
$result_trees{'recursive_copying'};
+$result_trees{'recursive_copying'}{'contents'}[3]{'parent'} = 
$result_trees{'recursive_copying'};
+$result_trees{'recursive_copying'}{'contents'}[4]{'parent'} = 
$result_trees{'recursive_copying'};
+
+$result_texis{'recursive_copying'} = '@copying
+
+In copying.
+
address@hidden
address@hidden copying
+
address@hidden
+';
+
+
+$result_texts{'recursive_copying'} = '
+
+';
+
+$result_errors{'recursive_copying'} = [];
+
+

Index: t/results/invalid_nestings/style_not_closed_in_block_command.pl
===================================================================
RCS file: t/results/invalid_nestings/style_not_closed_in_block_command.pl
diff -N t/results/invalid_nestings/style_not_closed_in_block_command.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/style_not_closed_in_block_command.pl     24 Oct 
2010 09:39:12 -0000      1.1
@@ -0,0 +1,84 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'style_not_closed_in_block_command'} = {
+  'contents' => [
+    {
+      'cmdname' => 'cartouche',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'cartouche '
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'in code 
+'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'code',
+              'contents' => [],
+              'parent' => {}
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'style_not_closed_in_block_command'}{'contents'}[0];
+$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1];
+$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1];
+$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'style_not_closed_in_block_command'}{'contents'}[0];
+$result_trees{'style_not_closed_in_block_command'}{'contents'}[0]{'parent'} = 
$result_trees{'style_not_closed_in_block_command'};
+$result_trees{'style_not_closed_in_block_command'}{'contents'}[1]{'parent'} = 
$result_trees{'style_not_closed_in_block_command'};
+
+$result_texis{'style_not_closed_in_block_command'} = '@cartouche
+cartouche @code{in code 
address@hidden cartouche
+';
+
+
+$result_texts{'style_not_closed_in_block_command'} = 'cartouche in code 
+';
+
+$result_errors{'style_not_closed_in_block_command'} = [
+  {
+    'error_line' => ':3: @code missing close brace
+',
+    'file_name' => '',
+    'line_nr' => 3,
+    'macro' => '',
+    'text' => '@code missing close brace',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/style_not_closed_in_table_line.pl
===================================================================
RCS file: t/results/invalid_nestings/style_not_closed_in_table_line.pl
diff -N t/results/invalid_nestings/style_not_closed_in_table_line.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/style_not_closed_in_table_line.pl        24 Oct 
2010 09:39:12 -0000      1.1
@@ -0,0 +1,183 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'style_not_closed_in_table_line'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'cmdname' => 'asis',
+              'parent' => {},
+              'type' => 'command_as_argument'
+            },
+            {
+              'parent' => {},
+              'text' => '
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'block_line_arg'
+        }
+      ],
+      'cmdname' => 'table',
+      'contents' => [
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'first item'
+                },
+                {
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'spaces_at_end'
+                }
+              ],
+              'parent' => {},
+              'type' => 'misc_line_arg'
+            }
+          ],
+          'cmdname' => 'item',
+          'parent' => {}
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'line
+'
+            },
+            {
+              'parent' => {},
+              'text' => 'line '
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'in code '
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'code',
+              'contents' => [],
+              'parent' => {}
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'in item'
+                },
+                {
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'spaces_at_end'
+                }
+              ],
+              'parent' => {},
+              'type' => 'misc_line_arg'
+            }
+          ],
+          'cmdname' => 'item',
+          'parent' => {}
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'style_not_closed_in_table_line'}{'contents'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'style_not_closed_in_table_line'}{'contents'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'style_not_closed_in_table_line'}{'contents'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2]{'contents'}[2]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2]{'contents'}[2];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2]{'contents'}[2]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'style_not_closed_in_table_line'}{'contents'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3]{'args'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3]{'args'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'style_not_closed_in_table_line'}{'contents'}[0];
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[0]{'parent'} = 
$result_trees{'style_not_closed_in_table_line'};
+$result_trees{'style_not_closed_in_table_line'}{'contents'}[1]{'parent'} = 
$result_trees{'style_not_closed_in_table_line'};
+
+$result_texis{'style_not_closed_in_table_line'} = '@table @asis
address@hidden first item
+line
+line @code{in code address@hidden in item
address@hidden table
+';
+
+
+$result_texts{'style_not_closed_in_table_line'} = 'first item
+line
+line in code in item
+';
+
+$result_errors{'style_not_closed_in_table_line'} = [
+  {
+    'error_line' => ':4: @code missing close brace
+',
+    'file_name' => '',
+    'line_nr' => 4,
+    'macro' => '',
+    'text' => '@code missing close brace',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/tab_in_index.pl
===================================================================
RCS file: t/results/invalid_nestings/tab_in_index.pl
diff -N t/results/invalid_nestings/tab_in_index.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/tab_in_index.pl  24 Oct 2010 09:39:12 -0000      
1.1
@@ -0,0 +1,223 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'tab_in_index'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'one nonlettered character'
+                }
+              ],
+              'parent' => {},
+              'type' => 'bracketed'
+            },
+            {
+              'parent' => {},
+              'text' => ' '
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'normal text'
+                }
+              ],
+              'parent' => {},
+              'type' => 'bracketed'
+            },
+            {
+              'parent' => {},
+              'text' => '
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'block_line_arg'
+        }
+      ],
+      'cmdname' => 'multitable',
+      'contents' => [
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        },
+        {
+          'contents' => [
+            {
+              'cmdname' => 'item',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'one nonlettered character '
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'paragraph'
+                }
+              ],
+              'parent' => {}
+            },
+            {
+              'cmdname' => 'tab',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'aaa
+'
+                    },
+                    {
+                      'args' => [
+                        {
+                          'contents' => [
+                            {
+                              'parent' => {},
+                              'text' => ' ',
+                              'type' => 'empty_spaces_after_command'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => 'in index entry '
+                            },
+                            {
+                              'parent' => {},
+                              'text' => ' ',
+                              'type' => 'empty_spaces_after_command'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => 'in tab'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => '
+',
+                              'type' => 'spaces_at_end'
+                            }
+                          ],
+                          'parent' => {},
+                          'type' => 'misc_line_arg'
+                        }
+                      ],
+                      'cmdname' => 'vindex',
+                      'parent' => {}
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'paragraph'
+                }
+              ],
+              'parent' => {}
+            }
+          ],
+          'parent' => {},
+          'special' => {
+            'cell_number' => 2
+          },
+          'type' => 'row'
+        }
+      ],
+      'parent' => {},
+      'special' => {
+        'max_columns' => 2,
+        'prototypes' => [
+          {},
+          {}
+        ]
+      }
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[3];
+$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'tab_in_index'}{'contents'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'tab_in_index'}{'contents'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[3]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[4]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'tab_in_index'}{'contents'}[0];
+$result_trees{'tab_in_index'}{'contents'}[0]{'parent'} = 
$result_trees{'tab_in_index'};
+$result_trees{'tab_in_index'}{'contents'}[0]{'special'}{'prototypes'}[0] = 
$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'tab_in_index'}{'contents'}[0]{'special'}{'prototypes'}[1] = 
$result_trees{'tab_in_index'}{'contents'}[0]{'args'}[0]{'contents'}[3];
+$result_trees{'tab_in_index'}{'contents'}[1]{'parent'} = 
$result_trees{'tab_in_index'};
+
+$result_texis{'tab_in_index'} = '@multitable {one nonlettered character} 
{normal text}
address@hidden one nonlettered character @tab aaa
address@hidden in index entry  in tab
address@hidden multitable
+';
+
+
+$result_texts{'tab_in_index'} = 'one nonlettered character aaa
+';
+
+$result_errors{'tab_in_index'} = [
+  {
+    'error_line' => ':3: warning: @tab should not appear in @vindex
+',
+    'file_name' => '',
+    'line_nr' => 3,
+    'macro' => '',
+    'text' => '@tab should not appear in @vindex',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':3: ignoring @tab outside of multitable
+',
+    'file_name' => '',
+    'line_nr' => 3,
+    'macro' => '',
+    'text' => 'ignoring @tab outside of multitable',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/table_not_closed_in_menu_comment.pl
===================================================================
RCS file: t/results/invalid_nestings/table_not_closed_in_menu_comment.pl
diff -N t/results/invalid_nestings/table_not_closed_in_menu_comment.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/table_not_closed_in_menu_comment.pl      24 Oct 
2010 09:39:12 -0000      1.1
@@ -0,0 +1,202 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'table_not_closed_in_menu_comment'} = {
+  'contents' => [
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => '* ',
+              'type' => 'menu_entry_leading_text'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '(manual)'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_node'
+            },
+            {
+              'parent' => {},
+              'text' => ':: ',
+              'type' => 'menu_entry_separator'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'desc
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_description'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_entry'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'after_description_line'
+        },
+        {
+          'contents' => [
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => ' ',
+                      'type' => 'empty_spaces_after_command'
+                    },
+                    {
+                      'cmdname' => 'bullet',
+                      'parent' => {},
+                      'type' => 'command_as_argument'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '
+'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'block_line_arg'
+                }
+              ],
+              'cmdname' => 'table',
+              'contents' => [
+                {
+                  'contents' => [],
+                  'parent' => {},
+                  'type' => 'before_item'
+                },
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => ' ',
+                          'type' => 'empty_spaces_after_command'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'item'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => '
+',
+                          'type' => 'spaces_at_end'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'misc_line_arg'
+                    }
+                  ],
+                  'cmdname' => 'item',
+                  'parent' => {}
+                },
+                {
+                  'parent' => {},
+                  'text' => 'comment
+'
+                },
+                {
+                  'parent' => {},
+                  'text' => '* (manual2)::
+'
+                }
+              ],
+              'parent' => {}
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_comment'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'args'}[1];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'args'}[2]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'args'}[3];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'contents'}[3]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[0]{'parent'} = 
$result_trees{'table_not_closed_in_menu_comment'};
+$result_trees{'table_not_closed_in_menu_comment'}{'contents'}[1]{'parent'} = 
$result_trees{'table_not_closed_in_menu_comment'};
+
+$result_texis{'table_not_closed_in_menu_comment'} = '@menu
+* (manual):: desc
+
address@hidden @bullet
address@hidden item
+comment
+* (manual2)::
address@hidden address@hidden menu
+';
+
+
+$result_texts{'table_not_closed_in_menu_comment'} = '* (manual):: desc
+
+item
+comment
+* (manual2)::
+';
+
+$result_errors{'table_not_closed_in_menu_comment'} = [
+  {
+    'error_line' => ':8: address@hidden' expected `table\', but saw `menu\'
+',
+    'file_name' => '',
+    'line_nr' => 8,
+    'macro' => '',
+    'text' => 'address@hidden' expected `table\', but saw `menu\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/invalid_nestings/table_not_closed_in_menu_description.pl
===================================================================
RCS file: t/results/invalid_nestings/table_not_closed_in_menu_description.pl
diff -N t/results/invalid_nestings/table_not_closed_in_menu_description.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/invalid_nestings/table_not_closed_in_menu_description.pl  24 Oct 
2010 09:39:12 -0000      1.1
@@ -0,0 +1,184 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'table_not_closed_in_menu_description'} = {
+  'contents' => [
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => '* ',
+              'type' => 'menu_entry_leading_text'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '(gcc)'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_node'
+            },
+            {
+              'parent' => {},
+              'text' => ':: ',
+              'type' => 'menu_entry_separator'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'text '
+                },
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => ' ',
+                          'type' => 'empty_spaces_after_command'
+                        },
+                        {
+                          'cmdname' => 'minus',
+                          'parent' => {},
+                          'type' => 'command_as_argument'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => '
+'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'block_line_arg'
+                    }
+                  ],
+                  'cmdname' => 'table',
+                  'contents' => [
+                    {
+                      'contents' => [],
+                      'parent' => {},
+                      'type' => 'before_item'
+                    },
+                    {
+                      'args' => [
+                        {
+                          'contents' => [
+                            {
+                              'parent' => {},
+                              'text' => ' ',
+                              'type' => 'empty_spaces_after_command'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => 'item'
+                            },
+                            {
+                              'parent' => {},
+                              'text' => '
+',
+                              'type' => 'spaces_at_end'
+                            }
+                          ],
+                          'parent' => {},
+                          'type' => 'misc_line_arg'
+                        }
+                      ],
+                      'cmdname' => 'item',
+                      'parent' => {}
+                    },
+                    {
+                      'parent' => {},
+                      'text' => 'table line
+'
+                    }
+                  ],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_description'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_entry'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'table_not_closed_in_menu_description'}{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[2]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[1]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'parent'}
 = 
$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'table_not_closed_in_menu_description'}{'contents'}[0];
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[0]{'parent'} 
= $result_trees{'table_not_closed_in_menu_description'};
+$result_trees{'table_not_closed_in_menu_description'}{'contents'}[1]{'parent'} 
= $result_trees{'table_not_closed_in_menu_description'};
+
+$result_texis{'table_not_closed_in_menu_description'} = '@menu
+* (gcc):: text @table @minus
address@hidden item
+table line
address@hidden address@hidden menu
+';
+
+
+$result_texts{'table_not_closed_in_menu_description'} = '* (gcc):: text item
+table line
+';
+
+$result_errors{'table_not_closed_in_menu_description'} = [
+  {
+    'error_line' => ':2: warning: @table should only appear at a line beginning
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => '@table should only appear at a line beginning',
+    'type' => 'warning'
+  },
+  {
+    'error_line' => ':5: address@hidden' expected `table\', but saw `menu\'
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => 'address@hidden' expected `table\', but saw `menu\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/menu/menu_no_closed_after_empty_line.pl
===================================================================
RCS file: t/results/menu/menu_no_closed_after_empty_line.pl
diff -N t/results/menu/menu_no_closed_after_empty_line.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/menu/menu_no_closed_after_empty_line.pl   24 Oct 2010 09:39:12 
-0000      1.1
@@ -0,0 +1,112 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'menu_no_closed_after_empty_line'} = {
+  'contents' => [
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => '* ',
+              'type' => 'menu_entry_leading_text'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '(manual_in_menu)'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_node'
+            },
+            {
+              'parent' => {},
+              'text' => ':: ',
+              'type' => 'menu_entry_separator'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'desc2
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_description'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_entry'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'after_description_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_comment'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'args'}[1];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'parent'}
 = 
$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'args'}[2]{'parent'}
 = 
$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'args'}[3];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'parent'}
 = 
$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[3];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0];
+$result_trees{'menu_no_closed_after_empty_line'}{'contents'}[0]{'parent'} = 
$result_trees{'menu_no_closed_after_empty_line'};
+
+$result_texis{'menu_no_closed_after_empty_line'} = '@menu
+* (manual_in_menu):: desc2
+
+
address@hidden menu';
+
+
+$result_texts{'menu_no_closed_after_empty_line'} = '* (manual_in_menu):: desc2
+
+
+';
+
+$result_errors{'menu_no_closed_after_empty_line'} = [
+  {
+    'error_line' => ':4: No matching address@hidden menu\'
+',
+    'file_name' => '',
+    'line_nr' => 4,
+    'macro' => '',
+    'text' => 'No matching address@hidden menu\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/menu/menu_no_closed_entry_beginning.pl
===================================================================
RCS file: t/results/menu/menu_no_closed_entry_beginning.pl
diff -N t/results/menu/menu_no_closed_entry_beginning.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/menu/menu_no_closed_entry_beginning.pl    24 Oct 2010 09:39:12 
-0000      1.1
@@ -0,0 +1,53 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'menu_no_closed_entry_beginning'} = {
+  'contents' => [
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => '* node'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_comment'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'menu_no_closed_entry_beginning'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'menu_no_closed_entry_beginning'}{'contents'}[0];
+$result_trees{'menu_no_closed_entry_beginning'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'menu_no_closed_entry_beginning'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_entry_beginning'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'menu_no_closed_entry_beginning'}{'contents'}[0];
+$result_trees{'menu_no_closed_entry_beginning'}{'contents'}[0]{'parent'} = 
$result_trees{'menu_no_closed_entry_beginning'};
+
+$result_texis{'menu_no_closed_entry_beginning'} = '@menu
+* address@hidden menu';
+
+
+$result_texts{'menu_no_closed_entry_beginning'} = '* node';
+
+$result_errors{'menu_no_closed_entry_beginning'} = [
+  {
+    'error_line' => ':2: No matching address@hidden menu\'
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'No matching address@hidden menu\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/menu/menu_no_closed_in_description.pl
===================================================================
RCS file: t/results/menu/menu_no_closed_in_description.pl
diff -N t/results/menu/menu_no_closed_in_description.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/menu/menu_no_closed_in_description.pl     24 Oct 2010 09:39:12 
-0000      1.1
@@ -0,0 +1,84 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'menu_no_closed_in_description'} = {
+  'contents' => [
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => '* ',
+              'type' => 'menu_entry_leading_text'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '(manual_in_menu)'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_node'
+            },
+            {
+              'parent' => {},
+              'text' => ':: ',
+              'type' => 'menu_entry_separator'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'desc'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_description'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_entry'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'menu_no_closed_in_description'}{'contents'}[0];
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'args'}[1];
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'parent'}
 = $result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'args'}[2]{'parent'}
 = $result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'args'}[3];
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'args'}[3]{'parent'}
 = $result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'menu_no_closed_in_description'}{'contents'}[0];
+$result_trees{'menu_no_closed_in_description'}{'contents'}[0]{'parent'} = 
$result_trees{'menu_no_closed_in_description'};
+
+$result_texis{'menu_no_closed_in_description'} = '@menu
+* (manual_in_menu):: address@hidden menu';
+
+
+$result_texts{'menu_no_closed_in_description'} = '* (manual_in_menu):: desc';
+
+$result_errors{'menu_no_closed_in_description'} = [
+  {
+    'error_line' => ':2: No matching address@hidden menu\'
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'No matching address@hidden menu\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/menu/menu_no_closed_in_entry.pl
===================================================================
RCS file: t/results/menu/menu_no_closed_in_entry.pl
diff -N t/results/menu/menu_no_closed_in_entry.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/menu/menu_no_closed_in_entry.pl   24 Oct 2010 09:39:12 -0000      
1.1
@@ -0,0 +1,72 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'menu_no_closed_in_entry'} = {
+  'contents' => [
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => '* ',
+              'type' => 'menu_entry_leading_text'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'a1'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_name'
+            },
+            {
+              'parent' => {},
+              'text' => ':',
+              'type' => 'menu_entry_separator'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_entry'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'menu_no_closed_in_entry'}{'contents'}[0];
+$result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1]{'args'}[1];
+$result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1]{'args'}[1]{'parent'}
 = $result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1]{'args'}[2]{'parent'}
 = $result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'menu_no_closed_in_entry'}{'contents'}[0];
+$result_trees{'menu_no_closed_in_entry'}{'contents'}[0]{'parent'} = 
$result_trees{'menu_no_closed_in_entry'};
+
+$result_texis{'menu_no_closed_in_entry'} = '@menu
+* a1:@end menu';
+
+
+$result_texts{'menu_no_closed_in_entry'} = '* a1:';
+
+$result_errors{'menu_no_closed_in_entry'} = [
+  {
+    'error_line' => ':2: No matching address@hidden menu\'
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'No matching address@hidden menu\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/menu/menu_no_closed_star.pl
===================================================================
RCS file: t/results/menu/menu_no_closed_star.pl
diff -N t/results/menu/menu_no_closed_star.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/menu/menu_no_closed_star.pl       24 Oct 2010 09:39:12 -0000      
1.1
@@ -0,0 +1,53 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'menu_no_closed_star'} = {
+  'contents' => [
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => '* '
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_comment'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'menu_no_closed_star'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'menu_no_closed_star'}{'contents'}[0];
+$result_trees{'menu_no_closed_star'}{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'menu_no_closed_star'}{'contents'}[0]{'contents'}[1];
+$result_trees{'menu_no_closed_star'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'menu_no_closed_star'}{'contents'}[0];
+$result_trees{'menu_no_closed_star'}{'contents'}[0]{'parent'} = 
$result_trees{'menu_no_closed_star'};
+
+$result_texis{'menu_no_closed_star'} = '@menu
+* @end menu';
+
+
+$result_texts{'menu_no_closed_star'} = '* ';
+
+$result_errors{'menu_no_closed_star'} = [
+  {
+    'error_line' => ':2: No matching address@hidden menu\'
+',
+    'file_name' => '',
+    'line_nr' => 2,
+    'macro' => '',
+    'text' => 'No matching address@hidden menu\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/raw/tex_not_closed.pl
===================================================================
RCS file: t/results/raw/tex_not_closed.pl
diff -N t/results/raw/tex_not_closed.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/raw/tex_not_closed.pl     24 Oct 2010 09:39:12 -0000      1.1
@@ -0,0 +1,57 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'tex_not_closed'} = {
+  'contents' => [
+    {
+      'cmdname' => 'tex',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'raw'
+        },
+        {
+          'parent' => {},
+          'text' => 'This is some \\LaTeX{}
+',
+          'type' => 'raw'
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'tex_not_closed'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'tex_not_closed'}{'contents'}[0];
+$result_trees{'tex_not_closed'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'tex_not_closed'}{'contents'}[0];
+$result_trees{'tex_not_closed'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'tex_not_closed'}{'contents'}[0];
+$result_trees{'tex_not_closed'}{'contents'}[0]{'parent'} = 
$result_trees{'tex_not_closed'};
+
+$result_texis{'tex_not_closed'} = '@tex
+
+This is some \\LaTeX{}
address@hidden tex';
+
+
+$result_texts{'tex_not_closed'} = '';
+
+$result_errors{'tex_not_closed'} = [
+  {
+    'error_line' => ':3: No matching address@hidden tex\'
+',
+    'file_name' => '',
+    'line_nr' => 3,
+    'macro' => '',
+    'text' => 'No matching address@hidden tex\'',
+    'type' => 'error'
+  }
+];
+
+

Index: t/results/regions/double_titlepage_not_closed.pl
===================================================================
RCS file: t/results/regions/double_titlepage_not_closed.pl
diff -N t/results/regions/double_titlepage_not_closed.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/regions/double_titlepage_not_closed.pl    24 Oct 2010 09:39:12 
-0000      1.1
@@ -0,0 +1,125 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors);
+
+$result_trees{'double_titlepage_not_closed'} = {
+  'contents' => [
+    {
+      'cmdname' => 'titlepage',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'This is in title page
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'cmdname' => 'titlepage',
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'And still in title page
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'paragraph'
+            }
+          ],
+          'parent' => {}
+        }
+      ],
+      'parent' => {}
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[2];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5]{'contents'}[0]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5]{'contents'}[1]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5]{'contents'}[2]{'contents'}[0]{'parent'}
 = 
$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5]{'contents'}[2];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5]{'contents'}[2]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'double_titlepage_not_closed'}{'contents'}[0];
+$result_trees{'double_titlepage_not_closed'}{'contents'}[0]{'parent'} = 
$result_trees{'double_titlepage_not_closed'};
+
+$result_texis{'double_titlepage_not_closed'} = '@titlepage
+
+This is in title page
+
+
address@hidden
+
+And still in title page
address@hidden address@hidden titlepage';
+
+
+$result_texts{'double_titlepage_not_closed'} = '';
+
+$result_errors{'double_titlepage_not_closed'} = [
+  {
+    'error_line' => ':8: No matching address@hidden titlepage\'
+',
+    'file_name' => '',
+    'line_nr' => 8,
+    'macro' => '',
+    'text' => 'No matching address@hidden titlepage\'',
+    'type' => 'error'
+  },
+  {
+    'error_line' => ':8: No matching address@hidden titlepage\'
+',
+    'file_name' => '',
+    'line_nr' => 8,
+    'macro' => '',
+    'text' => 'No matching address@hidden titlepage\'',
+    'type' => 'error'
+  }
+];
+
+



reply via email to

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