texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: Handle @end macro, verbatim and ignore line like


From: Patrice Dumas
Subject: branch master updated: Handle @end macro, verbatim and ignore line like other block commands
Date: Sat, 10 Sep 2022 04:03:18 -0400

This is an automated email from the git hooks/post-receive script.

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 9621c470ba Handle @end macro, verbatim and ignore line like other 
block commands
9621c470ba is described below

commit 9621c470baafb92ac67f496f16818951f8014035
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sat Sep 10 10:03:07 2022 +0200

    Handle @end macro, verbatim and ignore line like other block commands
    
    * tp/Texinfo/ParserNonXS.pm (_parse_texi),
    tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
    do not add explicitely an end command after a macro, verbatim or
    ignore @end, but let it be done by the code handling all the @end
    commands.
---
 ChangeLog                                          |  10 +
 tp/Texinfo/ParserNonXS.pm                          |  29 ++-
 tp/Texinfo/XS/parsetexi/parser.c                   |  44 ++--
 .../command_conditionals_user_defined.pl           |   7 +-
 .../conditionals/empty_ifset_in_ifset_set.pl       |   7 +-
 tp/t/results/conditionals/end_ifset_in_format.pl   |  14 +-
 tp/t/results/conditionals/macro_in_ifset.pl        |   7 +-
 tp/t/results/conditionals/macro_in_ifset_set.pl    |  14 +-
 tp/t/results/conditionals/nested_ifset_ifclear.pl  |   7 +-
 tp/t/results/conditionals/nested_ignore.pl         |  21 +-
 .../conditionals/user_defined_txiinternalvalue.pl  |   7 +-
 .../results/converters_tests/at_commands_in_raw.pl |   7 +-
 tp/t/results/coverage/symbol_after_block.pl        |  14 +-
 tp/t/results/coverage_braces/test_image.pl         |   7 +-
 tp/t/results/formatting/texi_bib_example.pl        |  49 ++++-
 tp/t/results/formatting/texi_glossary.pl           |  77 ++++++-
 .../verbatim_in_multitable_in_example.pl           |   7 +-
 tp/t/results/html_tests/xml_protected_in_verb.pl   |   7 +-
 tp/t/results/include/cpp_lines.pl                  |  21 +-
 .../macro_and_commands_in_early_commands.pl        |  28 ++-
 .../results/include/macro_definition_in_include.pl |   7 +-
 tp/t/results/include/macro_in_early_commands.pl    |  42 +++-
 tp/t/results/info_tests/def_in_copying.pl          |   7 +-
 tp/t/results/invalid_nestings/ignore_in_xref.pl    |   7 +-
 tp/t/results/invalid_nestings/verbatim_in_ref.pl   |   7 +-
 .../results/latex_tests/verbatim_in_smallformat.pl |   7 +-
 tp/t/results/macro/arg_body_expansion_order.pl     |  28 ++-
 tp/t/results/macro/arg_not_closed.pl               |   7 +-
 tp/t/results/macro/backslash_in_arg.pl             |   7 +-
 tp/t/results/macro/bad_argument.pl                 |  28 ++-
 tp/t/results/macro/bad_formal_arg.pl               |  28 ++-
 .../macro/bad_macro_name_with_underscore.pl        |   7 +-
 tp/t/results/macro/complete_macro_for_end.pl       |   7 +-
 tp/t/results/macro/complex_argument.pl             |  42 +++-
 tp/t/results/macro/double_macro_definition.pl      |  14 +-
 tp/t/results/macro/double_recursive_macro_call.pl  |  14 +-
 tp/t/results/macro/empty_end.pl                    |   7 +-
 tp/t/results/macro/empty_macro_argument.pl         |  14 +-
 tp/t/results/macro/empty_macro_in_text_no_arg.pl   |  14 +-
 tp/t/results/macro/empty_macro_no_arg.pl           |   7 +-
 tp/t/results/macro/expand_two_same.pl              |   7 +-
 tp/t/results/macro/expansion_order.pl              |  14 +-
 tp/t/results/macro/form_feeds.pl                   |  14 +-
 tp/t/results/macro/ifclear_in_macro.pl             |   7 +-
 tp/t/results/macro/ifset_and_end_isef_in_macro.pl  |  14 +-
 tp/t/results/macro/ifset_in_macro.pl               |   7 +-
 tp/t/results/macro/ifset_in_macro_set.pl           |   7 +-
 tp/t/results/macro/ignored_macro_definition.pl     |   7 +-
 tp/t/results/macro/implicit_quoting_one_arg.pl     |   7 +-
 tp/t/results/macro/implicit_quoting_recursion.pl   |   7 +-
 tp/t/results/macro/include_after_empty_line_arg.pl |   7 +-
 tp/t/results/macro/leading_spaces_no_ignore.pl     |   7 +-
 tp/t/results/macro/line_after_recursive_call.pl    |   7 +-
 tp/t/results/macro/macro_expands_to_empty.pl       |   7 +-
 tp/t/results/macro/macro_expansion.pl              |  73 +++++--
 tp/t/results/macro/macro_for_end.pl                |   7 +-
 .../macro/macro_for_ignored_line_command.pl        |   7 +-
 tp/t/results/macro/macro_in_accent.pl              |  14 +-
 tp/t/results/macro/macro_in_brace_command.pl       |  14 +-
 tp/t/results/macro/macro_in_end_argument.pl        |   7 +-
 tp/t/results/macro/macro_in_ifset.pl               |   7 +-
 tp/t/results/macro/macro_in_ifset_end_in_arg.pl    |   7 +-
 tp/t/results/macro/macro_in_index_commands.pl      |  49 ++++-
 .../macro/macro_in_invalid_documentencoding.pl     |   7 +-
 tp/t/results/macro/macro_in_macro_arg.pl           |  21 +-
 tp/t/results/macro/macro_in_macro_arg_simpler.pl   |  14 +-
 tp/t/results/macro/macro_in_menu.pl                |  42 +++-
 tp/t/results/macro/macro_in_misc_commands.pl       | 238 ++++++++++++++++++---
 tp/t/results/macro/macro_name_with_digit.pl        |  14 +-
 tp/t/results/macro/macro_name_with_hyphen.pl       |   7 +-
 tp/t/results/macro/macro_no_arg_bad_expansion.pl   |   7 +-
 tp/t/results/macro/macro_no_arg_expansion.pl       |   7 +-
 tp/t/results/macro/macro_one_arg_end_of_file.pl    |   7 +-
 .../macro_with_error_at_end_line_after_macro.pl    |   7 +-
 tp/t/results/macro/macro_zero.pl                   |   7 +-
 tp/t/results/macro/nested_macro_call.pl            |  14 +-
 tp/t/results/macro/no_macrobody.pl                 |   7 +-
 tp/t/results/macro/paragraph_and_macro.pl          |  21 +-
 tp/t/results/macro/protect_comma_macro_line.pl     |   7 +-
 tp/t/results/macro/protect_in_body.pl              |   7 +-
 tp/t/results/macro/protect_in_body_line_arg.pl     |   7 +-
 tp/t/results/macro/protect_in_body_one_arg.pl      |   7 +-
 tp/t/results/macro/recursive_call_in_argument.pl   |   7 +-
 tp/t/results/macro/recursive_call_in_macro.pl      |   7 +-
 tp/t/results/macro/redefine_texinfo_macro.pl       |   7 +-
 tp/t/results/macro/simple_imbricated_macro.pl      |  21 +-
 tp/t/results/macro/space_macro_after_end.pl        |   7 +-
 .../macro/space_macro_after_end_verbatim.pl        |  14 +-
 tp/t/results/macro/text_before_after.pl            |   7 +-
 tp/t/results/macro/too_much_args.pl                |   7 +-
 tp/t/results/macro/two_macros_on_a_line.pl         |  14 +-
 tp/t/results/macro/zero_argument.pl                |  14 +-
 .../menu/block_commands_in_menu_description.pl     |   7 +-
 tp/t/results/menu/formats_in_menu.pl               |   7 +-
 .../codequoteundirected_codequotebacktick.pl       |  14 +-
 tp/t/results/misc_commands/kbdinputstyle.pl        |   7 +-
 .../misc_commands/kbdinputstyle_in_table.pl        |   7 +-
 tp/t/results/misc_commands/test_allowcodebreaks.pl |  14 +-
 .../plaintext_tests/star_at_command_formatting.pl  |   7 +-
 tp/t/results/raw/misc_raw.pl                       |   7 +-
 tp/t/results/raw/misc_raw_comments.pl              |   7 +-
 tp/t/results/raw/nested_macros.pl                  |  21 +-
 tp/t/results/raw/raw_commands_and_end_of_lines.pl  |  42 +++-
 tp/t/results/raw/raw_in_para.pl                    |   7 +-
 tp/t/results/raw/space_before_end.pl               |   7 +-
 tp/t/results/raw/spurious_arg_on_line.pl           |   7 +-
 tp/t/results/raw/verbatim_and_verbatiminclude.pl   |  49 ++++-
 tp/t/results/raw/verbatim_in_brace_command.pl      |   7 +-
 .../value_and_macro/comma_value_in_macro_arg.pl    |   7 +-
 tp/t/results/value_and_macro/macro_in_value.pl     |   7 +-
 .../results/value_and_macro/value_in_macro_body.pl |   7 +-
 .../value_and_macro/value_in_macro_formal_arg.pl   |   7 +-
 tp/t/results/xml_tests/commands_and_spaces.pl      |   7 +-
 tp/t/results/xml_tests/macro_and_args.pl           |  14 +-
 tp/t/results/xml_tests/spaces_info_lost.pl         |   7 +-
 tp/t/results/xtable/table_nested.pl                |   7 +-
 116 files changed, 1522 insertions(+), 300 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ed4a550a1a..5ae7e8b989 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2022-09-10  Patrice Dumas  <pertusus@free.fr>
