texinfo-commits
[Top][All Lists]
Advanced

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

[no subject]


From: Patrice Dumas
Date: Sun, 29 Sep 2024 06:22:57 -0400 (EDT)

branch: master
commit 67d6e541a1e72d5257d64b138460d23a77ef9088
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Tue Jun 18 00:43:43 2024 +0200

    * tp/Texinfo/ParserNonXS.pm (_merge_text),
    tp/Texinfo/XS/parsetexi/parser.c (merge_text): if a special space text
    element is empty and there is non space text merged, reuse the element
    as a normal text element.  This is different from before if there are
    source marks as now they are kept as is, previously, a call to
    *_abort_empty_line followed by adding a new element led to an empty
    text element added to store the source marks.
---
 ChangeLog                                          |  10 +
 tp/Texinfo/ParserNonXS.pm                          |  26 +-
 tp/Texinfo/XS/parsetexi/parser.c                   |  16 +-
 tp/Texinfo/XS/parsetexi/source_marks.c             |   2 -
 tp/t/results/alias/alias_macro_target_removed.pl   |  47 +-
 tp/t/results/alias/alias_of_macro.pl               |  47 +-
 tp/t/results/alias/alias_of_macro_before_macro.pl  |  47 +-
 tp/t/results/alias/texinfo_command_alias.pl        |  47 +-
 .../alias/texinfo_command_alias_indirect.pl        |  47 +-
 tp/t/results/conditionals/macro_in_ifset.pl        |  35 +-
 tp/t/results/conditionals/macro_in_ifset_set.pl    |  35 +-
 .../conditionals/user_defined_txiinternalvalue.pl  |  25 +-
 .../coverage/delcomment_followed_by_cpp_line.pl    |  17 +-
 tp/t/results/include/cpp_lines.pl                  |  72 ++-
 .../macro_and_commands_in_early_commands.pl        |  35 +-
 .../results/include/macro_definition_in_include.pl |  13 +-
 tp/t/results/include/macro_in_early_commands.pl    |  48 +-
 tp/t/results/include/value_expansion_in_include.pl |  15 +-
 .../linemacro/arobase_brace_in_linemacro_call.pl   | 154 +++--
 .../linemacro/begin_conditional_in_linemacro.pl    | 110 ++--
 .../linemacro/block_begin_end_in_linemacro_call.pl | 356 ++++++------
 tp/t/results/linemacro/blockitem_no_item.pl        |   9 +-
 .../results/linemacro/comment_in_linemacro_call.pl |  73 ++-
 .../comment_in_one_argument_linemacro_call.pl      |  53 +-
 .../comment_on_linemacro_call_macro_expansion.pl   |  63 +--
 .../comment_on_linemacro_call_out_of_braces.pl     | 221 ++++----
 .../linemacro/end_conditional_in_linemacro.pl      |  55 +-
 tp/t/results/linemacro/nested_linemacro_calls.pl   |   3 -
 tp/t/results/linemacro/no_arguments.pl             | 149 +++--
 tp/t/results/linemacro/text_arguments.pl           |  97 ++--
 tp/t/results/linemacro/verb_in_linemacro_call.pl   | 117 ++--
 tp/t/results/macro/arg_body_expansion_order.pl     |  36 +-
 tp/t/results/macro/arobase_brace_in_macro_call.pl  | 114 ++--
 tp/t/results/macro/bib_example.pl                  |  19 +-
 tp/t/results/macro/bye_in_macro.pl                 |  27 +-
 tp/t/results/macro/complex_argument.pl             |  13 +-
 tp/t/results/macro/cpp_directives_after_macros.pl  |  48 +-
 tp/t/results/macro/cpp_directives_in_macro.pl      |  21 +-
 .../macro/cpp_directives_line_value_macro.pl       | 101 ++--
 .../macro/definfoenclose_replaced_by_macro.pl      |  45 +-
 tp/t/results/macro/empty_macro_argument.pl         |  70 ++-
 tp/t/results/macro/expand_two_same.pl              |  22 +-
 tp/t/results/macro/expansion_order.pl              |  78 ++-
 tp/t/results/macro/form_feeds.pl                   | 140 +++--
 tp/t/results/macro/ignored_macro_definition.pl     |  35 +-
 tp/t/results/macro/implicit_quoting_recursion.pl   | 340 ++++++-----
 tp/t/results/macro/line_after_recursive_call.pl    |  28 +-
 .../macro/macro_alias_definfoenclose_defindex.pl   | 196 ++++---
 tp/t/results/macro/macro_call_empty_middle_arg.pl  | 255 +++++----
 tp/t/results/macro/macro_call_empty_two_arg.pl     | 621 ++++++++++-----------
 .../macro/macro_end_call_in_ignored_inlinefmt.pl   |  37 +-
 .../macro_end_call_in_ignored_inlinefmtifelse.pl   |  37 +-
 .../macro/macro_end_call_in_ignored_inlineraw.pl   |  37 +-
 tp/t/results/macro/macro_expands_to_empty.pl       |  43 +-
 tp/t/results/macro/macro_in_brace_command.pl       |   7 +-
 tp/t/results/macro/macro_in_macro_arg.pl           |  78 ++-
 tp/t/results/macro/macro_in_macro_arg_simpler.pl   |  78 ++-
 tp/t/results/macro/macro_name_with_digit.pl        |  51 +-
 tp/t/results/macro/macro_name_with_hyphen.pl       |  73 ++-
 tp/t/results/macro/macro_no_arg_bad_expansion.pl   |  25 +-
 tp/t/results/macro/macro_no_arg_expansion.pl       |  35 +-
 tp/t/results/macro/macro_one_arg_end_of_file.pl    |  35 +-
 tp/t/results/macro/macro_zero.pl                   |  13 +-
 tp/t/results/macro/no_macrobody.pl                 |  58 +-
 tp/t/results/macro/protect_comma_macro_line.pl     |  53 +-
 tp/t/results/macro/protect_in_body_line_arg.pl     |  27 +-
 tp/t/results/macro/protect_in_body_one_arg.pl      |  61 +-
 tp/t/results/macro/recursive_call_in_argument.pl   |  45 +-
 tp/t/results/macro/simple_imbricated_macro.pl      |  72 ++-
 .../macro/simple_imbricated_macro_rmacro.pl        |  72 ++-
 tp/t/results/macro/too_much_args.pl                |  73 ++-
 tp/t/results/macro/two_macros_on_a_line.pl         |  48 +-
 .../macro/unpaired_backslash_in_macro_body.pl      |  37 +-
 .../macro/verb_with_arobase_in_macro_call.pl       |  73 ++-
 .../codequoteundirected_codequotebacktick.pl       | 309 +++++-----
 tp/t/results/misc_commands/test_allowcodebreaks.pl |  27 +-
 .../plaintext_tests/star_at_command_formatting.pl  |  55 +-
 ...st_parenthesis_after_parenthesis_source_mark.pl |  47 +-
 .../protect_first_parenthesis_source_mark.pl       |  49 +-
 ...otect_hashchar_at_line_beginning_source_mark.pl | 108 ++--
 tp/t/results/value/ignored_value_definition.pl     |  41 +-
 tp/t/results/value/set_flag_command_equivalent.pl  |  54 +-
 tp/t/results/value/simple.pl                       |  43 +-
 tp/t/results/value/spaces_before_value.pl          |  51 +-
 tp/t/results/value/value_in_node.pl                |   9 +-
 tp/t/results/value/value_node_directions.pl        |  41 +-
 tp/t/results/value/value_zero.pl                   |  13 +-
 .../value_and_macro/comma_value_in_macro_arg.pl    |  61 +-
 .../results/value_and_macro/value_in_macro_body.pl |  47 +-
 89 files changed, 3093 insertions(+), 3283 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 60c71bfb97..8399c3578e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2024-06-17  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/ParserNonXS.pm (_merge_text),
+       tp/Texinfo/XS/parsetexi/parser.c (merge_text): if a special space text
+       element is empty and there is non space text merged, reuse the element
+       as a normal text element.  This is different from before if there are
+       source marks as now they are kept as is, previously, a call to
+       *_abort_empty_line followed by adding a new element led to an empty
+       text element added to store the source marks.
+
 2024-06-17  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/XS/parsetexi/parser.c (merge_text),
diff --git a/tp/Texinfo/ParserNonXS.pm b/tp/Texinfo/ParserNonXS.pm
index 4fbd334ae7..b3a4eae39c 100644
--- a/tp/Texinfo/ParserNonXS.pm
+++ b/tp/Texinfo/ParserNonXS.pm
@@ -2245,17 +2245,37 @@ sub _merge_text {
 
             $last_element->{'text'} .= $leading_spaces;
             $text =~ s/^(\s+)//;
+          } elsif ($last_element->{'text'} eq '') {
+            # empty special space.  Reuse it as normal text element.
+            # This is different from calling do_abort_empty_line and
+            # afterwards adding a new element if there are source marks:
+            # we avoid an empty element being added by reusing.
+            my $popped_element = _pop_element_from_contents($self, $current);
+            delete $popped_element->{'type'};
+            $popped_element->{'text'} = $text;
+            $paragraph = _begin_paragraph($self, $current);
+            if ($paragraph) {
+              $current = $paragraph;
+            }
+            # do not jump with a goto as in C, as it is not possible
+            # in Perl to use a goto to go further than the calling scope
+            _transfer_source_marks($transfer_marks_element, $popped_element)
+              if ($transfer_marks_element);
+            push @{$current->{'contents'}}, $popped_element;
+            $popped_element->{'parent'} = $current;
+            print STDERR "NEW TEXT (merge): $text|||\n"
+                        if ($self->{'conf'}->{'DEBUG'});
+            return $current;
           }
 
           if ($last_element_type ne 'empty_line') {
             $no_merge_with_following_text = 1;
           }
-
         }
       }
-    }
+      _abort_empty_line($self, $current);
 
-    _abort_empty_line($self, $current);
+    }
 
     $paragraph = _begin_paragraph($self, $current);
     if ($paragraph) {
diff --git a/tp/Texinfo/XS/parsetexi/parser.c b/tp/Texinfo/XS/parsetexi/parser.c
index f04c79c905..b8af3a256f 100644
--- a/tp/Texinfo/XS/parsetexi/parser.c
+++ b/tp/Texinfo/XS/parsetexi/parser.c
@@ -771,6 +771,7 @@ merge_text (ELEMENT *current, const char *text, size_t 
len_text,
             ELEMENT *transfer_marks_element)
 {
   int leading_spaces = 0;
+  ELEMENT *e;
   ELEMENT *last_element = last_contents_child (current);
 
   /* determine the number of leading characters in whitespace_chars */
@@ -805,6 +806,19 @@ merge_text (ELEMENT *current, const char *text, size_t 
len_text,
               text += leading_spaces;
               len_text -= leading_spaces;
             }
+          else if (last_element->e.text->end == 0)
+            { /* empty special space.  Reuse it as normal text element.
+                 This is different from calling do_abort_empty_line and
+                 afterwards adding a new element if there are source marks:
+                 we avoid an empty element being added by reusing.
+               */
+              e = pop_element_from_contents (current);
+              e->type = ET_normal_text;
+              paragraph = begin_paragraph (current);
+              if (paragraph)
+                current = paragraph;
+              goto add_to_empty_text;
+            }
 
           do_abort_empty_line (current, last_element);
 
@@ -857,9 +871,9 @@ merge_text (ELEMENT *current, const char *text, size_t 
len_text,
     }
   else
     {
-      ELEMENT *e;
      new_text:
       e = new_text_element (ET_normal_text);
+     add_to_empty_text:
       if (transfer_marks_element)
         transfer_source_marks (transfer_marks_element, e, 0);
       text_append_n (e->e.text, text, len_text);
diff --git a/tp/Texinfo/XS/parsetexi/source_marks.c 
b/tp/Texinfo/XS/parsetexi/source_marks.c
index 690cef6739..e061987a46 100644
--- a/tp/Texinfo/XS/parsetexi/source_marks.c
+++ b/tp/Texinfo/XS/parsetexi/source_marks.c
@@ -72,8 +72,6 @@ place_source_mark (ELEMENT *e, SOURCE_MARK *source_mark)
     {
       /* add an empty element used for source marks */
       mark_element = new_text_element (ET_normal_text);
-      /* set empty text to have merge_text work as expected */
-      text_append (mark_element->e.text, "");
       add_to_element_contents (e, mark_element);
       add_element_string = "add";
     }
diff --git a/tp/t/results/alias/alias_macro_target_removed.pl 
b/tp/t/results/alias/alias_macro_target_removed.pl
index 10296d189a..d2a66fcad5 100644
--- a/tp/t/results/alias/alias_macro_target_removed.pl
+++ b/tp/t/results/alias/alias_macro_target_removed.pl
@@ -105,31 +105,6 @@ $result_trees{'alias_macro_target_removed'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'aa'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'alias_of' => 'new',
-                  'command_name' => 'mystrong'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -138,6 +113,28 @@ $result_trees{'alias_macro_target_removed'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'aa'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'alias_of' => 'new',
+                      'command_name' => 'mystrong'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 6,
diff --git a/tp/t/results/alias/alias_of_macro.pl 
b/tp/t/results/alias/alias_of_macro.pl
index 91658d0df8..2c8102af18 100644
--- a/tp/t/results/alias/alias_of_macro.pl
+++ b/tp/t/results/alias/alias_of_macro.pl
@@ -105,31 +105,6 @@ $result_trees{'alias_of_macro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'tt'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'alias_of' => 'new',
-                  'command_name' => 'mymacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -138,6 +113,28 @@ $result_trees{'alias_of_macro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'tt'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'alias_of' => 'new',
+                      'command_name' => 'mymacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 10,
diff --git a/tp/t/results/alias/alias_of_macro_before_macro.pl 
b/tp/t/results/alias/alias_of_macro_before_macro.pl
index 05e01e3bb9..06fbc27223 100644
--- a/tp/t/results/alias/alias_of_macro_before_macro.pl
+++ b/tp/t/results/alias/alias_of_macro_before_macro.pl
@@ -105,31 +105,6 @@ $result_trees{'alias_of_macro_before_macro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'tt'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'alias_of' => 'new',
-                  'command_name' => 'mymacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -138,6 +113,28 @@ $result_trees{'alias_of_macro_before_macro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'tt'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'alias_of' => 'new',
+                      'command_name' => 'mymacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 10,
diff --git a/tp/t/results/alias/texinfo_command_alias.pl 
b/tp/t/results/alias/texinfo_command_alias.pl
index 42b7fa7de3..7a850662f6 100644
--- a/tp/t/results/alias/texinfo_command_alias.pl
+++ b/tp/t/results/alias/texinfo_command_alias.pl
@@ -105,31 +105,6 @@ $result_trees{'texinfo_command_alias'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'aa'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'alias_of' => 'strong',
-                  'command_name' => 'mystrong'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -138,6 +113,28 @@ $result_trees{'texinfo_command_alias'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'aa'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'alias_of' => 'strong',
+                      'command_name' => 'mystrong'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 6,
diff --git a/tp/t/results/alias/texinfo_command_alias_indirect.pl 
b/tp/t/results/alias/texinfo_command_alias_indirect.pl
index 2b38dc64f9..356f421181 100644
--- a/tp/t/results/alias/texinfo_command_alias_indirect.pl
+++ b/tp/t/results/alias/texinfo_command_alias_indirect.pl
@@ -143,31 +143,6 @@ $result_trees{'texinfo_command_alias_indirect'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'aa'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'alias_of' => 'new',
-                  'command_name' => 'mystrong'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -176,6 +151,28 @@ $result_trees{'texinfo_command_alias_indirect'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'aa'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'alias_of' => 'new',
+                      'command_name' => 'mystrong'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 6,
diff --git a/tp/t/results/conditionals/macro_in_ifset.pl 
b/tp/t/results/conditionals/macro_in_ifset.pl
index 13c4de2521..45efb8e635 100644
--- a/tp/t/results/conditionals/macro_in_ifset.pl
+++ b/tp/t/results/conditionals/macro_in_ifset.pl
@@ -159,25 +159,6 @@ $result_trees{'macro_in_ifset'} = {
           'type' => 'empty_line'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'truc'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -186,6 +167,22 @@ $result_trees{'macro_in_ifset'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'truc'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 4,
diff --git a/tp/t/results/conditionals/macro_in_ifset_set.pl 
b/tp/t/results/conditionals/macro_in_ifset_set.pl
index 4141f4d1f8..1ea7614d2a 100644
--- a/tp/t/results/conditionals/macro_in_ifset_set.pl
+++ b/tp/t/results/conditionals/macro_in_ifset_set.pl
@@ -233,25 +233,6 @@ $result_trees{'macro_in_ifset_set'} = {
           ]
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'truc'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -260,6 +241,22 @@ $result_trees{'macro_in_ifset_set'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'truc'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 8,
diff --git a/tp/t/results/conditionals/user_defined_txiinternalvalue.pl 
b/tp/t/results/conditionals/user_defined_txiinternalvalue.pl
index e986d2b699..ceac541e9b 100644
--- a/tp/t/results/conditionals/user_defined_txiinternalvalue.pl
+++ b/tp/t/results/conditionals/user_defined_txiinternalvalue.pl
@@ -63,20 +63,6 @@ $result_trees{'user_defined_txiinternalvalue'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'info' => {
-                  'command_name' => 'txiinternalvalue'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -85,6 +71,17 @@ $result_trees{'user_defined_txiinternalvalue'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'info' => {
+                      'command_name' => 'txiinternalvalue'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 18,
diff --git a/tp/t/results/coverage/delcomment_followed_by_cpp_line.pl 
b/tp/t/results/coverage/delcomment_followed_by_cpp_line.pl
index 0de39548ee..757049e772 100644
--- a/tp/t/results/coverage/delcomment_followed_by_cpp_line.pl
+++ b/tp/t/results/coverage/delcomment_followed_by_cpp_line.pl
@@ -47,15 +47,6 @@ $result_trees{'delcomment_followed_by_cpp_line'} = {
               'cmdname' => 'c'
             },
             {
-              'source_marks' => [
-                {
-                  'counter' => 1,
-                  'line' => ' this is a comment.
-',
-                  'position' => 1,
-                  'sourcemark_type' => 'delcomment'
-                }
-              ],
               'text' => '
 ',
               'type' => 'empty_line'
@@ -66,6 +57,14 @@ $result_trees{'delcomment_followed_by_cpp_line'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => ' this is a comment.
+',
+                  'sourcemark_type' => 'delcomment'
+                }
+              ],
               'text' => '#line 46 "a_file_after_del_comment"
 '
             }
diff --git a/tp/t/results/include/cpp_lines.pl 
b/tp/t/results/include/cpp_lines.pl
index 6bc6bdc3b4..34b90b27c0 100644
--- a/tp/t/results/include/cpp_lines.pl
+++ b/tp/t/results/include/cpp_lines.pl
@@ -331,25 +331,6 @@ $result_trees{'cpp_lines'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macr'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -358,6 +339,22 @@ $result_trees{'cpp_lines'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macr'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 12,
@@ -499,25 +496,6 @@ $result_trees{'cpp_lines'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macrtwo'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -525,6 +503,24 @@ $result_trees{'cpp_lines'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macrtwo'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'line before
 '
             },
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 15df1da0d7..b40eb88d4c 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
@@ -595,25 +595,6 @@ $result_trees{'macro_and_commands_in_early_commands'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 4,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'themacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -622,6 +603,22 @@ $result_trees{'macro_and_commands_in_early_commands'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 4,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'themacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 4,
                   'position' => 11,
diff --git a/tp/t/results/include/macro_definition_in_include.pl 
b/tp/t/results/include/macro_definition_in_include.pl
index 60b9ca56d0..66ad7b9c64 100644
--- a/tp/t/results/include/macro_definition_in_include.pl
+++ b/tp/t/results/include/macro_definition_in_include.pl
@@ -118,6 +118,10 @@ $result_trees{'macro_definition_in_include'} = {
         },
         {
           'contents' => [
+            {
+              'text' => 'Call macro
+'
+            },
             {
               'source_marks' => [
                 {
@@ -133,16 +137,9 @@ $result_trees{'macro_definition_in_include'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 11,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => 'Call macro
-'
-            },
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 1,
                   'position' => 11,
diff --git a/tp/t/results/include/macro_in_early_commands.pl 
b/tp/t/results/include/macro_in_early_commands.pl
index d514511aa7..e02e746b94 100644
--- a/tp/t/results/include/macro_in_early_commands.pl
+++ b/tp/t/results/include/macro_in_early_commands.pl
@@ -745,25 +745,6 @@ $result_trees{'macro_in_early_commands'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 6,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'themacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -772,6 +753,22 @@ $result_trees{'macro_in_early_commands'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 6,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'themacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 6,
                   'position' => 11,
@@ -804,6 +801,10 @@ $result_trees{'macro_in_early_commands'} = {
             {
               'cmdname' => '}'
             },
+            {
+              'text' => '
+'
+            },
             {
               'source_marks' => [
                 {
@@ -824,16 +825,9 @@ $result_trees{'macro_in_early_commands'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 1,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => '
-'
-            },
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 7,
                   'position' => 18,
diff --git a/tp/t/results/include/value_expansion_in_include.pl 
b/tp/t/results/include/value_expansion_in_include.pl
index 03994145fb..0e31960424 100644
--- a/tp/t/results/include/value_expansion_in_include.pl
+++ b/tp/t/results/include/value_expansion_in_include.pl
@@ -229,7 +229,10 @@ $result_trees{'value_expansion_in_include'} = {
                   'status' => 'start'
                 }
               ],
-              'text' => 'testvar include: This is the '
+              'text' => 'testvar include: '
+            },
+            {
+              'text' => 'This is the '
             },
             {
               'args' => [
@@ -418,7 +421,10 @@ $result_trees{'value_expansion_in_include'} = {
                   'status' => 'start'
                 }
               ],
-              'text' => 'test-var include: This is the '
+              'text' => 'test-var include: '
+            },
+            {
+              'text' => 'This is the '
             },
             {
               'args' => [
@@ -605,7 +611,10 @@ $result_trees{'value_expansion_in_include'} = {
                   'status' => 'start'
                 }
               ],
-              'text' => 'test_var include: This is the '
+              'text' => 'test_var include: '
+            },
+            {
+              'text' => 'This is the '
             },
             {
               'args' => [
diff --git a/tp/t/results/linemacro/arobase_brace_in_linemacro_call.pl 
b/tp/t/results/linemacro/arobase_brace_in_linemacro_call.pl
index 2e9a482b65..8c234c3358 100644
--- a/tp/t/results/linemacro/arobase_brace_in_linemacro_call.pl
+++ b/tp/t/results/linemacro/arobase_brace_in_linemacro_call.pl
@@ -76,45 +76,6 @@ $result_trees{'arobase_brace_in_linemacro_call'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => ' @{ ',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => ' @} ',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'simplemac'
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -122,6 +83,44 @@ $result_trees{'arobase_brace_in_linemacro_call'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => ' @{ ',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => ' @} ',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'simplemac'
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first:  '
             },
             {
@@ -153,45 +152,6 @@ $result_trees{'arobase_brace_in_linemacro_call'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => ' @} ',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => ' @{ ',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'simplemac'
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -199,6 +159,44 @@ $result_trees{'arobase_brace_in_linemacro_call'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => ' @} ',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => ' @{ ',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'simplemac'
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first:  '
             },
             {
diff --git a/tp/t/results/linemacro/begin_conditional_in_linemacro.pl 
b/tp/t/results/linemacro/begin_conditional_in_linemacro.pl
index f365f9f11d..3787e3a64a 100644
--- a/tp/t/results/linemacro/begin_conditional_in_linemacro.pl
+++ b/tp/t/results/linemacro/begin_conditional_in_linemacro.pl
@@ -67,35 +67,6 @@ $result_trees{'begin_conditional_in_linemacro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '
-@ifset',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -104,6 +75,32 @@ $result_trees{'begin_conditional_in_linemacro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '
+@ifset',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'lm',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'element' => {
@@ -190,35 +187,6 @@ $result_trees{'begin_conditional_in_linemacro'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '
-@ifclear',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -227,6 +195,32 @@ $result_trees{'begin_conditional_in_linemacro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '
+@ifclear',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'lm',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'element' => {
diff --git a/tp/t/results/linemacro/block_begin_end_in_linemacro_call.pl 
b/tp/t/results/linemacro/block_begin_end_in_linemacro_call.pl
index 5325507b9f..7427e7a728 100644
--- a/tp/t/results/linemacro/block_begin_end_in_linemacro_call.pl
+++ b/tp/t/results/linemacro/block_begin_end_in_linemacro_call.pl
@@ -67,37 +67,6 @@ $result_trees{'block_begin_end_in_linemacro_call'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '
-@quotation aa
-in quotation
-',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -105,6 +74,36 @@ in quotation
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '
+@quotation aa
+in quotation
+',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'lm',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'b 
 '
             }
@@ -217,41 +216,38 @@ in quotation
           'cmdname' => 'quotation',
           'contents' => [
             {
-              'source_marks' => [
+              'contents' => [
                 {
-                  'counter' => 2,
-                  'element' => {
-                    'args' => [
-                      {
-                        'contents' => [
+                  'source_marks' => [
+                    {
+                      'counter' => 2,
+                      'element' => {
+                        'args' => [
                           {
-                            'text' => '
+                            'contents' => [
+                              {
+                                'text' => '
 @end quotation
 
 ',
-                            'type' => 'bracketed_linemacro_arg'
+                                'type' => 'bracketed_linemacro_arg'
+                              }
+                            ],
+                            'type' => 'line_arg'
                           }
                         ],
-                        'type' => 'line_arg'
-                      }
-                    ],
-                    'info' => {
-                      'command_name' => 'lm',
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'linemacro_call'
-                  },
-                  'sourcemark_type' => 'linemacro_expansion',
-                  'status' => 'start'
-                }
-              ],
-              'text' => ''
-            },
-            {
-              'contents' => [
-                {
+                        'info' => {
+                          'command_name' => 'lm',
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'linemacro_call'
+                      },
+                      'sourcemark_type' => 'linemacro_expansion',
+                      'status' => 'start'
+                    }
+                  ],
                   'text' => 'b 
 '
                 }
@@ -326,35 +322,6 @@ in quotation
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 3,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '
-@quotation',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -362,6 +329,34 @@ in quotation
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '
+@quotation',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'lm',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'b 
 '
             }
@@ -460,36 +455,6 @@ in quotation
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 4,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '
-@ignore
-ignored ',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -497,6 +462,35 @@ ignored ',
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 4,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '
+@ignore
+ignored ',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'lm',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'b 
 '
             },
@@ -576,45 +570,44 @@ ignored ',
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 5,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 5,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => '
+                        'contents' => [
+                          {
+                            'text' => '
 @macro mymac {e, f}
 args \\e\\|\\f\\|
 @defline @lm {\\e\\} {\\f\\}
 ',
-                        'type' => 'bracketed_linemacro_arg'
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
                       }
                     ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'info' => {
+                      'command_name' => 'lm',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'b 
 '
             },
@@ -727,47 +720,44 @@ args \\e\\|\\f\\|
             {
               'contents' => [
                 {
-                  'source_marks' => [
+                  'contents' => [
                     {
-                      'counter' => 1,
-                      'element' => {
-                        'args' => [
-                          {
-                            'contents' => [
+                      'source_marks' => [
+                        {
+                          'counter' => 1,
+                          'element' => {
+                            'args' => [
                               {
-                                'text' => 'arg1'
-                              }
-                            ],
-                            'type' => 'brace_arg'
-                          },
-                          {
-                            'contents' => [
+                                'contents' => [
+                                  {
+                                    'text' => 'arg1'
+                                  }
+                                ],
+                                'type' => 'brace_arg'
+                              },
                               {
-                                'text' => 'arg2'
+                                'contents' => [
+                                  {
+                                    'text' => 'arg2'
+                                  }
+                                ],
+                                'info' => {
+                                  'spaces_before_argument' => {
+                                    'text' => ' '
+                                  }
+                                },
+                                'type' => 'brace_arg'
                               }
                             ],
                             'info' => {
-                              'spaces_before_argument' => {
-                                'text' => ' '
-                              }
+                              'command_name' => 'mymac'
                             },
-                            'type' => 'brace_arg'
-                          }
-                        ],
-                        'info' => {
-                          'command_name' => 'mymac'
-                        },
-                        'type' => 'macro_call'
-                      },
-                      'sourcemark_type' => 'macro_expansion',
-                      'status' => 'start'
-                    }
-                  ],
-                  'text' => ''
-                },
-                {
-                  'contents' => [
-                    {
+                            'type' => 'macro_call'
+                          },
+                          'sourcemark_type' => 'macro_expansion',
+                          'status' => 'start'
+                        }
+                      ],
                       'text' => 'args arg1|arg2|
 '
                     }
diff --git a/tp/t/results/linemacro/blockitem_no_item.pl 
b/tp/t/results/linemacro/blockitem_no_item.pl
index a34ee7da2c..d051ee59a7 100644
--- a/tp/t/results/linemacro/blockitem_no_item.pl
+++ b/tp/t/results/linemacro/blockitem_no_item.pl
@@ -105,6 +105,10 @@ $result_trees{'blockitem_no_item'} = {
               'contents' => [
                 {
                   'contents' => [
+                    {
+                      'text' => 'AA
+'
+                    },
                     {
                       'source_marks' => [
                         {
@@ -155,15 +159,10 @@ $result_trees{'blockitem_no_item'} = {
                             },
                             'type' => 'linemacro_call'
                           },
-                          'position' => 3,
                           'sourcemark_type' => 'linemacro_expansion',
                           'status' => 'start'
                         }
                       ],
-                      'text' => 'AA
-'
-                    },
-                    {
                       'text' => 'd, e f '
                     },
                     {
diff --git a/tp/t/results/linemacro/comment_in_linemacro_call.pl 
b/tp/t/results/linemacro/comment_in_linemacro_call.pl
index 4103aa02bc..c330ac749a 100644
--- a/tp/t/results/linemacro/comment_in_linemacro_call.pl
+++ b/tp/t/results/linemacro/comment_in_linemacro_call.pl
@@ -76,54 +76,53 @@ $result_trees{'comment_in_linemacro_call'} = {
           }
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => '@code{
+                        'contents' => [
+                          {
+                            'text' => '@code{
 something @comment in}'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  },
-                  {
-                    'contents' => [
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      },
                       {
-                        'text' => 'out'
+                        'contents' => [
+                          {
+                            'text' => 'out'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'line_arg'
                       }
                     ],
                     'info' => {
+                      'command_name' => 'lm',
                       'spaces_before_argument' => {
                         'text' => ' '
                       }
                     },
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'c '
             },
             {
diff --git a/tp/t/results/linemacro/comment_in_one_argument_linemacro_call.pl 
b/tp/t/results/linemacro/comment_in_one_argument_linemacro_call.pl
index f463b62db5..23323021e8 100644
--- a/tp/t/results/linemacro/comment_in_one_argument_linemacro_call.pl
+++ b/tp/t/results/linemacro/comment_in_one_argument_linemacro_call.pl
@@ -67,33 +67,6 @@ $result_trees{'comment_in_one_argument_linemacro_call'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@code{something @comment in} out'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -101,6 +74,32 @@ $result_trees{'comment_in_one_argument_linemacro_call'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@code{something @comment in} out'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'lm',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'c '
             },
             {
diff --git 
a/tp/t/results/linemacro/comment_on_linemacro_call_macro_expansion.pl 
b/tp/t/results/linemacro/comment_on_linemacro_call_macro_expansion.pl
index b852130ba3..13e1e0c064 100644
--- a/tp/t/results/linemacro/comment_on_linemacro_call_macro_expansion.pl
+++ b/tp/t/results/linemacro/comment_on_linemacro_call_macro_expansion.pl
@@ -143,39 +143,6 @@ $result_trees{'comment_on_linemacro_call_macro_expansion'} 
= {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@lm {a} @c in comment'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => '
-'
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'mymacro',
-                  'spaces_after_cmd_before_arg' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -184,6 +151,36 @@ $result_trees{'comment_on_linemacro_call_macro_expansion'} 
= {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@lm {a} @c in comment'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => '
+'
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'mymacro',
+                      'spaces_after_cmd_before_arg' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'element' => {
diff --git a/tp/t/results/linemacro/comment_on_linemacro_call_out_of_braces.pl 
b/tp/t/results/linemacro/comment_on_linemacro_call_out_of_braces.pl
index 78b4998951..52120fae0b 100644
--- a/tp/t/results/linemacro/comment_on_linemacro_call_out_of_braces.pl
+++ b/tp/t/results/linemacro/comment_on_linemacro_call_out_of_braces.pl
@@ -85,54 +85,53 @@ $result_trees{'comment_on_linemacro_call_out_of_braces'} = {
           }
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => 'something protected',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => 'something protected',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      },
                       {
-                        'text' => ''
+                        'contents' => [
+                          {
+                            'text' => ''
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'line_arg'
                       }
                     ],
                     'info' => {
+                      'command_name' => 'lm',
                       'spaces_before_argument' => {
                         'text' => ' '
                       }
                     },
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first |something protected|
 '
             },
@@ -165,30 +164,6 @@ $result_trees{'comment_on_linemacro_call_out_of_braces'} = 
{
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => ''
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm'
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -196,6 +171,29 @@ $result_trees{'comment_on_linemacro_call_out_of_braces'} = 
{
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => ''
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'lm'
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ||
 '
             },
@@ -228,68 +226,67 @@ $result_trees{'comment_on_linemacro_call_out_of_braces'} 
= {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 3,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => 'aaa
+                        'contents' => [
+                          {
+                            'text' => 'aaa
   ',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  },
-                  {
-                    'contents' => [
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      },
                       {
-                        'text' => 'rest'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'line_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => 'rest'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'line_arg'
+                      },
                       {
-                        'text' => ''
+                        'contents' => [
+                          {
+                            'text' => ''
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'line_arg'
                       }
                     ],
                     'info' => {
+                      'command_name' => 'lm',
                       'spaces_before_argument' => {
                         'text' => ' '
                       }
                     },
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first |aaa
 '
             },
diff --git a/tp/t/results/linemacro/end_conditional_in_linemacro.pl 
b/tp/t/results/linemacro/end_conditional_in_linemacro.pl
index bb34e91299..def39ec135 100644
--- a/tp/t/results/linemacro/end_conditional_in_linemacro.pl
+++ b/tp/t/results/linemacro/end_conditional_in_linemacro.pl
@@ -100,33 +100,6 @@ $result_trees{'end_conditional_in_linemacro'} = {
               'position' => 1,
               'sourcemark_type' => 'expanded_conditional_command',
               'status' => 'start'
-            },
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'text
-  @end ifclear',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'lm',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
             }
           ],
           'text' => '
@@ -136,6 +109,34 @@ $result_trees{'end_conditional_in_linemacro'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'text
+  @end ifclear',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'lm',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'text
 '
             },
diff --git a/tp/t/results/linemacro/nested_linemacro_calls.pl 
b/tp/t/results/linemacro/nested_linemacro_calls.pl
index da2da05230..baea586899 100644
--- a/tp/t/results/linemacro/nested_linemacro_calls.pl
+++ b/tp/t/results/linemacro/nested_linemacro_calls.pl
@@ -292,9 +292,6 @@ $result_trees{'nested_linemacro_calls'} = {
                                   'status' => 'start'
                                 }
                               ],
-                              'text' => ''
-                            },
-                            {
                               'text' => 'inside X operator Y'
                             }
                           ],
diff --git a/tp/t/results/linemacro/no_arguments.pl 
b/tp/t/results/linemacro/no_arguments.pl
index e8c96556d1..835b50f383 100644
--- a/tp/t/results/linemacro/no_arguments.pl
+++ b/tp/t/results/linemacro/no_arguments.pl
@@ -63,30 +63,6 @@ $result_trees{'no_arguments'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => ''
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'noarg'
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -95,6 +71,27 @@ $result_trees{'no_arguments'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => ''
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'noarg'
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 5,
@@ -109,33 +106,6 @@ $result_trees{'no_arguments'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'A B'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'noarg',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -144,6 +114,30 @@ $result_trees{'no_arguments'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'A B'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'noarg',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 5,
@@ -158,34 +152,6 @@ $result_trees{'no_arguments'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 3,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'in brace',
-                        'type' => 'bracketed_linemacro_arg'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'noarg',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -194,6 +160,31 @@ $result_trees{'no_arguments'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 3,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'in brace',
+                            'type' => 'bracketed_linemacro_arg'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'noarg',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 3,
                   'position' => 5,
diff --git a/tp/t/results/linemacro/text_arguments.pl 
b/tp/t/results/linemacro/text_arguments.pl
index a3bff8e69c..1a227aa60f 100644
--- a/tp/t/results/linemacro/text_arguments.pl
+++ b/tp/t/results/linemacro/text_arguments.pl
@@ -75,66 +75,65 @@ $result_trees{'text_arguments'} = {
           }
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => 'X'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => 'X'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      },
                       {
-                        'text' => 'Y'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'line_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => 'Y'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'line_arg'
+                      },
                       {
-                        'text' => 'Z'
+                        'contents' => [
+                          {
+                            'text' => 'Z'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'line_arg'
                       }
                     ],
                     'info' => {
+                      'command_name' => 'nospace',
                       'spaces_before_argument' => {
                         'text' => ' '
                       }
                     },
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'nospace',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'linemacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'linemacro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'type' => 'linemacro_call'
+                  },
+                  'sourcemark_type' => 'linemacro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'Z'
             },
             {
diff --git a/tp/t/results/linemacro/verb_in_linemacro_call.pl 
b/tp/t/results/linemacro/verb_in_linemacro_call.pl
index 0e3f10c100..4861d3b2b5 100644
--- a/tp/t/results/linemacro/verb_in_linemacro_call.pl
+++ b/tp/t/results/linemacro/verb_in_linemacro_call.pl
@@ -115,78 +115,75 @@ $result_trees{'verb_in_linemacro_call'} = {
             {
               'contents' => [
                 {
-                  'source_marks' => [
+                  'contents' => [
                     {
-                      'counter' => 1,
-                      'element' => {
-                        'args' => [
-                          {
-                            'contents' => [
+                      'source_marks' => [
+                        {
+                          'counter' => 1,
+                          'element' => {
+                            'args' => [
                               {
-                                'text' => 'Name',
-                                'type' => 'bracketed_linemacro_arg'
-                              }
-                            ],
-                            'type' => 'line_arg'
-                          },
-                          {
-                            'contents' => [
+                                'contents' => [
+                                  {
+                                    'text' => 'Name',
+                                    'type' => 'bracketed_linemacro_arg'
+                                  }
+                                ],
+                                'type' => 'line_arg'
+                              },
                               {
-                                'text' => '@verb{: in verb :}'
-                              }
-                            ],
-                            'info' => {
-                              'spaces_before_argument' => {
-                                'text' => ' '
-                              }
-                            },
-                            'type' => 'line_arg'
-                          },
-                          {
-                            'contents' => [
+                                'contents' => [
+                                  {
+                                    'text' => '@verb{: in verb :}'
+                                  }
+                                ],
+                                'info' => {
+                                  'spaces_before_argument' => {
+                                    'text' => ' '
+                                  }
+                                },
+                                'type' => 'line_arg'
+                              },
                               {
-                                'text' => 'A @verb{| in bracketed |} ',
-                                'type' => 'bracketed_linemacro_arg'
-                              }
-                            ],
-                            'info' => {
-                              'spaces_before_argument' => {
-                                'text' => ' '
-                              }
-                            },
-                            'type' => 'line_arg'
-                          },
-                          {
-                            'contents' => [
+                                'contents' => [
+                                  {
+                                    'text' => 'A @verb{| in bracketed |} ',
+                                    'type' => 'bracketed_linemacro_arg'
+                                  }
+                                ],
+                                'info' => {
+                                  'spaces_before_argument' => {
+                                    'text' => ' '
+                                  }
+                                },
+                                'type' => 'line_arg'
+                              },
                               {
-                                'text' => 'other {j}'
+                                'contents' => [
+                                  {
+                                    'text' => 'other {j}'
+                                  }
+                                ],
+                                'info' => {
+                                  'spaces_before_argument' => {
+                                    'text' => ' '
+                                  }
+                                },
+                                'type' => 'line_arg'
                               }
                             ],
                             'info' => {
+                              'command_name' => 'mycommand',
                               'spaces_before_argument' => {
                                 'text' => ' '
                               }
                             },
-                            'type' => 'line_arg'
-                          }
-                        ],
-                        'info' => {
-                          'command_name' => 'mycommand',
-                          'spaces_before_argument' => {
-                            'text' => ' '
-                          }
-                        },
-                        'type' => 'linemacro_call'
-                      },
-                      'sourcemark_type' => 'linemacro_expansion',
-                      'status' => 'start'
-                    }
-                  ],
-                  'text' => ''
-                },
-                {
-                  'contents' => [
-                    {
+                            'type' => 'linemacro_call'
+                          },
+                          'sourcemark_type' => 'linemacro_expansion',
+                          'status' => 'start'
+                        }
+                      ],
                       'text' => 'first Name
 '
                     },
diff --git a/tp/t/results/macro/arg_body_expansion_order.pl 
b/tp/t/results/macro/arg_body_expansion_order.pl
index c0fa2e076f..c6c92049c0 100644
--- a/tp/t/results/macro/arg_body_expansion_order.pl
+++ b/tp/t/results/macro/arg_body_expansion_order.pl
@@ -244,30 +244,28 @@ $result_trees{'arg_body_expansion_order'} = {
           'source_info' => {
             'line_nr' => 14,
             'macro' => 'redefineothermacro'
-          },
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'othermacro'
-                },
-                'type' => 'macro_call'
-              },
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ]
+          }
         },
         {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'othermacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 9,
diff --git a/tp/t/results/macro/arobase_brace_in_macro_call.pl 
b/tp/t/results/macro/arobase_brace_in_macro_call.pl
index 799c6ab1aa..8145224a59 100644
--- a/tp/t/results/macro/arobase_brace_in_macro_call.pl
+++ b/tp/t/results/macro/arobase_brace_in_macro_call.pl
@@ -76,35 +76,6 @@ $result_trees{'arobase_brace_in_macro_call'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@{ , @} '
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'simplemac'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -112,6 +83,34 @@ $result_trees{'arobase_brace_in_macro_call'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@{ , @} '
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'simplemac'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first: '
             },
             {
@@ -143,35 +142,6 @@ $result_trees{'arobase_brace_in_macro_call'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'simplemac'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -179,6 +149,34 @@ $result_trees{'arobase_brace_in_macro_call'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'simplemac'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first: '
             },
             {
diff --git a/tp/t/results/macro/bib_example.pl 
b/tp/t/results/macro/bib_example.pl
index 0e6b567b60..88e3e30806 100644
--- a/tp/t/results/macro/bib_example.pl
+++ b/tp/t/results/macro/bib_example.pl
@@ -3126,7 +3126,11 @@ $result_trees{'bib_example'} = {
                   },
                   'sourcemark_type' => 'expanded_conditional_command',
                   'status' => 'start'
-                },
+                }
+              ]
+            },
+            {
+              'source_marks' => [
                 {
                   'counter' => 5,
                   'element' => {
@@ -3161,9 +3165,7 @@ $result_trees{'bib_example'} = {
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
-              ]
-            },
-            {
+              ],
               'text' => '(See item [LaTeX2e] in '
             },
             {
@@ -3206,12 +3208,7 @@ $result_trees{'bib_example'} = {
                           'line' => 'References',
                           'sourcemark_type' => 'value_expansion',
                           'status' => 'start'
-                        }
-                      ],
-                      'text' => ''
-                    },
-                    {
-                      'source_marks' => [
+                        },
                         {
                           'counter' => 2,
                           'position' => 10,
@@ -3231,7 +3228,6 @@ $result_trees{'bib_example'} = {
                   'extra' => {
                     'node_content' => {
                       'contents' => [
-                        {},
                         {}
                       ]
                     },
@@ -3956,7 +3952,6 @@ $result_trees{'bib_example'} = {
 
$result_trees{'bib_example'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'contents'}[1]{'extra'}{'node_content'}{'contents'}[0]
 = 
$result_trees{'bib_example'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'contents'}[1]{'contents'}[0];
 
$result_trees{'bib_example'}{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'node_content'}{'contents'}[0]
 = 
$result_trees{'bib_example'}{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[0];
 
$result_trees{'bib_example'}{'contents'}[4]{'contents'}[1]{'contents'}[4]{'args'}[0]{'extra'}{'node_content'}{'contents'}[0]
 = 
$result_trees{'bib_example'}{'contents'}[4]{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[0];
-$result_trees{'bib_example'}{'contents'}[4]{'contents'}[1]{'contents'}[4]{'args'}[0]{'extra'}{'node_content'}{'contents'}[1]
 = 
$result_trees{'bib_example'}{'contents'}[4]{'contents'}[1]{'contents'}[4]{'args'}[0]{'contents'}[1];
 
$result_trees{'bib_example'}{'contents'}[6]{'contents'}[1]{'extra'}{'command_as_argument'}
 = 
$result_trees{'bib_example'}{'contents'}[6]{'contents'}[1]{'args'}[0]{'contents'}[0];
 
 $result_texis{'bib_example'} = '\\input texinfo   @c -*-texinfo-*-
diff --git a/tp/t/results/macro/bye_in_macro.pl 
b/tp/t/results/macro/bye_in_macro.pl
index b6e5b717f0..36da275d2f 100644
--- a/tp/t/results/macro/bye_in_macro.pl
+++ b/tp/t/results/macro/bye_in_macro.pl
@@ -78,20 +78,6 @@ $result_trees{'bye_in_macro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'info' => {
-                  'command_name' => 'byeinmacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -99,6 +85,19 @@ $result_trees{'bye_in_macro'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'info' => {
+                      'command_name' => 'byeinmacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'Text
 '
             }
diff --git a/tp/t/results/macro/complex_argument.pl 
b/tp/t/results/macro/complex_argument.pl
index 854967fb9f..4d3cd6960b 100644
--- a/tp/t/results/macro/complex_argument.pl
+++ b/tp/t/results/macro/complex_argument.pl
@@ -731,7 +731,13 @@ macroseven defined
                   },
                   'position' => 19,
                   'sourcemark_type' => 'ignored_conditional_block'
-                },
+                }
+              ],
+              'text' => 'macroseven defined
+'
+            },
+            {
+              'source_marks' => [
                 {
                   'counter' => 4,
                   'element' => {
@@ -745,15 +751,10 @@ macroseven defined
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 19,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
               ],
-              'text' => 'macroseven defined
-'
-            },
-            {
               'text' => '1
 '
             },
diff --git a/tp/t/results/macro/cpp_directives_after_macros.pl 
b/tp/t/results/macro/cpp_directives_after_macros.pl
index c194ee4fca..aef00de8a7 100644
--- a/tp/t/results/macro/cpp_directives_after_macros.pl
+++ b/tp/t/results/macro/cpp_directives_after_macros.pl
@@ -197,31 +197,6 @@ $result_trees{'cpp_directives_after_macros'} = {
           'type' => 'empty_line'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'emptyexpansion'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 2,
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'end'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -229,6 +204,29 @@ $result_trees{'cpp_directives_after_macros'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'emptyexpansion'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 2,
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => '#line 75 "a_file_after_macro_call_no_spaces"
 '
             }
diff --git a/tp/t/results/macro/cpp_directives_in_macro.pl 
b/tp/t/results/macro/cpp_directives_in_macro.pl
index bbe2eeecb3..281d9f4505 100644
--- a/tp/t/results/macro/cpp_directives_in_macro.pl
+++ b/tp/t/results/macro/cpp_directives_in_macro.pl
@@ -80,6 +80,16 @@ $result_trees{'cpp_directives_in_macro'} = {
                 'line_nr' => 2
               }
             },
+            {
+              'text' => '
+',
+              'type' => 'empty_line'
+            }
+          ],
+          'type' => 'preamble_before_content'
+        },
+        {
+          'contents' => [
             {
               'source_marks' => [
                 {
@@ -109,21 +119,10 @@ $result_trees{'cpp_directives_in_macro'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 1,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
               ],
-              'text' => '
-',
-              'type' => 'empty_line'
-            }
-          ],
-          'type' => 'preamble_before_content'
-        },
-        {
-          'contents' => [
-            {
               'text' => '#line 100 "in_arg_file"
 '
             }
diff --git a/tp/t/results/macro/cpp_directives_line_value_macro.pl 
b/tp/t/results/macro/cpp_directives_line_value_macro.pl
index 7a956bcb90..b70fa248f1 100644
--- a/tp/t/results/macro/cpp_directives_line_value_macro.pl
+++ b/tp/t/results/macro/cpp_directives_line_value_macro.pl
@@ -76,6 +76,16 @@ $result_trees{'cpp_directives_line_value_macro'} = {
                 'line_nr' => 2
               }
             },
+            {
+              'text' => '
+',
+              'type' => 'empty_line'
+            }
+          ],
+          'type' => 'preamble_before_content'
+        },
+        {
+          'contents' => [
             {
               'source_marks' => [
                 {
@@ -91,22 +101,9 @@ $result_trees{'cpp_directives_line_value_macro'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 1,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => '
-',
-              'type' => 'empty_line'
-            }
-          ],
-          'type' => 'preamble_before_content'
-        },
-        {
-          'contents' => [
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 1,
                   'position' => 15,
@@ -181,25 +178,6 @@ $result_trees{'cpp_directives_line_value_macro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'machash'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -208,6 +186,22 @@ $result_trees{'cpp_directives_line_value_macro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'machash'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 1,
@@ -352,28 +346,6 @@ $result_trees{'cpp_directives_line_value_macro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'hash'
-                      }
-                    ],
-                    'type' => 'brace_container'
-                  }
-                ],
-                'cmdname' => 'value'
-              },
-              'line' => '#',
-              'position' => 1,
-              'sourcemark_type' => 'value_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -382,6 +354,25 @@ $result_trees{'cpp_directives_line_value_macro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'hash'
+                          }
+                        ],
+                        'type' => 'brace_container'
+                      }
+                    ],
+                    'cmdname' => 'value'
+                  },
+                  'line' => '#',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 1,
diff --git a/tp/t/results/macro/definfoenclose_replaced_by_macro.pl 
b/tp/t/results/macro/definfoenclose_replaced_by_macro.pl
index 2296117795..f2c8fb5b96 100644
--- a/tp/t/results/macro/definfoenclose_replaced_by_macro.pl
+++ b/tp/t/results/macro/definfoenclose_replaced_by_macro.pl
@@ -106,30 +106,6 @@ $result_trees{'definfoenclose_replaced_by_macro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'aa'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'phoo'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -138,6 +114,27 @@ $result_trees{'definfoenclose_replaced_by_macro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'aa'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'phoo'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 6,
diff --git a/tp/t/results/macro/empty_macro_argument.pl 
b/tp/t/results/macro/empty_macro_argument.pl
index 112037e983..3a35ab2c44 100644
--- a/tp/t/results/macro/empty_macro_argument.pl
+++ b/tp/t/results/macro/empty_macro_argument.pl
@@ -63,25 +63,6 @@ $result_trees{'empty_macro_argument'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'mymacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -90,6 +71,22 @@ $result_trees{'empty_macro_argument'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'mymacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 4,
@@ -255,25 +252,6 @@ $result_trees{'empty_macro_argument'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 5,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'mytwo'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -282,6 +260,22 @@ $result_trees{'empty_macro_argument'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 5,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'mytwo'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 5,
                   'position' => 2,
diff --git a/tp/t/results/macro/expand_two_same.pl 
b/tp/t/results/macro/expand_two_same.pl
index 4a425a3b1c..1d137a1a1a 100644
--- a/tp/t/results/macro/expand_two_same.pl
+++ b/tp/t/results/macro/expand_two_same.pl
@@ -73,6 +73,10 @@ $result_trees{'expand_two_same'} = {
         },
         {
           'contents' => [
+            {
+              'text' => 'Call macro2
+'
+            },
             {
               'source_marks' => [
                 {
@@ -103,15 +107,10 @@ arg}
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 12,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
               ],
-              'text' => 'Call macro2
-'
-            },
-            {
               'text' => 'With a doubles arg a simple '
             },
             {
@@ -190,6 +189,10 @@ arg}
         },
         {
           'contents' => [
+            {
+              'text' => 'Call macro2 with 2 args
+'
+            },
             {
               'source_marks' => [
                 {
@@ -218,16 +221,9 @@ arg}
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 24,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => 'Call macro2 with 2 args
-'
-            },
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 2,
                   'position' => 72,
diff --git a/tp/t/results/macro/expansion_order.pl 
b/tp/t/results/macro/expansion_order.pl
index a445bcce10..1ebd8d6c8b 100644
--- a/tp/t/results/macro/expansion_order.pl
+++ b/tp/t/results/macro/expansion_order.pl
@@ -130,47 +130,6 @@ $result_trees{'expansion_order'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'ab'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'bidule'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'machin'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -179,6 +138,43 @@ $result_trees{'expansion_order'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'ab'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'bidule'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'machin'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 6,
diff --git a/tp/t/results/macro/form_feeds.pl b/tp/t/results/macro/form_feeds.pl
index 8a84901623..d3551fd016 100644
--- a/tp/t/results/macro/form_feeds.pl
+++ b/tp/t/results/macro/form_feeds.pl
@@ -133,58 +133,57 @@ $result_trees{'form_feeds'} = {
           }
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => 'arg1'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => '  '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => 'arg1'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => '  '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'arg2'
+                        'contents' => [
+                          {
+                            'text' => 'arg2'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
+                      'command_name' => 'mymacro',
+                      'spaces_after_cmd_before_arg' => {
+                        'text' => '  '
                       }
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'mymacro',
-                  'spaces_after_cmd_before_arg' => {
-                    'text' => '  '
-                  }
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'f arg1'
             }
           ],
@@ -216,33 +215,6 @@ $result_trees{'form_feeds'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'a@{rgline'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'oneargmacro',
-                  'spaces_before_argument' => {
-                    'text' => '   '
-                  }
-                },
-                'type' => 'macro_call_line'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -250,6 +222,32 @@ $result_trees{'form_feeds'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'a@{rgline'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'oneargmacro',
+                      'spaces_before_argument' => {
+                        'text' => '   '
+                      }
+                    },
+                    'type' => 'macro_call_line'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'g a'
             },
             {
diff --git a/tp/t/results/macro/ignored_macro_definition.pl 
b/tp/t/results/macro/ignored_macro_definition.pl
index feb5fc9aed..580297c359 100644
--- a/tp/t/results/macro/ignored_macro_definition.pl
+++ b/tp/t/results/macro/ignored_macro_definition.pl
@@ -115,25 +115,6 @@ in inlinefmt tex
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'mymacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -142,6 +123,22 @@ in inlinefmt tex
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'mymacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 7,
diff --git a/tp/t/results/macro/implicit_quoting_recursion.pl 
b/tp/t/results/macro/implicit_quoting_recursion.pl
index bc3fb86254..38b4400060 100644
--- a/tp/t/results/macro/implicit_quoting_recursion.pl
+++ b/tp/t/results/macro/implicit_quoting_recursion.pl
@@ -71,221 +71,213 @@ $result_trees{'implicit_quoting_recursion'} = {
           }
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => '@cat{@cat{@cat{@cat{@cat{na, to}, po}, co}, 
tu}, oto}'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => '@cat{@cat{@cat{@cat{@cat{na, to}, po}, 
co}, tu}, oto}'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'tam'
+                        'contents' => [
+                          {
+                            'text' => 'tam'
+                          }
+                        ],
+                        'type' => 'brace_arg'
                       }
                     ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'cat'
+                    'info' => {
+                      'command_name' => 'cat'
+                    },
+                    'type' => 'rmacro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
                 },
-                'type' => 'rmacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => '@cat{@cat{@cat{@cat{na, to}, po}, co}, tu}'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => '@cat{@cat{@cat{@cat{na, to}, po}, co}, 
tu}'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'oto'
+                        'contents' => [
+                          {
+                            'text' => 'oto'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
+                      'command_name' => 'cat'
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'cat'
+                    'type' => 'rmacro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
                 },
-                'type' => 'rmacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 3,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+                {
+                  'counter' => 3,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => '@cat{@cat{@cat{na, to}, po}, co}'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => '@cat{@cat{@cat{na, to}, po}, co}'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'tu'
+                        'contents' => [
+                          {
+                            'text' => 'tu'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
+                      'command_name' => 'cat'
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'cat'
+                    'type' => 'rmacro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
                 },
-                'type' => 'rmacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 4,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+                {
+                  'counter' => 4,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => '@cat{@cat{na, to}, po}'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => '@cat{@cat{na, to}, po}'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'co'
+                        'contents' => [
+                          {
+                            'text' => 'co'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
+                      'command_name' => 'cat'
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'cat'
+                    'type' => 'rmacro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
                 },
-                'type' => 'rmacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 5,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+                {
+                  'counter' => 5,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => '@cat{na, to}'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => '@cat{na, to}'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'po'
+                        'contents' => [
+                          {
+                            'text' => 'po'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
+                      'command_name' => 'cat'
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'cat'
+                    'type' => 'rmacro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
                 },
-                'type' => 'rmacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 6,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+                {
+                  'counter' => 6,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => 'na'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => 'na'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'to'
+                        'contents' => [
+                          {
+                            'text' => 'to'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
+                      'command_name' => 'cat'
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'cat'
+                    'type' => 'rmacro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
                 },
-                'type' => 'rmacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
-              'source_marks' => [
                 {
                   'counter' => 6,
                   'position' => 4,
diff --git a/tp/t/results/macro/line_after_recursive_call.pl 
b/tp/t/results/macro/line_after_recursive_call.pl
index 8f4e6eb1e1..3fd1a3ab6d 100644
--- a/tp/t/results/macro/line_after_recursive_call.pl
+++ b/tp/t/results/macro/line_after_recursive_call.pl
@@ -70,24 +70,24 @@ $result_trees{'line_after_recursive_call'} = {
           },
           'source_info' => {
             'line_nr' => 1
-          },
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'info' => {
-                  'command_name' => 'mac'
-                },
-                'type' => 'macro_call'
-              },
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ]
+          }
         },
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'info' => {
+                      'command_name' => 'mac'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'ggg
 '
             },
diff --git a/tp/t/results/macro/macro_alias_definfoenclose_defindex.pl 
b/tp/t/results/macro/macro_alias_definfoenclose_defindex.pl
index 3fb4e97bd8..32fa1df14c 100644
--- a/tp/t/results/macro/macro_alias_definfoenclose_defindex.pl
+++ b/tp/t/results/macro/macro_alias_definfoenclose_defindex.pl
@@ -187,35 +187,33 @@ $result_trees{'macro_alias_definfoenclose_defindex'} = {
           },
           'source_info' => {
             'line_nr' => 7
-          },
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'maa'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'phooindex'
-                },
-                'type' => 'macro_call'
-              },
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ]
+          }
         },
         {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'maa'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'phooindex'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 7,
@@ -572,38 +570,36 @@ $result_trees{'macro_alias_definfoenclose_defindex'} = {
           },
           'source_info' => {
             'line_nr' => 24
-          },
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'mff'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'phooindex',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'macro_call_line'
-              },
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ]
+          }
         },
         {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'mff'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'phooindex',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'macro_call_line'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 7,
@@ -750,38 +746,36 @@ $result_trees{'macro_alias_definfoenclose_defindex'} = {
           },
           'source_info' => {
             'line_nr' => 32
-          },
-          'source_marks' => [
-            {
-              'counter' => 3,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'mhh'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'phooindex',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'macro_call_line'
-              },
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ]
+          }
         },
         {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 3,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'mhh'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'phooindex',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'macro_call_line'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 3,
                   'position' => 7,
@@ -1132,35 +1126,33 @@ $result_trees{'macro_alias_definfoenclose_defindex'} = {
           },
           'source_info' => {
             'line_nr' => 49
-          },
-          'source_marks' => [
-            {
-              'counter' => 4,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'mmm'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'phooindex'
-                },
-                'type' => 'macro_call'
-              },
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ]
+          }
         },
         {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 4,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'mmm'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'phooindex'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 4,
                   'position' => 7,
diff --git a/tp/t/results/macro/macro_call_empty_middle_arg.pl 
b/tp/t/results/macro/macro_call_empty_middle_arg.pl
index 38b0ad394e..0b77ca4a9b 100644
--- a/tp/t/results/macro/macro_call_empty_middle_arg.pl
+++ b/tp/t/results/macro/macro_call_empty_middle_arg.pl
@@ -85,63 +85,62 @@ $result_trees{'macro_call_empty_middle_arg'} = {
           }
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => 'j'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => 'j'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'k'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
+                        'contents' => [
+                          {
+                            'text' => 'k'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      },
                       {
-                        'text' => 'l'
+                        'contents' => [
+                          {
+                            'text' => 'l'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
+                      'command_name' => 'threea'
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'threea'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first j,
 '
             },
@@ -165,51 +164,6 @@ $result_trees{'macro_call_empty_middle_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'm'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'n'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'threea'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -217,6 +171,50 @@ $result_trees{'macro_call_empty_middle_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'm'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'n'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'threea'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first m,
 '
             },
@@ -240,41 +238,6 @@ $result_trees{'macro_call_empty_middle_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 3,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'o'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'p'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'threea'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -282,6 +245,40 @@ $result_trees{'macro_call_empty_middle_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'o'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'p'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'threea'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first o,
 '
             },
diff --git a/tp/t/results/macro/macro_call_empty_two_arg.pl 
b/tp/t/results/macro/macro_call_empty_two_arg.pl
index 199e24c21f..b3ca2f402f 100644
--- a/tp/t/results/macro/macro_call_empty_two_arg.pl
+++ b/tp/t/results/macro/macro_call_empty_two_arg.pl
@@ -76,25 +76,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -102,6 +83,24 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
@@ -121,30 +120,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -152,6 +127,29 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
@@ -171,33 +169,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 3,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -205,6 +176,32 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
@@ -224,33 +221,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 4,
-              'element' => {
-                'args' => [
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -258,6 +228,32 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 4,
+                  'element' => {
+                    'args' => [
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
@@ -277,38 +273,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 5,
-              'element' => {
-                'args' => [
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -316,6 +280,37 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 5,
+                  'element' => {
+                    'args' => [
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
@@ -335,38 +330,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 6,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'g'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -374,6 +337,37 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 6,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'g'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first g,
 '
             },
@@ -393,33 +387,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 7,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'h'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -427,6 +394,32 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 7,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'h'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first h,
 '
             },
@@ -446,38 +439,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 8,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'i'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -485,6 +446,37 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 8,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'i'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
@@ -504,43 +496,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 9,
-              'element' => {
-                'args' => [
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'j'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -548,6 +503,42 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 9,
+                  'element' => {
+                    'args' => [
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'j'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
@@ -567,33 +558,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 10,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'k'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -601,6 +565,32 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 10,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'k'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
@@ -620,38 +610,6 @@ $result_trees{'macro_call_empty_two_arg'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 11,
-              'element' => {
-                'args' => [
-                  {
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'l'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoa'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -659,6 +617,37 @@ $result_trees{'macro_call_empty_two_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 11,
+                  'element' => {
+                    'args' => [
+                      {
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'l'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoa'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first ,
 '
             },
diff --git a/tp/t/results/macro/macro_end_call_in_ignored_inlinefmt.pl 
b/tp/t/results/macro/macro_end_call_in_ignored_inlinefmt.pl
index 398b95cb0a..438f51ad8d 100644
--- a/tp/t/results/macro/macro_end_call_in_ignored_inlinefmt.pl
+++ b/tp/t/results/macro/macro_end_call_in_ignored_inlinefmt.pl
@@ -63,25 +63,6 @@ $result_trees{'macro_end_call_in_ignored_inlinefmt'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'startfmt'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -89,6 +70,24 @@ $result_trees{'macro_end_call_in_ignored_inlinefmt'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'startfmt'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'Para '
             },
             {
diff --git a/tp/t/results/macro/macro_end_call_in_ignored_inlinefmtifelse.pl 
b/tp/t/results/macro/macro_end_call_in_ignored_inlinefmtifelse.pl
index 55bf23a3d7..2ecdbd53eb 100644
--- a/tp/t/results/macro/macro_end_call_in_ignored_inlinefmtifelse.pl
+++ b/tp/t/results/macro/macro_end_call_in_ignored_inlinefmtifelse.pl
@@ -63,25 +63,6 @@ $result_trees{'macro_end_call_in_ignored_inlinefmtifelse'} = 
{
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'inlinefirstfmt'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -89,6 +70,24 @@ $result_trees{'macro_end_call_in_ignored_inlinefmtifelse'} = 
{
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'inlinefirstfmt'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'Toto '
             },
             {
diff --git a/tp/t/results/macro/macro_end_call_in_ignored_inlineraw.pl 
b/tp/t/results/macro/macro_end_call_in_ignored_inlineraw.pl
index d5fddad35c..36b5584a25 100644
--- a/tp/t/results/macro/macro_end_call_in_ignored_inlineraw.pl
+++ b/tp/t/results/macro/macro_end_call_in_ignored_inlineraw.pl
@@ -63,25 +63,6 @@ $result_trees{'macro_end_call_in_ignored_inlineraw'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'startraw'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -89,6 +70,24 @@ $result_trees{'macro_end_call_in_ignored_inlineraw'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'startraw'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'Para '
             },
             {
diff --git a/tp/t/results/macro/macro_expands_to_empty.pl 
b/tp/t/results/macro/macro_expands_to_empty.pl
index eaadd73860..df10a61873 100644
--- a/tp/t/results/macro/macro_expands_to_empty.pl
+++ b/tp/t/results/macro/macro_expands_to_empty.pl
@@ -93,28 +93,6 @@ $result_trees{'macro_expands_to_empty'} = {
               'counter' => 1,
               'sourcemark_type' => 'macro_expansion',
               'status' => 'end'
-            },
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'aa'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'foo'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
             }
           ],
           'text' => '
@@ -125,6 +103,27 @@ $result_trees{'macro_expands_to_empty'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'aa'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'foo'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 2,
diff --git a/tp/t/results/macro/macro_in_brace_command.pl 
b/tp/t/results/macro/macro_in_brace_command.pl
index d66e5378db..97f129d8b0 100644
--- a/tp/t/results/macro/macro_in_brace_command.pl
+++ b/tp/t/results/macro/macro_in_brace_command.pl
@@ -177,12 +177,7 @@ $result_trees{'macro_in_brace_command'} = {
                                   },
                                   'sourcemark_type' => 'macro_expansion',
                                   'status' => 'start'
-                                }
-                              ],
-                              'text' => ''
-                            },
-                            {
-                              'source_marks' => [
+                                },
                                 {
                                   'counter' => 1,
                                   'position' => 13,
diff --git a/tp/t/results/macro/macro_in_macro_arg.pl 
b/tp/t/results/macro/macro_in_macro_arg.pl
index a9f6f2540e..8c4cdaf2a7 100644
--- a/tp/t/results/macro/macro_in_macro_arg.pl
+++ b/tp/t/results/macro/macro_in_macro_arg.pl
@@ -201,47 +201,6 @@ $result_trees{'macro_in_macro_arg'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@macroone{}text for macro2'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macrothree'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macroone'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -250,6 +209,43 @@ $result_trees{'macro_in_macro_arg'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@macroone{}text for macro2'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macrothree'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macroone'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 3,
                   'element' => {
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 1ffb7364f2..d7bba5cd8f 100644
--- a/tp/t/results/macro/macro_in_macro_arg_simpler.pl
+++ b/tp/t/results/macro/macro_in_macro_arg_simpler.pl
@@ -134,47 +134,6 @@ $result_trees{'macro_in_macro_arg_simpler'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@macrooneone{}text for macro2'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macrothree'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macrooneone'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -183,6 +142,43 @@ $result_trees{'macro_in_macro_arg_simpler'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@macrooneone{}text for macro2'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macrothree'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macrooneone'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 9,
diff --git a/tp/t/results/macro/macro_name_with_digit.pl 
b/tp/t/results/macro/macro_name_with_digit.pl
index 274a8e4786..9ffec8cd26 100644
--- a/tp/t/results/macro/macro_name_with_digit.pl
+++ b/tp/t/results/macro/macro_name_with_digit.pl
@@ -125,33 +125,6 @@ $result_trees{'macro_name_with_digit'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'some thing @macro1{}'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macro11',
-                  'spaces_before_argument' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'macro_call_line'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -160,6 +133,30 @@ $result_trees{'macro_name_with_digit'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'some thing @macro1{}'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macro11',
+                      'spaces_before_argument' => {
+                        'text' => ' '
+                      }
+                    },
+                    'type' => 'macro_call_line'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'element' => {
diff --git a/tp/t/results/macro/macro_name_with_hyphen.pl 
b/tp/t/results/macro/macro_name_with_hyphen.pl
index 801898e077..ad06dba711 100644
--- a/tp/t/results/macro/macro_name_with_hyphen.pl
+++ b/tp/t/results/macro/macro_name_with_hyphen.pl
@@ -71,43 +71,6 @@ $result_trees{'macro_name_with_hyphen'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'blah'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@code{bli-bli}'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macro-one'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -115,6 +78,42 @@ $result_trees{'macro_name_with_hyphen'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'blah'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@code{bli-bli}'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macro-one'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'This blah and that '
             },
             {
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 ab2565e213..d7559cbc78 100644
--- a/tp/t/results/macro/macro_no_arg_bad_expansion.pl
+++ b/tp/t/results/macro/macro_no_arg_bad_expansion.pl
@@ -63,20 +63,6 @@ $result_trees{'macro_no_arg_bad_expansion'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'info' => {
-                  'command_name' => 'testone'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -85,6 +71,17 @@ $result_trees{'macro_no_arg_bad_expansion'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'info' => {
+                      'command_name' => 'testone'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 4,
diff --git a/tp/t/results/macro/macro_no_arg_expansion.pl 
b/tp/t/results/macro/macro_no_arg_expansion.pl
index cbd4a51842..9ce65e4098 100644
--- a/tp/t/results/macro/macro_no_arg_expansion.pl
+++ b/tp/t/results/macro/macro_no_arg_expansion.pl
@@ -63,25 +63,6 @@ $result_trees{'macro_no_arg_expansion'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'testone'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -90,6 +71,22 @@ $result_trees{'macro_no_arg_expansion'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'testone'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 4,
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 7cea98e1af..85c3f41fcc 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
@@ -67,25 +67,6 @@ $result_trees{'macro_one_arg_end_of_file'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'onearg'
-                },
-                'type' => 'macro_call_line'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -94,6 +75,22 @@ $result_trees{'macro_one_arg_end_of_file'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'onearg'
+                    },
+                    'type' => 'macro_call_line'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 5,
diff --git a/tp/t/results/macro/macro_zero.pl b/tp/t/results/macro/macro_zero.pl
index 28ef87ec8e..8ed3d254e2 100644
--- a/tp/t/results/macro/macro_zero.pl
+++ b/tp/t/results/macro/macro_zero.pl
@@ -69,6 +69,10 @@ $result_trees{'macro_zero'} = {
         },
         {
           'contents' => [
+            {
+              'text' => 'Macro
+'
+            },
             {
               'source_marks' => [
                 {
@@ -84,16 +88,9 @@ $result_trees{'macro_zero'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 6,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => 'Macro
-'
-            },
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 1,
                   'position' => 1,
diff --git a/tp/t/results/macro/no_macrobody.pl 
b/tp/t/results/macro/no_macrobody.pl
index 821d2b7d10..90afe94efe 100644
--- a/tp/t/results/macro/no_macrobody.pl
+++ b/tp/t/results/macro/no_macrobody.pl
@@ -103,36 +103,6 @@ $result_trees{'no_macrobody'} = {
           'type' => 'empty_line'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'arg brace'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'nomacrobody'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 2,
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'end'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -140,6 +110,34 @@ $result_trees{'no_macrobody'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'arg brace'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'nomacrobody'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 2,
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => '.
 '
             }
diff --git a/tp/t/results/macro/protect_comma_macro_line.pl 
b/tp/t/results/macro/protect_comma_macro_line.pl
index bd03359059..0e73fb95df 100644
--- a/tp/t/results/macro/protect_comma_macro_line.pl
+++ b/tp/t/results/macro/protect_comma_macro_line.pl
@@ -82,33 +82,6 @@ $result_trees{'protect_comma_macro_line'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'arg,  comma \\,'
-                      }
-                    ],
-                    'type' => 'line_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macrotwo',
-                  'spaces_before_argument' => {
-                    'text' => '  '
-                  }
-                },
-                'type' => 'macro_call_line'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -116,6 +89,32 @@ $result_trees{'protect_comma_macro_line'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'arg,  comma \\,'
+                          }
+                        ],
+                        'type' => 'line_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'macrotwo',
+                      'spaces_before_argument' => {
+                        'text' => '  '
+                      }
+                    },
+                    'type' => 'macro_call_line'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'we get arg,  comma \\, and another arg,  comma \\,
 '
             },
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 dee0c74478..4053cadcb2 100644
--- a/tp/t/results/macro/protect_in_body_line_arg.pl
+++ b/tp/t/results/macro/protect_in_body_line_arg.pl
@@ -71,20 +71,6 @@ $result_trees{'protect_in_body_line_arg'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'info' => {
-                  'command_name' => 'macroone'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -92,6 +78,19 @@ $result_trees{'protect_in_body_line_arg'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'info' => {
+                      'command_name' => 'macroone'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'result: '
             },
             {
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 4cfacccee5..7b7b126de8 100644
--- a/tp/t/results/macro/protect_in_body_one_arg.pl
+++ b/tp/t/results/macro/protect_in_body_one_arg.pl
@@ -71,45 +71,44 @@ $result_trees{'protect_in_body_one_arg'} = {
           }
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => '@samp{f\\irst arg}'
+                        'contents' => [
+                          {
+                            'text' => '@samp{f\\irst arg}'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
+                      'command_name' => 'macroone',
+                      'spaces_after_cmd_before_arg' => {
                         'text' => ' '
                       }
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macroone',
-                  'spaces_after_cmd_before_arg' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'result: '
             },
             {
diff --git a/tp/t/results/macro/recursive_call_in_argument.pl 
b/tp/t/results/macro/recursive_call_in_argument.pl
index 45428f3112..2b5098b3d7 100644
--- a/tp/t/results/macro/recursive_call_in_argument.pl
+++ b/tp/t/results/macro/recursive_call_in_argument.pl
@@ -67,30 +67,6 @@ $result_trees{'recursive_call_in_argument'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@anorecurse{}'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'anorecurse'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -99,6 +75,27 @@ $result_trees{'recursive_call_in_argument'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@anorecurse{}'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'anorecurse'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 1,
diff --git a/tp/t/results/macro/simple_imbricated_macro.pl 
b/tp/t/results/macro/simple_imbricated_macro.pl
index 5b60e95205..56cc14b2b0 100644
--- a/tp/t/results/macro/simple_imbricated_macro.pl
+++ b/tp/t/results/macro/simple_imbricated_macro.pl
@@ -78,25 +78,6 @@ $result_trees{'simple_imbricated_macro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'truc'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -104,6 +85,24 @@ $result_trees{'simple_imbricated_macro'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'truc'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'truc.
 '
             },
@@ -174,25 +173,6 @@ $result_trees{'simple_imbricated_macro'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'bidule'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -201,6 +181,22 @@ $result_trees{'simple_imbricated_macro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'bidule'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 7,
diff --git a/tp/t/results/macro/simple_imbricated_macro_rmacro.pl 
b/tp/t/results/macro/simple_imbricated_macro_rmacro.pl
index 99d26dd12c..d12da05a13 100644
--- a/tp/t/results/macro/simple_imbricated_macro_rmacro.pl
+++ b/tp/t/results/macro/simple_imbricated_macro_rmacro.pl
@@ -78,25 +78,6 @@ $result_trees{'simple_imbricated_macro_rmacro'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'truc'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -104,6 +85,24 @@ $result_trees{'simple_imbricated_macro_rmacro'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'truc'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'truc.
 '
             },
@@ -174,25 +173,6 @@ $result_trees{'simple_imbricated_macro_rmacro'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'bidule'
-                },
-                'type' => 'rmacro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -201,6 +181,22 @@ $result_trees{'simple_imbricated_macro_rmacro'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'bidule'
+                    },
+                    'type' => 'rmacro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 2,
                   'position' => 7,
diff --git a/tp/t/results/macro/too_much_args.pl 
b/tp/t/results/macro/too_much_args.pl
index 52bd4d8ce6..60cc553cae 100644
--- a/tp/t/results/macro/too_much_args.pl
+++ b/tp/t/results/macro/too_much_args.pl
@@ -76,43 +76,6 @@ $result_trees{'too_much_args'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'one'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'two, three'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'twoargs'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -120,6 +83,42 @@ $result_trees{'too_much_args'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'one'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'two, three'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'twoargs'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first arg: one
 '
             },
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 8fbe52d9ae..a4ae427a12 100644
--- a/tp/t/results/macro/two_macros_on_a_line.pl
+++ b/tp/t/results/macro/two_macros_on_a_line.pl
@@ -173,6 +173,10 @@ $result_trees{'two_macros_on_a_line'} = {
             {
               'cmdname' => '}'
             },
+            {
+              'text' => '
+'
+            },
             {
               'source_marks' => [
                 {
@@ -188,16 +192,9 @@ $result_trees{'two_macros_on_a_line'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 1,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => '
-'
-            },
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 1,
                   'position' => 10,
@@ -259,6 +256,10 @@ $result_trees{'two_macros_on_a_line'} = {
             {
               'cmdname' => '}'
             },
+            {
+              'text' => '
+'
+            },
             {
               'source_marks' => [
                 {
@@ -269,16 +270,9 @@ $result_trees{'two_macros_on_a_line'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 1,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => '
-'
-            },
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 3,
                   'position' => 10,
@@ -340,6 +334,10 @@ $result_trees{'two_macros_on_a_line'} = {
             {
               'cmdname' => '@'
             },
+            {
+              'text' => 'mymacro
+'
+            },
             {
               'source_marks' => [
                 {
@@ -355,16 +353,9 @@ $result_trees{'two_macros_on_a_line'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 8,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => 'mymacro
-'
-            },
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 5,
                   'position' => 10,
@@ -403,6 +394,10 @@ $result_trees{'two_macros_on_a_line'} = {
         },
         {
           'contents' => [
+            {
+              'text' => 'with args
+'
+            },
             {
               'source_marks' => [
                 {
@@ -429,15 +424,10 @@ in macro'
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 10,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
               ],
-              'text' => 'with args
-'
-            },
-            {
               'text' => 'in with args
 '
             },
diff --git a/tp/t/results/macro/unpaired_backslash_in_macro_body.pl 
b/tp/t/results/macro/unpaired_backslash_in_macro_body.pl
index cc657c36c3..40de8a9d68 100644
--- a/tp/t/results/macro/unpaired_backslash_in_macro_body.pl
+++ b/tp/t/results/macro/unpaired_backslash_in_macro_body.pl
@@ -72,25 +72,6 @@ $result_trees{'unpaired_backslash_in_macro_body'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'mymacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -98,6 +79,24 @@ $result_trees{'unpaired_backslash_in_macro_body'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'mymacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'In macro not arg
 '
             },
diff --git a/tp/t/results/macro/verb_with_arobase_in_macro_call.pl 
b/tp/t/results/macro/verb_with_arobase_in_macro_call.pl
index 11a15f2a17..685e2c0a50 100644
--- a/tp/t/results/macro/verb_with_arobase_in_macro_call.pl
+++ b/tp/t/results/macro/verb_with_arobase_in_macro_call.pl
@@ -76,43 +76,6 @@ $result_trees{'verb_with_arobase_in_macro_call'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@verb{, commas ,}'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  },
-                  {
-                    'contents' => [
-                      {
-                        'text' => '@verb{@ arobase @}'
-                      }
-                    ],
-                    'info' => {
-                      'spaces_before_argument' => {
-                        'text' => ' '
-                      }
-                    },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'showarg'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -120,6 +83,42 @@ $result_trees{'verb_with_arobase_in_macro_call'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@verb{, commas ,}'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      },
+                      {
+                        'contents' => [
+                          {
+                            'text' => '@verb{@ arobase @}'
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'showarg'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'first: '
             },
             {
diff --git 
a/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl 
b/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
index ec161d773f..9eb8a54e59 100644
--- a/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
+++ b/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
@@ -246,46 +246,43 @@ $result_trees{'codequoteundirected_codequotebacktick'} = {
               ],
               'cmdname' => 'copying',
               'contents' => [
-                {
-                  'source_marks' => [
-                    {
-                      'counter' => 1,
-                      'element' => {
-                        'args' => [
-                          {
-                            'type' => 'brace_arg'
-                          }
-                        ],
-                        'info' => {
-                          'command_name' => 'allquotes'
-                        },
-                        'type' => 'macro_call'
-                      },
-                      'sourcemark_type' => 'macro_expansion',
-                      'status' => 'start'
-                    },
-                    {
-                      'counter' => 2,
-                      'element' => {
-                        'args' => [
-                          {
-                            'type' => 'brace_arg'
-                          }
-                        ],
-                        'info' => {
-                          'command_name' => 'quotes'
-                        },
-                        'type' => 'macro_call'
-                      },
-                      'sourcemark_type' => 'macro_expansion',
-                      'status' => 'start'
-                    }
-                  ],
-                  'text' => ''
-                },
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 1,
+                          'element' => {
+                            'args' => [
+                              {
+                                'type' => 'brace_arg'
+                              }
+                            ],
+                            'info' => {
+                              'command_name' => 'allquotes'
+                            },
+                            'type' => 'macro_call'
+                          },
+                          'sourcemark_type' => 'macro_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 2,
+                          'element' => {
+                            'args' => [
+                              {
+                                'type' => 'brace_arg'
+                              }
+                            ],
+                            'info' => {
+                              'command_name' => 'quotes'
+                            },
+                            'type' => 'macro_call'
+                          },
+                          'sourcemark_type' => 'macro_expansion',
+                          'status' => 'start'
+                        }
+                      ],
                       'text' => '``simple-double--three---four----\'\' 
`simple\' quotedblleft: '
                     },
                     {
@@ -641,29 +638,29 @@ $result_trees{'codequoteundirected_codequotebacktick'} = {
                   'source_info' => {
                     'line_nr' => 31,
                     'macro' => 'allquotes'
-                  },
-                  'source_marks' => [
-                    {
-                      'counter' => 3,
-                      'element' => {
-                        'args' => [
-                          {
-                            'type' => 'brace_arg'
-                          }
-                        ],
-                        'info' => {
-                          'command_name' => 'quotes'
-                        },
-                        'type' => 'macro_call'
-                      },
-                      'sourcemark_type' => 'macro_expansion',
-                      'status' => 'start'
-                    }
-                  ]
+                  }
                 },
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 3,
+                          'element' => {
+                            'args' => [
+                              {
+                                'type' => 'brace_arg'
+                              }
+                            ],
+                            'info' => {
+                              'command_name' => 'quotes'
+                            },
+                            'type' => 'macro_call'
+                          },
+                          'sourcemark_type' => 'macro_expansion',
+                          'status' => 'start'
+                        }
+                      ],
                       'text' => '``simple-double--three---four----\'\' 
`simple\' quotedblleft: '
                     },
                     {
@@ -1047,29 +1044,29 @@ $result_trees{'codequoteundirected_codequotebacktick'} 
= {
                   'source_info' => {
                     'line_nr' => 31,
                     'macro' => 'allquotes'
-                  },
-                  'source_marks' => [
-                    {
-                      'counter' => 4,
-                      'element' => {
-                        'args' => [
-                          {
-                            'type' => 'brace_arg'
-                          }
-                        ],
-                        'info' => {
-                          'command_name' => 'quotes'
-                        },
-                        'type' => 'macro_call'
-                      },
-                      'sourcemark_type' => 'macro_expansion',
-                      'status' => 'start'
-                    }
-                  ]
+                  }
                 },
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 4,
+                          'element' => {
+                            'args' => [
+                              {
+                                'type' => 'brace_arg'
+                              }
+                            ],
+                            'info' => {
+                              'command_name' => 'quotes'
+                            },
+                            'type' => 'macro_call'
+                          },
+                          'sourcemark_type' => 'macro_expansion',
+                          'status' => 'start'
+                        }
+                      ],
                       'text' => '``simple-double--three---four----\'\' 
`simple\' quotedblleft: '
                     },
                     {
@@ -1559,42 +1556,6 @@ $result_trees{'codequoteundirected_codequotebacktick'} = 
{
       'cmdname' => 'chapter',
       'contents' => [
         {
-          'source_marks' => [
-            {
-              'counter' => 5,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'allquotes'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 6,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'quotes'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -1602,6 +1563,40 @@ $result_trees{'codequoteundirected_codequotebacktick'} = 
{
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 5,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'allquotes'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 6,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'quotes'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => '``simple-double--three---four----\'\' `simple\' 
quotedblleft: '
             },
             {
@@ -1957,29 +1952,29 @@ $result_trees{'codequoteundirected_codequotebacktick'} 
= {
           'source_info' => {
             'line_nr' => 45,
             'macro' => 'allquotes'
-          },
-          'source_marks' => [
-            {
-              'counter' => 7,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'quotes'
-                },
-                'type' => 'macro_call'
-              },
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ]
+          }
         },
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 7,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'quotes'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => '``simple-double--three---four----\'\' `simple\' 
quotedblleft: '
             },
             {
@@ -2363,29 +2358,29 @@ $result_trees{'codequoteundirected_codequotebacktick'} 
= {
           'source_info' => {
             'line_nr' => 45,
             'macro' => 'allquotes'
-          },
-          'source_marks' => [
-            {
-              'counter' => 8,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'quotes'
-                },
-                'type' => 'macro_call'
-              },
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ]
+          }
         },
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 8,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'quotes'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => '``simple-double--three---four----\'\' `simple\' 
quotedblleft: '
             },
             {
@@ -3048,7 +3043,9 @@ $result_trees{'codequoteundirected_codequotebacktick'} = {
                   'source_info' => {
                     'line_nr' => 48,
                     'macro' => 'allquotes'
-                  },
+                  }
+                },
+                {
                   'source_marks' => [
                     {
                       'counter' => 11,
@@ -3066,9 +3063,7 @@ $result_trees{'codequoteundirected_codequotebacktick'} = {
                       'sourcemark_type' => 'macro_expansion',
                       'status' => 'start'
                     }
-                  ]
-                },
-                {
+                  ],
                   'text' => '``simple-double--three---four----\'\' `simple\' 
quotedblleft: '
                 },
                 {
@@ -3454,7 +3449,9 @@ $result_trees{'codequoteundirected_codequotebacktick'} = {
                   'source_info' => {
                     'line_nr' => 48,
                     'macro' => 'allquotes'
-                  },
+                  }
+                },
+                {
                   'source_marks' => [
                     {
                       'counter' => 12,
@@ -3472,9 +3469,7 @@ $result_trees{'codequoteundirected_codequotebacktick'} = {
                       'sourcemark_type' => 'macro_expansion',
                       'status' => 'start'
                     }
-                  ]
-                },
-                {
+                  ],
                   'text' => '``simple-double--three---four----\'\' `simple\' 
quotedblleft: '
                 },
                 {
diff --git a/tp/t/results/misc_commands/test_allowcodebreaks.pl 
b/tp/t/results/misc_commands/test_allowcodebreaks.pl
index 9774184d41..fcb8527203 100644
--- a/tp/t/results/misc_commands/test_allowcodebreaks.pl
+++ b/tp/t/results/misc_commands/test_allowcodebreaks.pl
@@ -232,6 +232,10 @@ $result_trees{'test_allowcodebreaks'} = {
         },
         {
           'contents' => [
+            {
+              'text' => 'Before first allowcodebreaks
+'
+            },
             {
               'source_marks' => [
                 {
@@ -252,15 +256,10 @@ $result_trees{'test_allowcodebreaks'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 29,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
               ],
-              'text' => 'Before first allowcodebreaks
-'
-            },
-            {
               'text' => 'Out of code --- out-of-code.
 '
             },
@@ -705,6 +704,10 @@ $result_trees{'test_allowcodebreaks'} = {
         },
         {
           'contents' => [
+            {
+              'text' => 'After false
+'
+            },
             {
               'source_marks' => [
                 {
@@ -725,15 +728,10 @@ $result_trees{'test_allowcodebreaks'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 12,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
               ],
-              'text' => 'After false
-'
-            },
-            {
               'text' => 'Out of code --- out-of-code.
 '
             },
@@ -1619,6 +1617,10 @@ $result_trees{'test_allowcodebreaks'} = {
         },
         {
           'contents' => [
+            {
+              'text' => 'After true
+'
+            },
             {
               'source_marks' => [
                 {
@@ -1639,15 +1641,10 @@ $result_trees{'test_allowcodebreaks'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 11,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
               ],
-              'text' => 'After true
-'
-            },
-            {
               'text' => 'Out of code --- out-of-code.
 '
             },
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 55a6531ec8..60c8e4d61c 100644
--- a/tp/t/results/plaintext_tests/star_at_command_formatting.pl
+++ b/tp/t/results/plaintext_tests/star_at_command_formatting.pl
@@ -118,25 +118,6 @@ $result_trees{'star_at_command_formatting'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'mymacro'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -144,6 +125,24 @@ $result_trees{'star_at_command_formatting'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'mymacro'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'Some text '
             },
             {
@@ -386,6 +385,10 @@ $result_trees{'star_at_command_formatting'} = {
           'contents' => [
             {
               'contents' => [
+                {
+                  'text' => 'Example
+'
+                },
                 {
                   'source_marks' => [
                     {
@@ -401,15 +404,10 @@ $result_trees{'star_at_command_formatting'} = {
                         },
                         'type' => 'macro_call'
                       },
-                      'position' => 8,
                       'sourcemark_type' => 'macro_expansion',
                       'status' => 'start'
                     }
                   ],
-                  'text' => 'Example
-'
-                },
-                {
                   'text' => 'Some text '
                 },
                 {
@@ -682,6 +680,10 @@ $result_trees{'star_at_command_formatting'} = {
           'contents' => [
             {
               'contents' => [
+                {
+                  'text' => 'Quotation
+'
+                },
                 {
                   'source_marks' => [
                     {
@@ -697,15 +699,10 @@ $result_trees{'star_at_command_formatting'} = {
                         },
                         'type' => 'macro_call'
                       },
-                      'position' => 10,
                       'sourcemark_type' => 'macro_expansion',
                       'status' => 'start'
                     }
                   ],
-                  'text' => 'Quotation
-'
-                },
-                {
                   'text' => 'Some text '
                 },
                 {
diff --git 
a/tp/t/results/transformations/protect_first_parenthesis_after_parenthesis_source_mark.pl
 
b/tp/t/results/transformations/protect_first_parenthesis_after_parenthesis_source_mark.pl
index fdfd294baa..702cdc6cf1 100644
--- 
a/tp/t/results/transformations/protect_first_parenthesis_after_parenthesis_source_mark.pl
+++ 
b/tp/t/results/transformations/protect_first_parenthesis_after_parenthesis_source_mark.pl
@@ -71,33 +71,28 @@ 
$result_trees{'protect_first_parenthesis_after_parenthesis_source_mark'} = {
           'args' => [
             {
               'contents' => [
-                {
-                  'source_marks' => [
-                    {
-                      'counter' => 1,
-                      'element' => {
-                        'args' => [
-                          {
-                            'type' => 'brace_arg'
-                          }
-                        ],
-                        'info' => {
-                          'command_name' => 'vvv'
-                        },
-                        'type' => 'macro_call'
-                      },
-                      'sourcemark_type' => 'macro_expansion',
-                      'status' => 'start'
-                    }
-                  ],
-                  'text' => ''
-                },
                 {
                   'args' => [
                     {
                       'contents' => [
                         {
                           'source_marks' => [
+                            {
+                              'counter' => 1,
+                              'element' => {
+                                'args' => [
+                                  {
+                                    'type' => 'brace_arg'
+                                  }
+                                ],
+                                'info' => {
+                                  'command_name' => 'vvv'
+                                },
+                                'type' => 'macro_call'
+                              },
+                              'sourcemark_type' => 'macro_expansion',
+                              'status' => 'start'
+                            },
                             {
                               'counter' => 1,
                               'position' => 1,
@@ -157,7 +152,15 @@ 
$result_texts{'protect_first_parenthesis_after_parenthesis_source_mark'} = '
 .
 ';
 
-$result_errors{'protect_first_parenthesis_after_parenthesis_source_mark'} = [];
+$result_errors{'protect_first_parenthesis_after_parenthesis_source_mark'} = [
+  {
+    'error_line' => 'syntax for an external node used for `(my_f)\'
+',
+    'line_nr' => 5,
+    'text' => 'syntax for an external node used for `(my_f)\'',
+    'type' => 'error'
+  }
+];
 
 
 $result_floats{'protect_first_parenthesis_after_parenthesis_source_mark'} = {};
diff --git 
a/tp/t/results/transformations/protect_first_parenthesis_source_mark.pl 
b/tp/t/results/transformations/protect_first_parenthesis_source_mark.pl
index 22e6b31438..1ca7977494 100644
--- a/tp/t/results/transformations/protect_first_parenthesis_source_mark.pl
+++ b/tp/t/results/transformations/protect_first_parenthesis_source_mark.pl
@@ -71,32 +71,29 @@ $result_trees{'protect_first_parenthesis_source_mark'} = {
           'args' => [
             {
               'contents' => [
-                {
-                  'source_marks' => [
-                    {
-                      'counter' => 1,
-                      'element' => {
-                        'args' => [
-                          {
-                            'type' => 'brace_arg'
-                          }
-                        ],
-                        'info' => {
-                          'command_name' => 'vvv'
-                        },
-                        'type' => 'macro_call'
-                      },
-                      'sourcemark_type' => 'macro_expansion',
-                      'status' => 'start'
-                    }
-                  ],
-                  'text' => ''
-                },
                 {
                   'args' => [
                     {
                       'contents' => [
                         {
+                          'source_marks' => [
+                            {
+                              'counter' => 1,
+                              'element' => {
+                                'args' => [
+                                  {
+                                    'type' => 'brace_arg'
+                                  }
+                                ],
+                                'info' => {
+                                  'command_name' => 'vvv'
+                                },
+                                'type' => 'macro_call'
+                              },
+                              'sourcemark_type' => 'macro_expansion',
+                              'status' => 'start'
+                            }
+                          ],
                           'text' => '('
                         }
                       ],
@@ -157,7 +154,15 @@ $result_texts{'protect_first_parenthesis_source_mark'} = '
 .
 ';
 
-$result_errors{'protect_first_parenthesis_source_mark'} = [];
+$result_errors{'protect_first_parenthesis_source_mark'} = [
+  {
+    'error_line' => 'syntax for an external node used for `(some text) aa,,\'
+',
+    'line_nr' => 5,
+    'text' => 'syntax for an external node used for `(some text) aa,,\'',
+    'type' => 'error'
+  }
+];
 
 
 $result_floats{'protect_first_parenthesis_source_mark'} = {};
diff --git 
a/tp/t/results/transformations/protect_hashchar_at_line_beginning_source_mark.pl
 
b/tp/t/results/transformations/protect_hashchar_at_line_beginning_source_mark.pl
index 30226e37c8..e22c0d435f 100644
--- 
a/tp/t/results/transformations/protect_hashchar_at_line_beginning_source_mark.pl
+++ 
b/tp/t/results/transformations/protect_hashchar_at_line_beginning_source_mark.pl
@@ -76,6 +76,16 @@ 
$result_trees{'protect_hashchar_at_line_beginning_source_mark'} = {
                 'line_nr' => 2
               }
             },
+            {
+              'text' => '
+',
+              'type' => 'empty_line'
+            }
+          ],
+          'type' => 'preamble_before_content'
+        },
+        {
+          'contents' => [
             {
               'source_marks' => [
                 {
@@ -91,20 +101,12 @@ 
$result_trees{'protect_hashchar_at_line_beginning_source_mark'} = {
                     },
                     'type' => 'macro_call'
                   },
-                  'position' => 1,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'start'
                 }
               ],
-              'text' => '
-',
-              'type' => 'empty_line'
-            }
-          ],
-          'type' => 'preamble_before_content'
-        },
-        {
-          'contents' => [
+              'text' => ''
+            },
             {
               'args' => [
                 {
@@ -189,31 +191,33 @@ 
$result_trees{'protect_hashchar_at_line_beginning_source_mark'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 2,
-              'element' => {
-                'args' => [
-                  {
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'machash'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
         },
         {
           'contents' => [
+            {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'element' => {
+                    'args' => [
+                      {
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'machash'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
+              'text' => ''
+            },
             {
               'args' => [
                 {
@@ -375,34 +379,36 @@ 
$result_trees{'protect_hashchar_at_line_beginning_source_mark'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'hash'
-                      }
-                    ],
-                    'type' => 'brace_container'
-                  }
-                ],
-                'cmdname' => 'value'
-              },
-              'line' => '#',
-              'position' => 1,
-              'sourcemark_type' => 'value_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
         },
         {
           'contents' => [
+            {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'hash'
+                          }
+                        ],
+                        'type' => 'brace_container'
+                      }
+                    ],
+                    'cmdname' => 'value'
+                  },
+                  'line' => '#',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
+              'text' => ''
+            },
             {
               'args' => [
                 {
diff --git a/tp/t/results/value/ignored_value_definition.pl 
b/tp/t/results/value/ignored_value_definition.pl
index bc5aafbd89..457eec6b94 100644
--- a/tp/t/results/value/ignored_value_definition.pl
+++ b/tp/t/results/value/ignored_value_definition.pl
@@ -71,28 +71,6 @@ $result_trees{'ignored_value_definition'} = {
           'type' => 'paragraph'
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'aa'
-                      }
-                    ],
-                    'type' => 'brace_container'
-                  }
-                ],
-                'cmdname' => 'value'
-              },
-              'line' => 'outside',
-              'position' => 1,
-              'sourcemark_type' => 'value_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -101,6 +79,25 @@ $result_trees{'ignored_value_definition'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'aa'
+                          }
+                        ],
+                        'type' => 'brace_container'
+                      }
+                    ],
+                    'cmdname' => 'value'
+                  },
+                  'line' => 'outside',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 7,
diff --git a/tp/t/results/value/set_flag_command_equivalent.pl 
b/tp/t/results/value/set_flag_command_equivalent.pl
index 07f245e25b..1836c9e47c 100644
--- a/tp/t/results/value/set_flag_command_equivalent.pl
+++ b/tp/t/results/value/set_flag_command_equivalent.pl
@@ -42,34 +42,6 @@ $result_trees{'set_flag_command_equivalent'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'txicodequoteundirected'
-                      }
-                    ],
-                    'type' => 'brace_container'
-                  }
-                ],
-                'cmdname' => 'value'
-              },
-              'line' => '',
-              'position' => 1,
-              'sourcemark_type' => 'value_expansion',
-              'status' => 'start'
-            },
-            {
-              'counter' => 1,
-              'position' => 1,
-              'sourcemark_type' => 'value_expansion',
-              'status' => 'end'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -77,6 +49,32 @@ $result_trees{'set_flag_command_equivalent'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'txicodequoteundirected'
+                          }
+                        ],
+                        'type' => 'brace_container'
+                      }
+                    ],
+                    'cmdname' => 'value'
+                  },
+                  'line' => '',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => '.
 '
             }
diff --git a/tp/t/results/value/simple.pl b/tp/t/results/value/simple.pl
index b211065694..30000a4c9f 100644
--- a/tp/t/results/value/simple.pl
+++ b/tp/t/results/value/simple.pl
@@ -27,28 +27,6 @@ $result_trees{'simple'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'a-_5b'
-                      }
-                    ],
-                    'type' => 'brace_container'
-                  }
-                ],
-                'cmdname' => 'value'
-              },
-              'line' => 'the value @b{b}',
-              'position' => 1,
-              'sourcemark_type' => 'value_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -56,6 +34,27 @@ $result_trees{'simple'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'a-_5b'
+                          }
+                        ],
+                        'type' => 'brace_container'
+                      }
+                    ],
+                    'cmdname' => 'value'
+                  },
+                  'line' => 'the value @b{b}',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'the value '
             },
             {
diff --git a/tp/t/results/value/spaces_before_value.pl 
b/tp/t/results/value/spaces_before_value.pl
index 5d0fc3507a..284661e171 100644
--- a/tp/t/results/value/spaces_before_value.pl
+++ b/tp/t/results/value/spaces_before_value.pl
@@ -27,33 +27,6 @@ $result_trees{'spaces_before_value'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'var'
-                      }
-                    ],
-                    'type' => 'brace_container'
-                  }
-                ],
-                'cmdname' => 'value',
-                'info' => {
-                  'spaces_after_cmd_before_arg' => {
-                    'text' => '  '
-                  }
-                }
-              },
-              'line' => 'val',
-              'position' => 1,
-              'sourcemark_type' => 'value_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -62,6 +35,30 @@ $result_trees{'spaces_before_value'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'var'
+                          }
+                        ],
+                        'type' => 'brace_container'
+                      }
+                    ],
+                    'cmdname' => 'value',
+                    'info' => {
+                      'spaces_after_cmd_before_arg' => {
+                        'text' => '  '
+                      }
+                    }
+                  },
+                  'line' => 'val',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'position' => 3,
diff --git a/tp/t/results/value/value_in_node.pl 
b/tp/t/results/value/value_in_node.pl
index 696491504a..ac7d88951d 100644
--- a/tp/t/results/value/value_in_node.pl
+++ b/tp/t/results/value/value_in_node.pl
@@ -696,12 +696,7 @@ $result_trees{'value_in_node'} = {
                           'line' => 'Node 1',
                           'sourcemark_type' => 'value_expansion',
                           'status' => 'start'
-                        }
-                      ],
-                      'text' => ''
-                    },
-                    {
-                      'source_marks' => [
+                        },
                         {
                           'counter' => 4,
                           'position' => 6,
@@ -715,7 +710,6 @@ $result_trees{'value_in_node'} = {
                   'extra' => {
                     'node_content' => {
                       'contents' => [
-                        {},
                         {}
                       ]
                     },
@@ -764,7 +758,6 @@ 
$result_trees{'value_in_node'}{'contents'}[4]{'contents'}[3]{'contents'}[0]{'con
 
$result_trees{'value_in_node'}{'contents'}[5]{'args'}[2]{'extra'}{'node_content'}{'contents'}[0]
 = $result_trees{'value_in_node'}{'contents'}[5]{'args'}[2]{'contents'}[0];
 
$result_trees{'value_in_node'}{'contents'}[5]{'args'}[3]{'extra'}{'node_content'}{'contents'}[0]
 = $result_trees{'value_in_node'}{'contents'}[5]{'args'}[3]{'contents'}[0];
 
$result_trees{'value_in_node'}{'contents'}[5]{'contents'}[1]{'contents'}[0]{'args'}[0]{'extra'}{'node_content'}{'contents'}[0]
 = 
$result_trees{'value_in_node'}{'contents'}[5]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0];
-$result_trees{'value_in_node'}{'contents'}[5]{'contents'}[1]{'contents'}[0]{'args'}[0]{'extra'}{'node_content'}{'contents'}[1]
 = 
$result_trees{'value_in_node'}{'contents'}[5]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1];
 
 $result_texis{'value_in_node'} = '@set node1 Node 1
 
diff --git a/tp/t/results/value/value_node_directions.pl 
b/tp/t/results/value/value_node_directions.pl
index af484f5877..89f199040a 100644
--- a/tp/t/results/value/value_node_directions.pl
+++ b/tp/t/results/value/value_node_directions.pl
@@ -214,33 +214,28 @@ $result_trees{'value_node_directions'} = {
       'cmdname' => 'top',
       'contents' => [
         {
-          'source_marks' => [
+          'contents' => [
             {
-              'counter' => 3,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => 'a--foo'
+                        'contents' => [
+                          {
+                            'text' => 'a--foo'
+                          }
+                        ],
+                        'type' => 'brace_container'
                       }
                     ],
-                    'type' => 'brace_container'
-                  }
-                ],
-                'cmdname' => 'value'
-              },
-              'line' => 'bar',
-              'sourcemark_type' => 'value_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => ''
-        },
-        {
-          'contents' => [
-            {
-              'source_marks' => [
+                    'cmdname' => 'value'
+                  },
+                  'line' => 'bar',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 3,
                   'position' => 3,
diff --git a/tp/t/results/value/value_zero.pl b/tp/t/results/value/value_zero.pl
index c1b276601c..bc6f4ad73b 100644
--- a/tp/t/results/value/value_zero.pl
+++ b/tp/t/results/value/value_zero.pl
@@ -28,6 +28,10 @@ $result_trees{'value_zero'} = {
         },
         {
           'contents' => [
+            {
+              'text' => 'Value
+'
+            },
             {
               'source_marks' => [
                 {
@@ -46,16 +50,9 @@ $result_trees{'value_zero'} = {
                     'cmdname' => 'value'
                   },
                   'line' => '0',
-                  'position' => 6,
                   'sourcemark_type' => 'value_expansion',
                   'status' => 'start'
-                }
-              ],
-              'text' => 'Value
-'
-            },
-            {
-              'source_marks' => [
+                },
                 {
                   'counter' => 1,
                   'position' => 1,
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 e31e56b16c..54916047a5 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
@@ -93,45 +93,44 @@ $result_trees{'comma_value_in_macro_arg'} = {
           }
         },
         {
-          'source_marks' => [
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
             {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
                       {
-                        'text' => 'arg1 @value{comma} arg2 '
+                        'contents' => [
+                          {
+                            'text' => 'arg1 @value{comma} arg2 '
+                          }
+                        ],
+                        'info' => {
+                          'spaces_before_argument' => {
+                            'text' => ' '
+                          }
+                        },
+                        'type' => 'brace_arg'
                       }
                     ],
                     'info' => {
-                      'spaces_before_argument' => {
+                      'command_name' => 'macro1',
+                      'spaces_after_cmd_before_arg' => {
                         'text' => ' '
                       }
                     },
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'macro1',
-                  'spaces_after_cmd_before_arg' => {
-                    'text' => ' '
-                  }
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
-          'text' => '
-',
-          'type' => 'empty_line'
-        },
-        {
-          'contents' => [
-            {
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'result: '
             },
             {
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 95e982d611..2ead2c5708 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
@@ -89,30 +89,6 @@ $result_trees{'value_in_macro_body'} = {
           }
         },
         {
-          'source_marks' => [
-            {
-              'counter' => 1,
-              'element' => {
-                'args' => [
-                  {
-                    'contents' => [
-                      {
-                        'text' => 'macro_arg1'
-                      }
-                    ],
-                    'type' => 'brace_arg'
-                  }
-                ],
-                'info' => {
-                  'command_name' => 'testvaluebody'
-                },
-                'type' => 'macro_call'
-              },
-              'position' => 1,
-              'sourcemark_type' => 'macro_expansion',
-              'status' => 'start'
-            }
-          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -120,6 +96,29 @@ $result_trees{'value_in_macro_body'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'element' => {
+                    'args' => [
+                      {
+                        'contents' => [
+                          {
+                            'text' => 'macro_arg1'
+                          }
+                        ],
+                        'type' => 'brace_arg'
+                      }
+                    ],
+                    'info' => {
+                      'command_name' => 'testvaluebody'
+                    },
+                    'type' => 'macro_call'
+                  },
+                  'sourcemark_type' => 'macro_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'result: '
             },
             {



reply via email to

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