+
+       Handle @end macro, verbatim and ignore line like other block commands
+
+       * tp/Texinfo/ParserNonXS.pm (_parse_texi),
+       tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
+       do not add explicitely an end command after a macro, verbatim or
+       ignore @end, but let it be done by the code handling all the @end
+       commands.
+
 2022-09-10  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
diff --git a/tp/Texinfo/ParserNonXS.pm b/tp/Texinfo/ParserNonXS.pm
index 01d6f62610..4039a5c6de 100644
--- a/tp/Texinfo/ParserNonXS.pm
+++ b/tp/Texinfo/ParserNonXS.pm
@@ -3995,9 +3995,8 @@ sub _parse_texi($$$)
         } elsif ($line =~ /^(\s*?)\@end\s+([a-zA-Z][\w-]*)/
                  and ($2 eq $current->{'cmdname'})) {
           my $end_command = $2;
-          $line =~ s/^(\s*?)(\@end(\s+)$current->{'cmdname'})//;
           my $spaces_before_end = $1;
-          my $space_after_end = $3;
+          $line =~ s/^\s*//;
           if ($spaces_before_end eq '') {
             # FIXME exclude other formats, like @macro, @ifset, @ignore?
             if ($current->{'cmdname'} ne 'verbatim'
@@ -4050,8 +4049,8 @@ sub _parse_texi($$$)
               }
             }
           }
-          $current = $current->{'parent'};
           if ($block_commands{$end_command} eq 'conditional') {
+            $current = $current->{'parent'};
             # don't store ignored @if*
             my $conditional = pop @{$current->{'contents'}};
             if (!defined($conditional->{'cmdname'}
@@ -4061,6 +4060,7 @@ sub _parse_texi($$$)
                                    $source_info, $conditional);
               die;
             }
+            $line =~ s/^(\@end(\s+)$end_command)//;
             $self->_line_warn(sprintf(
                  __("superfluous argument to \@%s %s: %s"), 'end', 
$end_command,
                                     $line), $source_info)
@@ -4074,19 +4074,16 @@ sub _parse_texi($$$)
             last;
           } else {
             print STDERR "CLOSED raw $end_command\n" if ($self->{'DEBUG'});
-            # code similar to code in Texinfo::Structuring::new_block_command
-            my $end = {'cmdname' => 'end', 'parent' => 
$current->{'contents'}->[-1],
-                       'extra' => {'spaces_before_argument' => 
$space_after_end,
-                                   'text_arg' => $end_command}};
-            $end->{'args'} = [{'type' => 'line_arg', 'parent' => $end}];
-
-            $self->_push_context('ct_line', 'end');
-
-            push @{$end->{'args'}->[0]->{'contents'}},
-                    {'text' => $end_command, 'parent' => $end->{'args'}->[0]};
-            push @{$current->{'contents'}->[-1]->{'contents'}}, $end;
-
-            $current = $end->{'args'}->[0];
+            # start a new line for the @end line (without the first spaces on
+            # the line that have already been put in a raw container).
+            # This is normally done at the beginning of a line, but not here,
+            # as we directly got the line.  As the @end is processed just 
below,
+            # an empty line will not appear in the output, but it is needed to
+            # avoid a duplicate warning on @end not appearing at the beginning
+            # of the line
+            push @{$current->{'contents'}}, { 'type' => 'empty_line',
+                                              'text' => '',
+                                              'parent' => $current };
           }
         } else {
           push @{$current->{'contents'}},
diff --git a/tp/Texinfo/XS/parsetexi/parser.c b/tp/Texinfo/XS/parsetexi/parser.c
index 64761f4ab8..a25e6a5ab6 100644
--- a/tp/Texinfo/XS/parsetexi/parser.c
+++ b/tp/Texinfo/XS/parsetexi/parser.c
@@ -1150,7 +1150,8 @@ process_remaining_on_line (ELEMENT **current_inout, char 
**line_inout)
           char *tmp = 0;
 
           last_child = last_contents_child (current);
-           
+
+          /* collect whitespaces at the beginning of the line and advance p */
           if (strchr (whitespace_chars, *p))
             {
               ELEMENT *e;
@@ -1158,6 +1159,7 @@ process_remaining_on_line (ELEMENT **current_inout, char 
**line_inout)
               e = new_element (ET_raw);
               text_append_n (&e->text, p, n);
               add_to_element_contents (current, e);
+              p += n;
               line_warn ("@end %s should only appear at the "
                          "beginning of a line", command_name(end_cmd));
             }
@@ -1215,12 +1217,12 @@ process_remaining_on_line (ELEMENT **current_inout, 
char **line_inout)
                 }
             }
 
-          current = current->parent;
 
           /* Check for conditionals. */
           if (command_data(end_cmd).flags & CF_block
               && command_data(end_cmd).data == BLOCK_conditional)
             {
+              current = current->parent;
               /* Remove an ignored block. */
               ELEMENT *popped;
               popped = pop_element_from_contents (current);
@@ -1262,32 +1264,20 @@ superfluous_arg:
             }
           else
             {
-              ELEMENT *e_cmd;
-              ELEMENT *e_cmd_text;
               ELEMENT *e;
-              ELEMENT *last = last_contents_child (current);
-              ELEMENT *line_arg;
-              char *end_command_name = command_name(end_cmd);
-              int n;
-
-              debug ("CLOSED raw %s", end_command_name);
-              e_cmd = new_element (ET_NONE);
-              e_cmd->cmd = CM_end;
-              add_extra_string_dup (e_cmd, "spaces_before_argument",
-                                    spaces_after_end);
-              add_extra_string_dup (e_cmd, "text_arg",
-                                    end_command_name);
-              line_arg = new_element (ET_line_arg);
-              add_to_element_args (e_cmd, line_arg);
-
-              push_context (ct_line, CM_end);
-
-              e_cmd_text = new_element (ET_NONE);
-              text_append (&e_cmd_text->text, end_command_name);
-              add_to_element_contents (line_arg, e_cmd_text);
-              add_to_element_contents (last, e_cmd);
-
-              current = line_arg;
+
+              /* go back to the position of the @end */
+              line = p;
+              debug ("CLOSED raw %s", command_name(end_cmd));
+         /* start a new line for the @end line (without the first spaces on
+            the line that have already been put in a raw container).
+            This is normally done at the beginning of a line, but not here,
+            as we directly got the line.  As the @end is processed just below,
+            an empty line will not appear in the output, but it is needed to
+            avoid a duplicate warning on @end not appearing at the beginning
+            of the line */
+              e = new_element (ET_empty_line);
+              add_to_element_contents (current, e);
             }
           free (spaces_after_end);
         }
diff --git a/tp/t/results/conditionals/command_conditionals_user_defined.pl 
b/tp/t/results/conditionals/command_conditionals_user_defined.pl
index 7a5ae66f0c..6b0839c1a5 100644
--- a/tp/t/results/conditionals/command_conditionals_user_defined.pl
+++ b/tp/t/results/conditionals/command_conditionals_user_defined.pl
@@ -52,7 +52,12 @@ $result_trees{'command_conditionals_user_defined'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/conditionals/empty_ifset_in_ifset_set.pl 
b/tp/t/results/conditionals/empty_ifset_in_ifset_set.pl
index 9e6cc043db..441e2e760f 100644
--- a/tp/t/results/conditionals/empty_ifset_in_ifset_set.pl
+++ b/tp/t/results/conditionals/empty_ifset_in_ifset_set.pl
@@ -87,7 +87,12 @@ $result_trees{'empty_ifset_in_ifset_set'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/conditionals/end_ifset_in_format.pl 
b/tp/t/results/conditionals/end_ifset_in_format.pl
index 14a1aa438b..e061fb157f 100644
--- a/tp/t/results/conditionals/end_ifset_in_format.pl
+++ b/tp/t/results/conditionals/end_ifset_in_format.pl
@@ -92,7 +92,12 @@ $result_trees{'end_ifset_in_format'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'ignore'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -161,7 +166,12 @@ $result_trees{'end_ifset_in_format'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 14,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/conditionals/macro_in_ifset.pl 
b/tp/t/results/conditionals/macro_in_ifset.pl
index 85e6d8d9fc..f4ec39e099 100644
--- a/tp/t/results/conditionals/macro_in_ifset.pl
+++ b/tp/t/results/conditionals/macro_in_ifset.pl
@@ -58,7 +58,12 @@ $result_trees{'macro_in_ifset'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/conditionals/macro_in_ifset_set.pl 
b/tp/t/results/conditionals/macro_in_ifset_set.pl
index 6aef689d08..da731fa856 100644
--- a/tp/t/results/conditionals/macro_in_ifset_set.pl
+++ b/tp/t/results/conditionals/macro_in_ifset_set.pl
@@ -88,7 +88,12 @@ $result_trees{'macro_in_ifset_set'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -169,7 +174,12 @@ $result_trees{'macro_in_ifset_set'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 12,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/conditionals/nested_ifset_ifclear.pl 
b/tp/t/results/conditionals/nested_ifset_ifclear.pl
index c6b8ddc3b9..15a6723c32 100644
--- a/tp/t/results/conditionals/nested_ifset_ifclear.pl
+++ b/tp/t/results/conditionals/nested_ifset_ifclear.pl
@@ -100,7 +100,12 @@ $result_trees{'nested_ifset_ifclear'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 11,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/conditionals/nested_ignore.pl 
b/tp/t/results/conditionals/nested_ignore.pl
index 3088178bfb..7ea078c35b 100644
--- a/tp/t/results/conditionals/nested_ignore.pl
+++ b/tp/t/results/conditionals/nested_ignore.pl
@@ -62,7 +62,12 @@ $result_trees{'nested_ignore'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'ignore'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -131,7 +136,12 @@ $result_trees{'nested_ignore'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'ignore'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 9,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -200,7 +210,12 @@ $result_trees{'nested_ignore'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'ignore'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 14,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/conditionals/user_defined_txiinternalvalue.pl 
b/tp/t/results/conditionals/user_defined_txiinternalvalue.pl
index 7ca600b3b4..3a9b926378 100644
--- a/tp/t/results/conditionals/user_defined_txiinternalvalue.pl
+++ b/tp/t/results/conditionals/user_defined_txiinternalvalue.pl
@@ -52,7 +52,12 @@ $result_trees{'user_defined_txiinternalvalue'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/converters_tests/at_commands_in_raw.pl 
b/tp/t/results/converters_tests/at_commands_in_raw.pl
index e0a1e92dc6..0f2ffc9ac6 100644
--- a/tp/t/results/converters_tests/at_commands_in_raw.pl
+++ b/tp/t/results/converters_tests/at_commands_in_raw.pl
@@ -121,7 +121,12 @@ $result_trees{'at_commands_in_raw'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/coverage/symbol_after_block.pl 
b/tp/t/results/coverage/symbol_after_block.pl
index 5544eb30d5..f150699dc8 100644
--- a/tp/t/results/coverage/symbol_after_block.pl
+++ b/tp/t/results/coverage/symbol_after_block.pl
@@ -212,7 +212,12 @@ $result_trees{'symbol_after_block'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim;'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 13,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -274,7 +279,12 @@ $result_trees{'symbol_after_block'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim@'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 17,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/coverage_braces/test_image.pl 
b/tp/t/results/coverage_braces/test_image.pl
index afd0edd766..b17831939b 100644
--- a/tp/t/results/coverage_braces/test_image.pl
+++ b/tp/t/results/coverage_braces/test_image.pl
@@ -64,7 +64,12 @@ $result_trees{'test_image'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/formatting/texi_bib_example.pl 
b/tp/t/results/formatting/texi_bib_example.pl
index 07c3f6ed4e..26f914d233 100644
--- a/tp/t/results/formatting/texi_bib_example.pl
+++ b/tp/t/results/formatting/texi_bib_example.pl
@@ -2996,7 +2996,12 @@ $result_trees{'texi_bib_example'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'my-bib-macros.texi',
+                    'line_nr' => 164,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -3101,7 +3106,12 @@ $result_trees{'texi_bib_example'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'my-bib-macros.texi',
+                    'line_nr' => 171,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -3235,7 +3245,12 @@ $result_trees{'texi_bib_example'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'my-bib-macros.texi',
+                    'line_nr' => 182,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -3369,7 +3384,12 @@ $result_trees{'texi_bib_example'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'my-bib-macros.texi',
+                    'line_nr' => 193,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -3509,7 +3529,12 @@ $result_trees{'texi_bib_example'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'my-bib-macros.texi',
+                    'line_nr' => 207,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -3582,7 +3607,12 @@ $result_trees{'texi_bib_example'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'my-bib-macros.texi',
+                    'line_nr' => 211,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -3752,7 +3782,12 @@ $result_trees{'texi_bib_example'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'my-bib-macros.texi',
+                    'line_nr' => 230,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
diff --git a/tp/t/results/formatting/texi_glossary.pl 
b/tp/t/results/formatting/texi_glossary.pl
index 2996ef6ca5..20becea712 100644
--- a/tp/t/results/formatting/texi_glossary.pl
+++ b/tp/t/results/formatting/texi_glossary.pl
@@ -113,7 +113,12 @@ $result_trees{'texi_glossary'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'glossary.texi',
+                    'line_nr' => 7,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -188,7 +193,12 @@ $result_trees{'texi_glossary'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'glossary.texi',
+                    'line_nr' => 13,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -332,7 +342,12 @@ $result_trees{'texi_glossary'} = {
                             'spaces_before_argument' => ' ',
                             'text_arg' => 'macro'
                           },
-                          'parent' => {}
+                          'parent' => {},
+                          'source_info' => {
+                            'file_name' => 'glossary.texi',
+                            'line_nr' => 29,
+                            'macro' => ''
+                          }
                         }
                       ],
                       'extra' => {
@@ -363,7 +378,12 @@ $result_trees{'texi_glossary'} = {
                         'spaces_before_argument' => ' ',
                         'text_arg' => 'macro'
                       },
-                      'parent' => {}
+                      'parent' => {},
+                      'source_info' => {
+                        'file_name' => 'glossary.texi',
+                        'line_nr' => 30,
+                        'macro' => ''
+                      }
                     }
                   ],
                   'extra' => {
@@ -411,7 +431,12 @@ $result_trees{'texi_glossary'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'glossary.texi',
+                    'line_nr' => 33,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -757,7 +782,12 @@ $result_trees{'texi_glossary'} = {
                         'spaces_before_argument' => ' ',
                         'text_arg' => 'macro'
                       },
-                      'parent' => {}
+                      'parent' => {},
+                      'source_info' => {
+                        'file_name' => 'glossary.texi',
+                        'line_nr' => 42,
+                        'macro' => 'gentry'
+                      }
                     }
                   ],
                   'extra' => {
@@ -788,7 +818,12 @@ $result_trees{'texi_glossary'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'glossary.texi',
+                    'line_nr' => 42,
+                    'macro' => 'gentry'
+                  }
                 }
               ],
               'extra' => {
@@ -875,7 +910,12 @@ $result_trees{'texi_glossary'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'glossary.texi',
+                    'line_nr' => 42,
+                    'macro' => 'expandglossary'
+                  }
                 }
               ],
               'extra' => {
@@ -1131,7 +1171,12 @@ $result_trees{'texi_glossary'} = {
                         'spaces_before_argument' => ' ',
                         'text_arg' => 'macro'
                       },
-                      'parent' => {}
+                      'parent' => {},
+                      'source_info' => {
+                        'file_name' => 'glossary.texi',
+                        'line_nr' => 43,
+                        'macro' => 'gentry'
+                      }
                     }
                   ],
                   'extra' => {
@@ -1162,7 +1207,12 @@ $result_trees{'texi_glossary'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'glossary.texi',
+                    'line_nr' => 43,
+                    'macro' => 'gentry'
+                  }
                 }
               ],
               'extra' => {
@@ -1249,7 +1299,12 @@ $result_trees{'texi_glossary'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => 'glossary.texi',
+                    'line_nr' => 43,
+                    'macro' => 'expandglossary'
+                  }
                 }
               ],
               'extra' => {
diff --git a/tp/t/results/html_tests/verbatim_in_multitable_in_example.pl 
b/tp/t/results/html_tests/verbatim_in_multitable_in_example.pl
index ce6f350d56..4701d3276e 100644
--- a/tp/t/results/html_tests/verbatim_in_multitable_in_example.pl
+++ b/tp/t/results/html_tests/verbatim_in_multitable_in_example.pl
@@ -185,7 +185,12 @@ $result_trees{'verbatim_in_multitable_in_example'} = {
                                     'spaces_before_argument' => ' ',
                                     'text_arg' => 'verbatim'
                                   },
-                                  'parent' => {}
+                                  'parent' => {},
+                                  'source_info' => {
+                                    'file_name' => '',
+                                    'line_nr' => 8,
+                                    'macro' => ''
+                                  }
                                 }
                               ],
                               'parent' => {},
diff --git a/tp/t/results/html_tests/xml_protected_in_verb.pl 
b/tp/t/results/html_tests/xml_protected_in_verb.pl
index 2446d104bc..6af231a9ea 100644
--- a/tp/t/results/html_tests/xml_protected_in_verb.pl
+++ b/tp/t/results/html_tests/xml_protected_in_verb.pl
@@ -51,7 +51,12 @@ $result_trees{'xml_protected_in_verb'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/include/cpp_lines.pl 
b/tp/t/results/include/cpp_lines.pl
index 01ce1d0282..deb7ce97c4 100644
--- a/tp/t/results/include/cpp_lines.pl
+++ b/tp/t/results/include/cpp_lines.pl
@@ -212,7 +212,12 @@ $result_trees{'cpp_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => 'g_f',
+                'line_nr' => 51,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -271,7 +276,12 @@ $result_trees{'cpp_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => 'g_f',
+                'line_nr' => 55,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -435,7 +445,12 @@ $result_trees{'cpp_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => 'g_f',
+                'line_nr' => 66,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/include/macro_and_commands_in_early_commands.pl 
b/tp/t/results/include/macro_and_commands_in_early_commands.pl
index 0228ca4765..1474472a48 100644
--- a/tp/t/results/include/macro_and_commands_in_early_commands.pl
+++ b/tp/t/results/include/macro_and_commands_in_early_commands.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_and_commands_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -158,7 +163,12 @@ $result_trees{'macro_and_commands_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 9,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -266,7 +276,12 @@ $result_trees{'macro_and_commands_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 16,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -399,7 +414,12 @@ $result_trees{'macro_and_commands_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => 'macro_included.texi',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/include/macro_definition_in_include.pl 
b/tp/t/results/include/macro_definition_in_include.pl
index 5e425ad83b..9e12169154 100644
--- a/tp/t/results/include/macro_definition_in_include.pl
+++ b/tp/t/results/include/macro_definition_in_include.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_definition_in_include'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => 'macro_included.texi',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/include/macro_in_early_commands.pl 
b/tp/t/results/include/macro_in_early_commands.pl
index cb0b386886..6e9cb489c7 100644
--- a/tp/t/results/include/macro_in_early_commands.pl
+++ b/tp/t/results/include/macro_in_early_commands.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -114,7 +119,12 @@ $result_trees{'macro_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -212,7 +222,12 @@ $result_trees{'macro_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 12,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -275,7 +290,12 @@ $result_trees{'macro_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 16,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -381,7 +401,12 @@ $result_trees{'macro_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 23,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -514,7 +539,12 @@ $result_trees{'macro_in_early_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => 'macro_included.texi',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/info_tests/def_in_copying.pl 
b/tp/t/results/info_tests/def_in_copying.pl
index ff9ba5730e..4abc13f679 100644
--- a/tp/t/results/info_tests/def_in_copying.pl
+++ b/tp/t/results/info_tests/def_in_copying.pl
@@ -70,7 +70,12 @@ $result_trees{'def_in_copying'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/invalid_nestings/ignore_in_xref.pl 
b/tp/t/results/invalid_nestings/ignore_in_xref.pl
index 4691a954f5..4deff1b80e 100644
--- a/tp/t/results/invalid_nestings/ignore_in_xref.pl
+++ b/tp/t/results/invalid_nestings/ignore_in_xref.pl
@@ -100,7 +100,12 @@ $result_trees{'ignore_in_xref'} = {
                             'spaces_before_argument' => ' ',
                             'text_arg' => 'ignore'
                           },
-                          'parent' => {}
+                          'parent' => {},
+                          'source_info' => {
+                            'file_name' => '',
+                            'line_nr' => 6,
+                            'macro' => ''
+                          }
                         }
                       ],
                       'parent' => {},
diff --git a/tp/t/results/invalid_nestings/verbatim_in_ref.pl 
b/tp/t/results/invalid_nestings/verbatim_in_ref.pl
index 306c85e8b3..5380b63167 100644
--- a/tp/t/results/invalid_nestings/verbatim_in_ref.pl
+++ b/tp/t/results/invalid_nestings/verbatim_in_ref.pl
@@ -116,7 +116,12 @@ $result_trees{'verbatim_in_ref'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/latex_tests/verbatim_in_smallformat.pl 
b/tp/t/results/latex_tests/verbatim_in_smallformat.pl
index c49b065ace..d17713fad6 100644
--- a/tp/t/results/latex_tests/verbatim_in_smallformat.pl
+++ b/tp/t/results/latex_tests/verbatim_in_smallformat.pl
@@ -70,7 +70,12 @@ $result_trees{'verbatim_in_smallformat'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'verbatim'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 4,
+                    'macro' => ''
+                  }
                 }
               ],
               'parent' => {},
diff --git a/tp/t/results/macro/arg_body_expansion_order.pl 
b/tp/t/results/macro/arg_body_expansion_order.pl
index 14b731b198..641f798114 100644
--- a/tp/t/results/macro/arg_body_expansion_order.pl
+++ b/tp/t/results/macro/arg_body_expansion_order.pl
@@ -58,7 +58,12 @@ $result_trees{'arg_body_expansion_order'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -135,7 +140,12 @@ $result_trees{'arg_body_expansion_order'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 10,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -177,7 +187,12 @@ $result_trees{'arg_body_expansion_order'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 12,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -258,7 +273,12 @@ $result_trees{'arg_body_expansion_order'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 14,
+                'macro' => 'redefineothermacro'
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/arg_not_closed.pl 
b/tp/t/results/macro/arg_not_closed.pl
index f5c02cc86a..25d8c25e93 100644
--- a/tp/t/results/macro/arg_not_closed.pl
+++ b/tp/t/results/macro/arg_not_closed.pl
@@ -57,7 +57,12 @@ $result_trees{'arg_not_closed'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/backslash_in_arg.pl 
b/tp/t/results/macro/backslash_in_arg.pl
index cda0b90a44..6882d9f12d 100644
--- a/tp/t/results/macro/backslash_in_arg.pl
+++ b/tp/t/results/macro/backslash_in_arg.pl
@@ -85,7 +85,12 @@ $result_trees{'backslash_in_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/bad_argument.pl 
b/tp/t/results/macro/bad_argument.pl
index 2007752133..3cbd13c2d7 100644
--- a/tp/t/results/macro/bad_argument.pl
+++ b/tp/t/results/macro/bad_argument.pl
@@ -45,7 +45,12 @@ $result_trees{'bad_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -109,7 +114,12 @@ $result_trees{'bad_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'rmacro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -178,7 +188,12 @@ $result_trees{'bad_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 11,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -235,7 +250,12 @@ $result_trees{'bad_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 15,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/bad_formal_arg.pl 
b/tp/t/results/macro/bad_formal_arg.pl
index 3eeb1c2138..9cf6ee27bf 100644
--- a/tp/t/results/macro/bad_formal_arg.pl
+++ b/tp/t/results/macro/bad_formal_arg.pl
@@ -68,7 +68,12 @@ $result_trees{'bad_formal_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -142,7 +147,12 @@ $result_trees{'bad_formal_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -220,7 +230,12 @@ $result_trees{'bad_formal_arg'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 14,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -251,7 +266,12 @@ $result_trees{'bad_formal_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 15,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/bad_macro_name_with_underscore.pl 
b/tp/t/results/macro/bad_macro_name_with_underscore.pl
index 11998da6d8..084a9463cd 100644
--- a/tp/t/results/macro/bad_macro_name_with_underscore.pl
+++ b/tp/t/results/macro/bad_macro_name_with_underscore.pl
@@ -62,7 +62,12 @@ $result_trees{'bad_macro_name_with_underscore'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/complete_macro_for_end.pl 
b/tp/t/results/macro/complete_macro_for_end.pl
index 99c48add99..651b31d3e9 100644
--- a/tp/t/results/macro/complete_macro_for_end.pl
+++ b/tp/t/results/macro/complete_macro_for_end.pl
@@ -52,7 +52,12 @@ $result_trees{'complete_macro_for_end'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/complex_argument.pl 
b/tp/t/results/macro/complex_argument.pl
index 33518268ff..4a5770f9de 100644
--- a/tp/t/results/macro/complex_argument.pl
+++ b/tp/t/results/macro/complex_argument.pl
@@ -57,7 +57,12 @@ $result_trees{'complex_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -138,7 +143,12 @@ $result_trees{'complex_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 10,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -217,7 +227,12 @@ $result_trees{'complex_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 15,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -420,7 +435,12 @@ $result_trees{'complex_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 38,
+                'macro' => 'macrothree'
+              }
             }
           ],
           'parent' => {},
@@ -477,7 +497,12 @@ $result_trees{'complex_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'ignore'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 38,
+                'macro' => 'macrothree'
+              }
             }
           ],
           'parent' => {},
@@ -535,7 +560,12 @@ $result_trees{'complex_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 38,
+                'macro' => 'macrothree'
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/double_macro_definition.pl 
b/tp/t/results/macro/double_macro_definition.pl
index 79ece7a999..a519156594 100644
--- a/tp/t/results/macro/double_macro_definition.pl
+++ b/tp/t/results/macro/double_macro_definition.pl
@@ -41,7 +41,12 @@ $result_trees{'double_macro_definition'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 2,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -93,7 +98,12 @@ $result_trees{'double_macro_definition'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/double_recursive_macro_call.pl 
b/tp/t/results/macro/double_recursive_macro_call.pl
index 35e6fd8647..e0aaa431f3 100644
--- a/tp/t/results/macro/double_recursive_macro_call.pl
+++ b/tp/t/results/macro/double_recursive_macro_call.pl
@@ -63,7 +63,12 @@ $result_trees{'double_recursive_macro_call'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -131,7 +136,12 @@ $result_trees{'double_recursive_macro_call'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/empty_end.pl b/tp/t/results/macro/empty_end.pl
index afe0c0f5bf..5c082f0bd6 100644
--- a/tp/t/results/macro/empty_end.pl
+++ b/tp/t/results/macro/empty_end.pl
@@ -53,7 +53,12 @@ $result_trees{'empty_end'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/empty_macro_argument.pl 
b/tp/t/results/macro/empty_macro_argument.pl
index 71765f68c7..931fd3c192 100644
--- a/tp/t/results/macro/empty_macro_argument.pl
+++ b/tp/t/results/macro/empty_macro_argument.pl
@@ -52,7 +52,12 @@ $result_trees{'empty_macro_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -137,7 +142,12 @@ $result_trees{'empty_macro_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 9,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/empty_macro_in_text_no_arg.pl 
b/tp/t/results/macro/empty_macro_in_text_no_arg.pl
index 45b78756a6..c954c8a1f4 100644
--- a/tp/t/results/macro/empty_macro_in_text_no_arg.pl
+++ b/tp/t/results/macro/empty_macro_in_text_no_arg.pl
@@ -41,7 +41,12 @@ $result_trees{'empty_macro_in_text_no_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 2,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -115,7 +120,12 @@ $result_trees{'empty_macro_in_text_no_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/empty_macro_no_arg.pl 
b/tp/t/results/macro/empty_macro_no_arg.pl
index ec212c56ab..b14bb3046b 100644
--- a/tp/t/results/macro/empty_macro_no_arg.pl
+++ b/tp/t/results/macro/empty_macro_no_arg.pl
@@ -41,7 +41,12 @@ $result_trees{'empty_macro_no_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 2,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/expand_two_same.pl 
b/tp/t/results/macro/expand_two_same.pl
index f29a0e51f3..3874e065de 100644
--- a/tp/t/results/macro/expand_two_same.pl
+++ b/tp/t/results/macro/expand_two_same.pl
@@ -63,7 +63,12 @@ $result_trees{'expand_two_same'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/expansion_order.pl 
b/tp/t/results/macro/expansion_order.pl
index cbb334fdd6..c2f0c72e8a 100644
--- a/tp/t/results/macro/expansion_order.pl
+++ b/tp/t/results/macro/expansion_order.pl
@@ -57,7 +57,12 @@ $result_trees{'expansion_order'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -126,7 +131,12 @@ $result_trees{'expansion_order'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/form_feeds.pl b/tp/t/results/macro/form_feeds.pl
index 24a5a18ba8..6873678ba4 100644
--- a/tp/t/results/macro/form_feeds.pl
+++ b/tp/t/results/macro/form_feeds.pl
@@ -62,7 +62,12 @@ $result_trees{'form_feeds'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -130,7 +135,12 @@ $result_trees{'form_feeds'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/ifclear_in_macro.pl 
b/tp/t/results/macro/ifclear_in_macro.pl
index 9665937f97..ca4e4a5a94 100644
--- a/tp/t/results/macro/ifclear_in_macro.pl
+++ b/tp/t/results/macro/ifclear_in_macro.pl
@@ -69,7 +69,12 @@ $result_trees{'ifclear_in_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/ifset_and_end_isef_in_macro.pl 
b/tp/t/results/macro/ifset_and_end_isef_in_macro.pl
index 946d2686b6..bbfa3d1ead 100644
--- a/tp/t/results/macro/ifset_and_end_isef_in_macro.pl
+++ b/tp/t/results/macro/ifset_and_end_isef_in_macro.pl
@@ -52,7 +52,12 @@ $result_trees{'ifset_and_end_isef_in_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -115,7 +120,12 @@ $result_trees{'ifset_and_end_isef_in_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/ifset_in_macro.pl 
b/tp/t/results/macro/ifset_in_macro.pl
index e4842c0a2b..3218d68cd9 100644
--- a/tp/t/results/macro/ifset_in_macro.pl
+++ b/tp/t/results/macro/ifset_in_macro.pl
@@ -69,7 +69,12 @@ $result_trees{'ifset_in_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/ifset_in_macro_set.pl 
b/tp/t/results/macro/ifset_in_macro_set.pl
index d5d495e1af..e2a2fc58a7 100644
--- a/tp/t/results/macro/ifset_in_macro_set.pl
+++ b/tp/t/results/macro/ifset_in_macro_set.pl
@@ -69,7 +69,12 @@ $result_trees{'ifset_in_macro_set'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/ignored_macro_definition.pl 
b/tp/t/results/macro/ignored_macro_definition.pl
index f352fed5ea..0f25527b50 100644
--- a/tp/t/results/macro/ignored_macro_definition.pl
+++ b/tp/t/results/macro/ignored_macro_definition.pl
@@ -52,7 +52,12 @@ $result_trees{'ignored_macro_definition'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/implicit_quoting_one_arg.pl 
b/tp/t/results/macro/implicit_quoting_one_arg.pl
index b0a2a67cfe..500e876167 100644
--- a/tp/t/results/macro/implicit_quoting_one_arg.pl
+++ b/tp/t/results/macro/implicit_quoting_one_arg.pl
@@ -63,7 +63,12 @@ $result_trees{'implicit_quoting_one_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/implicit_quoting_recursion.pl 
b/tp/t/results/macro/implicit_quoting_recursion.pl
index 8b001e57eb..04b531f0bd 100644
--- a/tp/t/results/macro/implicit_quoting_recursion.pl
+++ b/tp/t/results/macro/implicit_quoting_recursion.pl
@@ -62,7 +62,12 @@ $result_trees{'implicit_quoting_recursion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'rmacro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/include_after_empty_line_arg.pl 
b/tp/t/results/macro/include_after_empty_line_arg.pl
index 2034c2efa9..1ef93bd7ed 100644
--- a/tp/t/results/macro/include_after_empty_line_arg.pl
+++ b/tp/t/results/macro/include_after_empty_line_arg.pl
@@ -57,7 +57,12 @@ $result_trees{'include_after_empty_line_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/leading_spaces_no_ignore.pl 
b/tp/t/results/macro/leading_spaces_no_ignore.pl
index 8ec535598c..93c8e6760a 100644
--- a/tp/t/results/macro/leading_spaces_no_ignore.pl
+++ b/tp/t/results/macro/leading_spaces_no_ignore.pl
@@ -58,7 +58,12 @@ $result_trees{'leading_spaces_no_ignore'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/line_after_recursive_call.pl 
b/tp/t/results/macro/line_after_recursive_call.pl
index 69c139c7c2..c8cdb1429a 100644
--- a/tp/t/results/macro/line_after_recursive_call.pl
+++ b/tp/t/results/macro/line_after_recursive_call.pl
@@ -64,7 +64,12 @@ $result_trees{'line_after_recursive_call'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_expands_to_empty.pl 
b/tp/t/results/macro/macro_expands_to_empty.pl
index 0b301184e6..85639a198c 100644
--- a/tp/t/results/macro/macro_expands_to_empty.pl
+++ b/tp/t/results/macro/macro_expands_to_empty.pl
@@ -57,7 +57,12 @@ $result_trees{'macro_expands_to_empty'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_expansion.pl 
b/tp/t/results/macro/macro_expansion.pl
index 7d2decffad..339bd3b6eb 100644
--- a/tp/t/results/macro/macro_expansion.pl
+++ b/tp/t/results/macro/macro_expansion.pl
@@ -86,7 +86,12 @@ $result_trees{'macro_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -159,7 +164,12 @@ $result_trees{'macro_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim.'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 9,
+                'macro' => 'macroone'
+              }
             }
           ],
           'parent' => {},
@@ -254,7 +264,12 @@ $result_trees{'macro_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim.'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 11,
+                'macro' => 'macroone'
+              }
             }
           ],
           'parent' => {},
@@ -323,7 +338,12 @@ $result_trees{'macro_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim my arg.'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 13,
+                'macro' => 'macroone'
+              }
             }
           ],
           'parent' => {},
@@ -392,7 +412,12 @@ $result_trees{'macro_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim.'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 15,
+                'macro' => 'macroone'
+              }
             }
           ],
           'parent' => {},
@@ -461,7 +486,12 @@ $result_trees{'macro_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim.'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 17,
+                'macro' => 'macroone'
+              }
             }
           ],
           'parent' => {},
@@ -555,7 +585,12 @@ $result_trees{'macro_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim.'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 23,
+                'macro' => 'macroone'
+              }
             }
           ],
           'parent' => {},
@@ -720,20 +755,20 @@ arg3
 
 $result_errors{'macro_expansion'} = [
   {
-    'error_line' => 'superfluous argument to @end verbatim: .
+    'error_line' => 'superfluous argument to @end verbatim: . (possibly 
involving @macroone)
 ',
     'file_name' => '',
     'line_nr' => 9,
-    'macro' => '',
+    'macro' => 'macroone',
     'text' => 'superfluous argument to @end verbatim: .',
     'type' => 'error'
   },
   {
-    'error_line' => 'superfluous argument to @end verbatim: .
+    'error_line' => 'superfluous argument to @end verbatim: . (possibly 
involving @macroone)
 ',
     'file_name' => '',
     'line_nr' => 11,
-    'macro' => '',
+    'macro' => 'macroone',
     'text' => 'superfluous argument to @end verbatim: .',
     'type' => 'error'
   },
@@ -747,38 +782,38 @@ $result_errors{'macro_expansion'} = [
     'type' => 'warning'
   },
   {
-    'error_line' => 'superfluous argument to @end verbatim:  my arg.
+    'error_line' => 'superfluous argument to @end verbatim:  my arg. (possibly 
involving @macroone)
 ',
     'file_name' => '',
     'line_nr' => 13,
-    'macro' => '',
+    'macro' => 'macroone',
     'text' => 'superfluous argument to @end verbatim:  my arg.',
     'type' => 'error'
   },
   {
-    'error_line' => 'superfluous argument to @end verbatim: .
+    'error_line' => 'superfluous argument to @end verbatim: . (possibly 
involving @macroone)
 ',
     'file_name' => '',
     'line_nr' => 15,
-    'macro' => '',
+    'macro' => 'macroone',
     'text' => 'superfluous argument to @end verbatim: .',
     'type' => 'error'
   },
   {
-    'error_line' => 'superfluous argument to @end verbatim: .
+    'error_line' => 'superfluous argument to @end verbatim: . (possibly 
involving @macroone)
 ',
     'file_name' => '',
     'line_nr' => 17,
-    'macro' => '',
+    'macro' => 'macroone',
     'text' => 'superfluous argument to @end verbatim: .',
     'type' => 'error'
   },
   {
-    'error_line' => 'superfluous argument to @end verbatim: .
+    'error_line' => 'superfluous argument to @end verbatim: . (possibly 
involving @macroone)
 ',
     'file_name' => '',
     'line_nr' => 23,
-    'macro' => '',
+    'macro' => 'macroone',
     'text' => 'superfluous argument to @end verbatim: .',
     'type' => 'error'
   }
diff --git a/tp/t/results/macro/macro_for_end.pl 
b/tp/t/results/macro/macro_for_end.pl
index ce09e657d9..3fefcb6f12 100644
--- a/tp/t/results/macro/macro_for_end.pl
+++ b/tp/t/results/macro/macro_for_end.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_for_end'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_for_ignored_line_command.pl 
b/tp/t/results/macro/macro_for_ignored_line_command.pl
index 03d957550a..0ae62861c8 100644
--- a/tp/t/results/macro/macro_for_ignored_line_command.pl
+++ b/tp/t/results/macro/macro_for_ignored_line_command.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_for_ignored_line_command'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_accent.pl 
b/tp/t/results/macro/macro_in_accent.pl
index f394ffefa2..91a17da221 100644
--- a/tp/t/results/macro/macro_in_accent.pl
+++ b/tp/t/results/macro/macro_in_accent.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_in_accent'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -115,7 +120,12 @@ $result_trees{'macro_in_accent'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_brace_command.pl 
b/tp/t/results/macro/macro_in_brace_command.pl
index 6b2b95ae87..c862af69a8 100644
--- a/tp/t/results/macro/macro_in_brace_command.pl
+++ b/tp/t/results/macro/macro_in_brace_command.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_in_brace_command'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -115,7 +120,12 @@ $result_trees{'macro_in_brace_command'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_end_argument.pl 
b/tp/t/results/macro/macro_in_end_argument.pl
index 477d8097f7..aec8d06d5b 100644
--- a/tp/t/results/macro/macro_in_end_argument.pl
+++ b/tp/t/results/macro/macro_in_end_argument.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_in_end_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_ifset.pl 
b/tp/t/results/macro/macro_in_ifset.pl
index b9a055987b..06c4c48d42 100644
--- a/tp/t/results/macro/macro_in_ifset.pl
+++ b/tp/t/results/macro/macro_in_ifset.pl
@@ -57,7 +57,12 @@ $result_trees{'macro_in_ifset'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_ifset_end_in_arg.pl 
b/tp/t/results/macro/macro_in_ifset_end_in_arg.pl
index 10a921d26d..4a34a19475 100644
--- a/tp/t/results/macro/macro_in_ifset_end_in_arg.pl
+++ b/tp/t/results/macro/macro_in_ifset_end_in_arg.pl
@@ -57,7 +57,12 @@ $result_trees{'macro_in_ifset_end_in_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_index_commands.pl 
b/tp/t/results/macro/macro_in_index_commands.pl
index b64f796ab8..6e302327af 100644
--- a/tp/t/results/macro/macro_in_index_commands.pl
+++ b/tp/t/results/macro/macro_in_index_commands.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_in_index_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -109,7 +114,12 @@ $result_trees{'macro_in_index_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -166,7 +176,12 @@ $result_trees{'macro_in_index_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 9,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -299,7 +314,12 @@ $result_trees{'macro_in_index_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 16,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -415,7 +435,12 @@ $result_trees{'macro_in_index_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 24,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -478,7 +503,12 @@ $result_trees{'macro_in_index_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 28,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -578,7 +608,12 @@ $result_trees{'macro_in_index_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 34,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_invalid_documentencoding.pl 
b/tp/t/results/macro/macro_in_invalid_documentencoding.pl
index ac2e369a47..f10dec5720 100644
--- a/tp/t/results/macro/macro_in_invalid_documentencoding.pl
+++ b/tp/t/results/macro/macro_in_invalid_documentencoding.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_in_invalid_documentencoding'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_macro_arg.pl 
b/tp/t/results/macro/macro_in_macro_arg.pl
index bb792bd116..bde978c10a 100644
--- a/tp/t/results/macro/macro_in_macro_arg.pl
+++ b/tp/t/results/macro/macro_in_macro_arg.pl
@@ -58,7 +58,12 @@ $result_trees{'macro_in_macro_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -126,7 +131,12 @@ $result_trees{'macro_in_macro_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -205,7 +215,12 @@ $result_trees{'macro_in_macro_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 13,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_macro_arg_simpler.pl 
b/tp/t/results/macro/macro_in_macro_arg_simpler.pl
index d6b4297a5e..424b0177ef 100644
--- a/tp/t/results/macro/macro_in_macro_arg_simpler.pl
+++ b/tp/t/results/macro/macro_in_macro_arg_simpler.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_in_macro_arg_simpler'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -131,7 +136,12 @@ $result_trees{'macro_in_macro_arg_simpler'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_menu.pl 
b/tp/t/results/macro/macro_in_menu.pl
index be98de25a5..095f9b9cd0 100644
--- a/tp/t/results/macro/macro_in_menu.pl
+++ b/tp/t/results/macro/macro_in_menu.pl
@@ -58,7 +58,12 @@ $result_trees{'macro_in_menu'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -121,7 +126,12 @@ $result_trees{'macro_in_menu'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -184,7 +194,12 @@ $result_trees{'macro_in_menu'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 12,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -247,7 +262,12 @@ $result_trees{'macro_in_menu'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 16,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -310,7 +330,12 @@ $result_trees{'macro_in_menu'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 20,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -373,7 +398,12 @@ $result_trees{'macro_in_menu'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 24,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_in_misc_commands.pl 
b/tp/t/results/macro/macro_in_misc_commands.pl
index d31219a4eb..82d0cfa0d0 100644
--- a/tp/t/results/macro/macro_in_misc_commands.pl
+++ b/tp/t/results/macro/macro_in_misc_commands.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -115,7 +120,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -328,7 +338,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 18,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -385,7 +400,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 21,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -544,7 +564,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 31,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -607,7 +632,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 35,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -805,7 +835,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 45,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -905,7 +940,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 51,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -974,7 +1014,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 55,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -1141,7 +1186,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 64,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -1276,7 +1326,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 71,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -1333,7 +1388,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 74,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -1552,7 +1612,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 86,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -1781,7 +1846,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 97,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -1838,7 +1908,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 100,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -1895,7 +1970,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 103,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -1952,7 +2032,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 106,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2009,7 +2094,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 109,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2264,7 +2354,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 120,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2321,7 +2416,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 123,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2446,7 +2546,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 129,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2503,7 +2608,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 132,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2646,7 +2756,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 139,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2752,7 +2867,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 144,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2809,7 +2929,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 147,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2940,7 +3065,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 154,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -2997,7 +3127,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 157,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -3054,7 +3189,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 160,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -3382,7 +3522,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 178,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -3486,7 +3631,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 185,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -3577,7 +3727,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 190,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -3671,7 +3826,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 195,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -3977,7 +4137,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 210,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -4057,7 +4222,12 @@ $result_trees{'macro_in_misc_commands'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 215,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_name_with_digit.pl 
b/tp/t/results/macro/macro_name_with_digit.pl
index 8caf2a1eda..2f068d64fc 100644
--- a/tp/t/results/macro/macro_name_with_digit.pl
+++ b/tp/t/results/macro/macro_name_with_digit.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_name_with_digit'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -120,7 +125,12 @@ $result_trees{'macro_name_with_digit'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_name_with_hyphen.pl 
b/tp/t/results/macro/macro_name_with_hyphen.pl
index a16ab369ed..9a8d4fe18c 100644
--- a/tp/t/results/macro/macro_name_with_hyphen.pl
+++ b/tp/t/results/macro/macro_name_with_hyphen.pl
@@ -62,7 +62,12 @@ $result_trees{'macro_name_with_hyphen'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_no_arg_bad_expansion.pl 
b/tp/t/results/macro/macro_no_arg_bad_expansion.pl
index d92e038abd..743b126d32 100644
--- a/tp/t/results/macro/macro_no_arg_bad_expansion.pl
+++ b/tp/t/results/macro/macro_no_arg_bad_expansion.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_no_arg_bad_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_no_arg_expansion.pl 
b/tp/t/results/macro/macro_no_arg_expansion.pl
index dc38288374..984c18865b 100644
--- a/tp/t/results/macro/macro_no_arg_expansion.pl
+++ b/tp/t/results/macro/macro_no_arg_expansion.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_no_arg_expansion'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_one_arg_end_of_file.pl 
b/tp/t/results/macro/macro_one_arg_end_of_file.pl
index aa8c954d64..2f07063d34 100644
--- a/tp/t/results/macro/macro_one_arg_end_of_file.pl
+++ b/tp/t/results/macro/macro_one_arg_end_of_file.pl
@@ -57,7 +57,12 @@ $result_trees{'macro_one_arg_end_of_file'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_with_error_at_end_line_after_macro.pl 
b/tp/t/results/macro/macro_with_error_at_end_line_after_macro.pl
index a8c9f26237..388e37e53d 100644
--- a/tp/t/results/macro/macro_with_error_at_end_line_after_macro.pl
+++ b/tp/t/results/macro/macro_with_error_at_end_line_after_macro.pl
@@ -57,7 +57,12 @@ $result_trees{'macro_with_error_at_end_line_after_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/macro_zero.pl b/tp/t/results/macro/macro_zero.pl
index ab59dd617e..5cdeaf0309 100644
--- a/tp/t/results/macro/macro_zero.pl
+++ b/tp/t/results/macro/macro_zero.pl
@@ -52,7 +52,12 @@ $result_trees{'macro_zero'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/nested_macro_call.pl 
b/tp/t/results/macro/nested_macro_call.pl
index 543c8bea1f..3a8fca2cd8 100644
--- a/tp/t/results/macro/nested_macro_call.pl
+++ b/tp/t/results/macro/nested_macro_call.pl
@@ -52,7 +52,12 @@ $result_trees{'nested_macro_call'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -121,7 +126,12 @@ $result_trees{'nested_macro_call'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/no_macrobody.pl 
b/tp/t/results/macro/no_macrobody.pl
index 41c0023bcf..c103faad11 100644
--- a/tp/t/results/macro/no_macrobody.pl
+++ b/tp/t/results/macro/no_macrobody.pl
@@ -46,7 +46,12 @@ $result_trees{'no_macrobody'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 2,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/paragraph_and_macro.pl 
b/tp/t/results/macro/paragraph_and_macro.pl
index c8b0e975a4..bd86e7fa98 100644
--- a/tp/t/results/macro/paragraph_and_macro.pl
+++ b/tp/t/results/macro/paragraph_and_macro.pl
@@ -41,7 +41,12 @@ $result_trees{'paragraph_and_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 2,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -104,7 +109,12 @@ $result_trees{'paragraph_and_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -167,7 +177,12 @@ $result_trees{'paragraph_and_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 10,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/protect_comma_macro_line.pl 
b/tp/t/results/macro/protect_comma_macro_line.pl
index c09e1253f1..12e8b891e8 100644
--- a/tp/t/results/macro/protect_comma_macro_line.pl
+++ b/tp/t/results/macro/protect_comma_macro_line.pl
@@ -75,7 +75,12 @@ $result_trees{'protect_comma_macro_line'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/protect_in_body.pl 
b/tp/t/results/macro/protect_in_body.pl
index 58a684fdf8..8111f854c1 100644
--- a/tp/t/results/macro/protect_in_body.pl
+++ b/tp/t/results/macro/protect_in_body.pl
@@ -62,7 +62,12 @@ $result_trees{'protect_in_body'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/protect_in_body_line_arg.pl 
b/tp/t/results/macro/protect_in_body_line_arg.pl
index 4387206f05..474fd411ea 100644
--- a/tp/t/results/macro/protect_in_body_line_arg.pl
+++ b/tp/t/results/macro/protect_in_body_line_arg.pl
@@ -62,7 +62,12 @@ $result_trees{'protect_in_body_line_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/protect_in_body_one_arg.pl 
b/tp/t/results/macro/protect_in_body_one_arg.pl
index 5ddbfb9fad..75538ff86b 100644
--- a/tp/t/results/macro/protect_in_body_one_arg.pl
+++ b/tp/t/results/macro/protect_in_body_one_arg.pl
@@ -62,7 +62,12 @@ $result_trees{'protect_in_body_one_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/recursive_call_in_argument.pl 
b/tp/t/results/macro/recursive_call_in_argument.pl
index 5f9b886465..ec68075f27 100644
--- a/tp/t/results/macro/recursive_call_in_argument.pl
+++ b/tp/t/results/macro/recursive_call_in_argument.pl
@@ -57,7 +57,12 @@ $result_trees{'recursive_call_in_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/recursive_call_in_macro.pl 
b/tp/t/results/macro/recursive_call_in_macro.pl
index d91374d9b3..58b3914917 100644
--- a/tp/t/results/macro/recursive_call_in_macro.pl
+++ b/tp/t/results/macro/recursive_call_in_macro.pl
@@ -57,7 +57,12 @@ $result_trees{'recursive_call_in_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/redefine_texinfo_macro.pl 
b/tp/t/results/macro/redefine_texinfo_macro.pl
index 7de6f2be5b..19ee2089b5 100644
--- a/tp/t/results/macro/redefine_texinfo_macro.pl
+++ b/tp/t/results/macro/redefine_texinfo_macro.pl
@@ -57,7 +57,12 @@ $result_trees{'redefine_texinfo_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/simple_imbricated_macro.pl 
b/tp/t/results/macro/simple_imbricated_macro.pl
index a39772c581..4d65f86968 100644
--- a/tp/t/results/macro/simple_imbricated_macro.pl
+++ b/tp/t/results/macro/simple_imbricated_macro.pl
@@ -61,7 +61,12 @@ $result_trees{'simple_imbricated_macro'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 5,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -92,7 +97,12 @@ $result_trees{'simple_imbricated_macro'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -162,7 +172,12 @@ $result_trees{'simple_imbricated_macro'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 8,
+                    'macro' => 'truc'
+                  }
                 }
               ],
               'extra' => {
diff --git a/tp/t/results/macro/space_macro_after_end.pl 
b/tp/t/results/macro/space_macro_after_end.pl
index dc978a5ea5..fd1ef7e73e 100644
--- a/tp/t/results/macro/space_macro_after_end.pl
+++ b/tp/t/results/macro/space_macro_after_end.pl
@@ -52,7 +52,12 @@ $result_trees{'space_macro_after_end'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/space_macro_after_end_verbatim.pl 
b/tp/t/results/macro/space_macro_after_end_verbatim.pl
index 7cababb43c..5e58c35688 100644
--- a/tp/t/results/macro/space_macro_after_end_verbatim.pl
+++ b/tp/t/results/macro/space_macro_after_end_verbatim.pl
@@ -52,7 +52,12 @@ $result_trees{'space_macro_after_end_verbatim'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -113,7 +118,12 @@ $result_trees{'space_macro_after_end_verbatim'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/macro/text_before_after.pl 
b/tp/t/results/macro/text_before_after.pl
index 181def0cda..c118dffd7b 100644
--- a/tp/t/results/macro/text_before_after.pl
+++ b/tp/t/results/macro/text_before_after.pl
@@ -58,7 +58,12 @@ $result_trees{'text_before_after'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro after'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 3,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
diff --git a/tp/t/results/macro/too_much_args.pl 
b/tp/t/results/macro/too_much_args.pl
index 0fd6d29cab..46c295962d 100644
--- a/tp/t/results/macro/too_much_args.pl
+++ b/tp/t/results/macro/too_much_args.pl
@@ -68,7 +68,12 @@ $result_trees{'too_much_args'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/two_macros_on_a_line.pl 
b/tp/t/results/macro/two_macros_on_a_line.pl
index d760ef5b06..e13547a68d 100644
--- a/tp/t/results/macro/two_macros_on_a_line.pl
+++ b/tp/t/results/macro/two_macros_on_a_line.pl
@@ -52,7 +52,12 @@ $result_trees{'two_macros_on_a_line'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -132,7 +137,12 @@ $result_trees{'two_macros_on_a_line'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 9,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/macro/zero_argument.pl 
b/tp/t/results/macro/zero_argument.pl
index ccc8aa0080..a39083569e 100644
--- a/tp/t/results/macro/zero_argument.pl
+++ b/tp/t/results/macro/zero_argument.pl
@@ -52,7 +52,12 @@ $result_trees{'zero_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -111,7 +116,12 @@ $result_trees{'zero_argument'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/menu/block_commands_in_menu_description.pl 
b/tp/t/results/menu/block_commands_in_menu_description.pl
index 923d72411c..f83da21ced 100644
--- a/tp/t/results/menu/block_commands_in_menu_description.pl
+++ b/tp/t/results/menu/block_commands_in_menu_description.pl
@@ -522,7 +522,12 @@ $result_trees{'block_commands_in_menu_description'} = {
                             'spaces_before_argument' => ' ',
                             'text_arg' => 'verbatim'
                           },
-                          'parent' => {}
+                          'parent' => {},
+                          'source_info' => {
+                            'file_name' => '',
+                            'line_nr' => 25,
+                            'macro' => ''
+                          }
                         }
                       ],
                       'parent' => {},
diff --git a/tp/t/results/menu/formats_in_menu.pl 
b/tp/t/results/menu/formats_in_menu.pl
index f15cddc9eb..c16e9143f7 100644
--- a/tp/t/results/menu/formats_in_menu.pl
+++ b/tp/t/results/menu/formats_in_menu.pl
@@ -348,7 +348,12 @@ $result_trees{'formats_in_menu'} = {
                             'spaces_before_argument' => ' ',
                             'text_arg' => 'verbatim'
                           },
-                          'parent' => {}
+                          'parent' => {},
+                          'source_info' => {
+                            'file_name' => '',
+                            'line_nr' => 14,
+                            'macro' => ''
+                          }
                         }
                       ],
                       'parent' => {},
diff --git 
a/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl 
b/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
index 73e3a76a2f..13bd11c00a 100644
--- a/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
+++ b/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
@@ -84,7 +84,12 @@ $result_trees{'codequoteundirected_codequotebacktick'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 8,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -243,7 +248,12 @@ $result_trees{'codequoteundirected_codequotebacktick'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 28,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
diff --git a/tp/t/results/misc_commands/kbdinputstyle.pl 
b/tp/t/results/misc_commands/kbdinputstyle.pl
index ef5c319d45..2dcc7483e1 100644
--- a/tp/t/results/misc_commands/kbdinputstyle.pl
+++ b/tp/t/results/misc_commands/kbdinputstyle.pl
@@ -118,7 +118,12 @@ $result_trees{'kbdinputstyle'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 14,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/misc_commands/kbdinputstyle_in_table.pl 
b/tp/t/results/misc_commands/kbdinputstyle_in_table.pl
index 46a927434f..bb7dcaaef7 100644
--- a/tp/t/results/misc_commands/kbdinputstyle_in_table.pl
+++ b/tp/t/results/misc_commands/kbdinputstyle_in_table.pl
@@ -148,7 +148,12 @@ $result_trees{'kbdinputstyle_in_table'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 19,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/misc_commands/test_allowcodebreaks.pl 
b/tp/t/results/misc_commands/test_allowcodebreaks.pl
index d283ff32e0..9d565a5302 100644
--- a/tp/t/results/misc_commands/test_allowcodebreaks.pl
+++ b/tp/t/results/misc_commands/test_allowcodebreaks.pl
@@ -121,7 +121,12 @@ $result_trees{'test_allowcodebreaks'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 10,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -202,7 +207,12 @@ $result_trees{'test_allowcodebreaks'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 17,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/plaintext_tests/star_at_command_formatting.pl 
b/tp/t/results/plaintext_tests/star_at_command_formatting.pl
index fccb3e95da..cd72ba22c6 100644
--- a/tp/t/results/plaintext_tests/star_at_command_formatting.pl
+++ b/tp/t/results/plaintext_tests/star_at_command_formatting.pl
@@ -118,7 +118,12 @@ $result_trees{'star_at_command_formatting'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 14,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/raw/misc_raw.pl b/tp/t/results/raw/misc_raw.pl
index ebdbc349ee..2c633a9bca 100644
--- a/tp/t/results/raw/misc_raw.pl
+++ b/tp/t/results/raw/misc_raw.pl
@@ -195,7 +195,12 @@ $result_trees{'misc_raw'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 11,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/raw/misc_raw_comments.pl 
b/tp/t/results/raw/misc_raw_comments.pl
index af3b01cb64..3d4d2b4f19 100644
--- a/tp/t/results/raw/misc_raw_comments.pl
+++ b/tp/t/results/raw/misc_raw_comments.pl
@@ -247,7 +247,12 @@ $result_trees{'misc_raw_comments'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 11,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/raw/nested_macros.pl 
b/tp/t/results/raw/nested_macros.pl
index c2a7cb078f..56a01a27b7 100644
--- a/tp/t/results/raw/nested_macros.pl
+++ b/tp/t/results/raw/nested_macros.pl
@@ -71,7 +71,12 @@ $result_trees{'nested_macros'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 5,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -105,7 +110,12 @@ $result_trees{'nested_macros'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'macro'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 7,
+                    'macro' => ''
+                  }
                 }
               ],
               'extra' => {
@@ -136,7 +146,12 @@ $result_trees{'nested_macros'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/raw/raw_commands_and_end_of_lines.pl 
b/tp/t/results/raw/raw_commands_and_end_of_lines.pl
index 987171f347..d820cd6f2d 100644
--- a/tp/t/results/raw/raw_commands_and_end_of_lines.pl
+++ b/tp/t/results/raw/raw_commands_and_end_of_lines.pl
@@ -1010,7 +1010,12 @@ $result_trees{'raw_commands_and_end_of_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 61,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -1079,7 +1084,12 @@ $result_trees{'raw_commands_and_end_of_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 66,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -1158,7 +1168,12 @@ $result_trees{'raw_commands_and_end_of_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 71,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -1237,7 +1252,12 @@ $result_trees{'raw_commands_and_end_of_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim after the closing command.'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 76,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -1305,7 +1325,12 @@ $result_trees{'raw_commands_and_end_of_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 80,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -1384,7 +1409,12 @@ $result_trees{'raw_commands_and_end_of_lines'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim. A symbol after the closing command.'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 85,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/raw/raw_in_para.pl b/tp/t/results/raw/raw_in_para.pl
index 73e3e1737c..a6719c4ca0 100644
--- a/tp/t/results/raw/raw_in_para.pl
+++ b/tp/t/results/raw/raw_in_para.pl
@@ -62,7 +62,12 @@ $result_trees{'raw_in_para'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/raw/space_before_end.pl 
b/tp/t/results/raw/space_before_end.pl
index c23af31760..589b75c0bf 100644
--- a/tp/t/results/raw/space_before_end.pl
+++ b/tp/t/results/raw/space_before_end.pl
@@ -128,7 +128,12 @@ $result_trees{'space_before_end'} = {
                 'spaces_before_argument' => '  ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/raw/spurious_arg_on_line.pl 
b/tp/t/results/raw/spurious_arg_on_line.pl
index ad7f56056e..4d170ef135 100644
--- a/tp/t/results/raw/spurious_arg_on_line.pl
+++ b/tp/t/results/raw/spurious_arg_on_line.pl
@@ -138,7 +138,12 @@ $result_trees{'spurious_arg_on_line'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/raw/verbatim_and_verbatiminclude.pl 
b/tp/t/results/raw/verbatim_and_verbatiminclude.pl
index 238af080fd..fc2515cef3 100644
--- a/tp/t/results/raw/verbatim_and_verbatiminclude.pl
+++ b/tp/t/results/raw/verbatim_and_verbatiminclude.pl
@@ -51,7 +51,12 @@ $result_trees{'verbatim_and_verbatiminclude'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -120,7 +125,12 @@ $result_trees{'verbatim_and_verbatiminclude'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 8,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -220,7 +230,12 @@ $result_trees{'verbatim_and_verbatiminclude'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'verbatim'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 16,
+                    'macro' => ''
+                  }
                 }
               ],
               'parent' => {},
@@ -326,7 +341,12 @@ $result_trees{'verbatim_and_verbatiminclude'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 22,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
@@ -624,7 +644,12 @@ $result_trees{'verbatim_and_verbatiminclude'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'verbatim'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 42,
+                    'macro' => ''
+                  }
                 }
               ],
               'parent' => {},
@@ -768,7 +793,12 @@ $result_trees{'verbatim_and_verbatiminclude'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'verbatim'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 52,
+                    'macro' => ''
+                  }
                 }
               ],
               'parent' => {},
@@ -900,7 +930,12 @@ $result_trees{'verbatim_and_verbatiminclude'} = {
                     'spaces_before_argument' => ' ',
                     'text_arg' => 'verbatim'
                   },
-                  'parent' => {}
+                  'parent' => {},
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 61,
+                    'macro' => ''
+                  }
                 }
               ],
               'parent' => {},
diff --git a/tp/t/results/raw/verbatim_in_brace_command.pl 
b/tp/t/results/raw/verbatim_in_brace_command.pl
index f600a782a4..dac0e83084 100644
--- a/tp/t/results/raw/verbatim_in_brace_command.pl
+++ b/tp/t/results/raw/verbatim_in_brace_command.pl
@@ -80,7 +80,12 @@ $result_trees{'verbatim_in_brace_command'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/value_and_macro/comma_value_in_macro_arg.pl 
b/tp/t/results/value_and_macro/comma_value_in_macro_arg.pl
index 6c790fe4bb..2dc8517218 100644
--- a/tp/t/results/value_and_macro/comma_value_in_macro_arg.pl
+++ b/tp/t/results/value_and_macro/comma_value_in_macro_arg.pl
@@ -92,7 +92,12 @@ $result_trees{'comma_value_in_macro_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/value_and_macro/macro_in_value.pl 
b/tp/t/results/value_and_macro/macro_in_value.pl
index 226740135e..6f59e1273b 100644
--- a/tp/t/results/value_and_macro/macro_in_value.pl
+++ b/tp/t/results/value_and_macro/macro_in_value.pl
@@ -64,7 +64,12 @@ $result_trees{'macro_in_value'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/value_and_macro/value_in_macro_body.pl 
b/tp/t/results/value_and_macro/value_in_macro_body.pl
index 878256362c..cfbb7f8954 100644
--- a/tp/t/results/value_and_macro/value_in_macro_body.pl
+++ b/tp/t/results/value_and_macro/value_in_macro_body.pl
@@ -87,7 +87,12 @@ $result_trees{'value_in_macro_body'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/value_and_macro/value_in_macro_formal_arg.pl 
b/tp/t/results/value_and_macro/value_in_macro_formal_arg.pl
index fd60ef58fc..aa64a4ceae 100644
--- a/tp/t/results/value_and_macro/value_in_macro_formal_arg.pl
+++ b/tp/t/results/value_and_macro/value_in_macro_formal_arg.pl
@@ -92,7 +92,12 @@ $result_trees{'value_in_macro_formal_arg'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/xml_tests/commands_and_spaces.pl 
b/tp/t/results/xml_tests/commands_and_spaces.pl
index a78441eb3a..62ae671b85 100644
--- a/tp/t/results/xml_tests/commands_and_spaces.pl
+++ b/tp/t/results/xml_tests/commands_and_spaces.pl
@@ -1115,7 +1115,12 @@ $result_trees{'commands_and_spaces'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 44,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/xml_tests/macro_and_args.pl 
b/tp/t/results/xml_tests/macro_and_args.pl
index 4b829b9d42..a4e16acd80 100644
--- a/tp/t/results/xml_tests/macro_and_args.pl
+++ b/tp/t/results/xml_tests/macro_and_args.pl
@@ -51,7 +51,12 @@ $result_trees{'macro_and_args'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 2,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
@@ -118,7 +123,12 @@ $result_trees{'macro_and_args'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 5,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {
diff --git a/tp/t/results/xml_tests/spaces_info_lost.pl 
b/tp/t/results/xml_tests/spaces_info_lost.pl
index 44d74da9bb..801a1b5fb7 100644
--- a/tp/t/results/xml_tests/spaces_info_lost.pl
+++ b/tp/t/results/xml_tests/spaces_info_lost.pl
@@ -127,7 +127,12 @@ $result_trees{'spaces_info_lost'} = {
                 'spaces_before_argument' => '  ',
                 'text_arg' => 'verbatim'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              }
             }
           ],
           'parent' => {},
diff --git a/tp/t/results/xtable/table_nested.pl 
b/tp/t/results/xtable/table_nested.pl
index f501ec4474..b830b432d0 100644
--- a/tp/t/results/xtable/table_nested.pl
+++ b/tp/t/results/xtable/table_nested.pl
@@ -172,7 +172,12 @@ $result_trees{'table_nested'} = {
                 'spaces_before_argument' => ' ',
                 'text_arg' => 'macro'
               },
-              'parent' => {}
+              'parent' => {},
+              'source_info' => {
+                'file_name' => '',
+                'line_nr' => 23,
+                'macro' => ''
+              }
             }
           ],
           'extra' => {



reply via email to

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