texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: Source mark for value expansion


From: Patrice Dumas
Subject: branch master updated: Source mark for value expansion
Date: Sun, 05 Feb 2023 16:20:53 -0500

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

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 50cc5da1a2 Source mark for value expansion
50cc5da1a2 is described below

commit 50cc5da1a2d5abea507ecf09f88d928265a3b71e
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Feb 5 22:20:42 2023 +0100

    Source mark for value expansion
    
    * tp/Texinfo/ParserNonXS.pm (_next_text, _process_remaining_on_line),
    tp/Texinfo/XS/parsetexi/input.c (next_text),
    tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
    tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
    tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark)
    (source_marks_reset_counters): register value expansion source marks.
    
    * tp/Texinfo/XS/parsetexi/input.c (next_text): strdup line when
    duplicating start source mark line for end source mark.
---
 ChangeLog                                          |   14 +
 tp/TODO                                            |    6 +-
 tp/Texinfo/ParserNonXS.pm                          |    7 +-
 tp/Texinfo/XS/parsetexi/api.c                      |    1 +
 tp/Texinfo/XS/parsetexi/input.c                    |   12 +-
 tp/Texinfo/XS/parsetexi/macro.c                    |    2 +-
 tp/Texinfo/XS/parsetexi/parser.c                   |   10 +
 tp/Texinfo/XS/parsetexi/source_marks.c             |    7 +
 tp/Texinfo/XS/parsetexi/tree_types.h               |    3 +-
 tp/t/results/conditionals/empty_set_in_ifset.pl    |   16 +
 tp/t/results/include/value_expansion_in_include.pl |  104 ++
 tp/t/results/macro/bib_example.pl                  |   40 +
 tp/t/results/value/comment_on_set_line.pl          |   58 +
 tp/t/results/value/empty_set.pl                    |   16 +
 tp/t/results/value/empty_value_in_line.pl          |   14 +
 tp/t/results/value/ignored_value_definition.pl     |   18 +
 tp/t/results/value/not_only_characters.pl          |   16 +
 tp/t/results/value/recursive_expansion_in_set.pl   | 1202 ++++++++++++++++++++
 tp/t/results/value/set_flag_command_equivalent.pl  |   16 +
 tp/t/results/value/set_form_feed.pl                |   43 +
 tp/t/results/value/simple.pl                       |   19 +-
 tp/t/results/value/spaces_before_value.pl          |   18 +
 tp/t/results/value/value_after_accent.pl           |   36 +-
 tp/t/results/value/value_after_brace_command.pl    |  138 ++-
 tp/t/results/value/value_in_index_commands.pl      |  192 +++-
 .../value/value_in_invalid_documentencoding.pl     |   18 +
 tp/t/results/value/value_in_misc_commands.pl       |  688 ++++++++++-
 tp/t/results/value/value_in_node.pl                |   70 ++
 tp/t/results/value/value_node_directions.pl        |   90 ++
 tp/t/results/value/value_zero.pl                   |   18 +
 .../value_and_macro/comma_value_in_macro_arg.pl    |   16 +
 tp/t/results/value_and_macro/macro_in_value.pl     |   14 +
 .../results/value_and_macro/value_in_macro_body.pl |   16 +
 33 files changed, 2910 insertions(+), 28 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3d9d781a55..084914e456 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2023-02-05  Patrice Dumas  <pertusus@free.fr>
+
+       Source mark for value expansion
+
+       * tp/Texinfo/ParserNonXS.pm (_next_text, _process_remaining_on_line),
+       tp/Texinfo/XS/parsetexi/input.c (next_text),
+       tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
+       tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
+       tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark)
+       (source_marks_reset_counters): register value expansion source marks.
+
+       * tp/Texinfo/XS/parsetexi/input.c (next_text): strdup line when
+       duplicating start source mark line for end source mark.
+
 2023-02-05  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/ParserNonXS.pm (_relocate_source_marks)
diff --git a/tp/TODO b/tp/TODO
index 7dd0fe27d5..4311049966 100644
--- a/tp/TODO
+++ b/tp/TODO
@@ -11,11 +11,11 @@ Before next release
 ===================
 
 Add elements of texinfo that are not of interest in the
-tree to source_marks. begin and end of user defined macro
-or value expansion. aliases.
+tree to source_marks. aliases.
 
 done: source_marks structures, with beginning and end of included file, @
-protecting end of line in @def*, @setfilename in included files.
+protecting end of line in @def*, @setfilename in included files,
+begin and end of user defined macro and value expansion.
 
 Bugs
 ====
diff --git a/tp/Texinfo/ParserNonXS.pm b/tp/Texinfo/ParserNonXS.pm
index 650c28decb..b47d158578 100644
--- a/tp/Texinfo/ParserNonXS.pm
+++ b/tp/Texinfo/ParserNonXS.pm
@@ -2468,7 +2468,8 @@ sub _next_text($;$)
           if (defined($input->{'input_source_mark'}->{'line'}));
       $end_source_mark->{'status'} = 'end'
           if ($end_source_mark->{'sourcemark_type'} eq 'include'
-              or $end_source_mark->{'sourcemark_type'} eq 'macro_expansion');
+              or $end_source_mark->{'sourcemark_type'} eq 'macro_expansion'
+              or $end_source_mark->{'sourcemark_type'} eq 'value_expansion');
       _register_source_mark($self, $current,
                             $end_source_mark);
     }
@@ -4872,6 +4873,10 @@ sub _process_remaining_on_line($$$$)
                            $source_info->{'macro'});
           _input_push_text($self, $self->{'values'}->{$value},
                            $source_info->{'line_nr'}, $source_info->{'macro'}, 
$value);
+          my $value_source_mark = {'sourcemark_type' => 'value_expansion',
+                                   'status' => 'start', 'line' => $value};
+          _register_source_mark($self, $current, $value_source_mark);
+          $self->{'input'}->[0]->{'input_source_mark'} = $value_source_mark;
           $line = '';
           goto funexit;
         }
diff --git a/tp/Texinfo/XS/parsetexi/api.c b/tp/Texinfo/XS/parsetexi/api.c
index 3bd4a9daa5..9b828d1b33 100644
--- a/tp/Texinfo/XS/parsetexi/api.c
+++ b/tp/Texinfo/XS/parsetexi/api.c
@@ -578,6 +578,7 @@ store_source_mark_list (ELEMENT *e)
               SAVE_S_M_TYPE (delcomment)
               SAVE_S_M_TYPE (defline_continuation)
               SAVE_S_M_TYPE (macro_expansion)
+              SAVE_S_M_TYPE (value_expansion)
             }
 
           av_push (av, newRV_inc ((SV *)source_mark));
diff --git a/tp/Texinfo/XS/parsetexi/input.c b/tp/Texinfo/XS/parsetexi/input.c
index 1df9c45bb9..674aeb06fb 100644
--- a/tp/Texinfo/XS/parsetexi/input.c
+++ b/tp/Texinfo/XS/parsetexi/input.c
@@ -453,15 +453,15 @@ next_text (ELEMENT *current)
               if (comment)
                 {
                   SOURCE_MARK *source_mark
-                    = new_source_mark(SM_type_delcomment);
+                    = new_source_mark (SM_type_delcomment);
                   *comment = '\0';
                   if (*(comment+1) != '\0')
                     source_mark->line = convert_to_utf8 (strdup (comment+1));
                   else
                     source_mark->line = 0;
-                  input_push_text(strdup(""),
+                  input_push_text(strdup (""),
                                   input->source_info.line_nr, 0, 0);
-                  set_input_source_mark(source_mark);
+                  set_input_source_mark (source_mark);
                 }
 
               input->source_info.line_nr++;
@@ -509,9 +509,11 @@ next_text (ELEMENT *current)
           SOURCE_MARK *end_include_source_mark
             = new_source_mark(input_source_mark->type);
           end_include_source_mark->counter = input_source_mark->counter;
-          end_include_source_mark->line = input_source_mark->line;
+          if (input_source_mark->line)
+            end_include_source_mark->line = strdup(input_source_mark->line);
           if (input_source_mark->type == SM_type_include
-              || input_source_mark->type == SM_type_macro_expansion)
+              || input_source_mark->type == SM_type_macro_expansion
+              || input_source_mark->type == SM_type_value_expansion)
             end_include_source_mark->status = SM_status_end;
           register_source_mark(current, end_include_source_mark);
         }
diff --git a/tp/Texinfo/XS/parsetexi/macro.c b/tp/Texinfo/XS/parsetexi/macro.c
index 82850ac310..a8847bb089 100644
--- a/tp/Texinfo/XS/parsetexi/macro.c
+++ b/tp/Texinfo/XS/parsetexi/macro.c
@@ -624,7 +624,7 @@ handle_macro (ELEMENT *current, char **line_inout, enum 
command_id cmd)
     expanded_macro_text = expanded.text;
   else
     /* we want to always have a text for the source mark */
-    expanded_macro_text = strdup("");
+    expanded_macro_text = strdup ("");
   input_push_text (expanded_macro_text, current_source_info.line_nr,
                    command_name(cmd), 0);
   set_input_source_mark (macro_source_mark);
diff --git a/tp/Texinfo/XS/parsetexi/parser.c b/tp/Texinfo/XS/parsetexi/parser.c
index 6dd8eb8ce1..f3eae156c9 100644
--- a/tp/Texinfo/XS/parsetexi/parser.c
+++ b/tp/Texinfo/XS/parsetexi/parser.c
@@ -1664,6 +1664,8 @@ process_remaining_on_line (ELEMENT **current_inout, char 
**line_inout)
 
                   if (value)
                     {
+                      SOURCE_MARK *value_source_mark;
+
                       remaining_line++; /* past '}' */
                       if (conf.max_macro_call_nesting
                           && value_expansion_nr >= conf.max_macro_call_nesting)
@@ -1684,6 +1686,14 @@ process_remaining_on_line (ELEMENT **current_inout, char 
**line_inout)
                                        current_source_info.line_nr,
                                        current_source_info.macro,
                                        strdup(flag));
+
+                      value_source_mark
+                          = new_source_mark (SM_type_value_expansion);
+                      value_source_mark->status = SM_status_start;
+                      value_source_mark->line = strdup(flag);
+                      register_source_mark(current, value_source_mark);
+                      set_input_source_mark (value_source_mark);
+
                       value_expansion_nr++;
 
                       /* Move 'line' to end of string so next input to
diff --git a/tp/Texinfo/XS/parsetexi/source_marks.c 
b/tp/Texinfo/XS/parsetexi/source_marks.c
index 628f96e43a..c1871b9cf9 100644
--- a/tp/Texinfo/XS/parsetexi/source_marks.c
+++ b/tp/Texinfo/XS/parsetexi/source_marks.c
@@ -25,6 +25,7 @@ int setfilename_counter = 0;
 int delcomment_counter = 0;
 int defline_continuation_counter = 0;
 int macro_expansion_counter = 0;
+int value_expansion_counter = 0;
 
 SOURCE_MARK *
 new_source_mark (enum source_mark_type type)
@@ -133,6 +134,11 @@ register_source_mark (ELEMENT *e, SOURCE_MARK *source_mark)
           macro_expansion_counter++;
           source_mark->counter = macro_expansion_counter;
         }
+      else if (source_mark->type == SM_type_value_expansion)
+        {
+          value_expansion_counter++;
+          source_mark->counter = value_expansion_counter;
+        }
     }
 
   place_source_mark (e, source_mark);
@@ -146,4 +152,5 @@ source_marks_reset_counters (void)
   delcomment_counter = 0;
   defline_continuation_counter = 0;
   macro_expansion_counter = 0;
+  value_expansion_counter = 0;
 }
diff --git a/tp/Texinfo/XS/parsetexi/tree_types.h 
b/tp/Texinfo/XS/parsetexi/tree_types.h
index 1660f99a74..4753a18436 100644
--- a/tp/Texinfo/XS/parsetexi/tree_types.h
+++ b/tp/Texinfo/XS/parsetexi/tree_types.h
@@ -47,7 +47,8 @@ enum source_mark_type { SM_type_none,
                         SM_type_setfilename,
                         SM_type_delcomment,
                         SM_type_defline_continuation,
-                        SM_type_macro_expansion
+                        SM_type_macro_expansion,
+                        SM_type_value_expansion
 };
 
 enum source_mark_status {
diff --git a/tp/t/results/conditionals/empty_set_in_ifset.pl 
b/tp/t/results/conditionals/empty_set_in_ifset.pl
index bb2192c6f0..c56ac10e19 100644
--- a/tp/t/results/conditionals/empty_set_in_ifset.pl
+++ b/tp/t/results/conditionals/empty_set_in_ifset.pl
@@ -40,6 +40,22 @@ $result_trees{'empty_set_in_ifset'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'a',
+                  'position' => 13,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 1,
+                  'line' => 'a',
+                  'position' => 13,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'a is set to:||.
 '
             }
diff --git a/tp/t/results/include/value_expansion_in_include.pl 
b/tp/t/results/include/value_expansion_in_include.pl
index 2d1206b025..6829b612b0 100644
--- a/tp/t/results/include/value_expansion_in_include.pl
+++ b/tp/t/results/include/value_expansion_in_include.pl
@@ -168,6 +168,15 @@ $result_trees{'value_expansion_in_include'} = {
                       {
                         'contents' => [
                           {
+                            'source_marks' => [
+                              {
+                                'counter' => 1,
+                                'line' => 'testvar',
+                                'position' => 13,
+                                'sourcemark_type' => 'value_expansion',
+                                'status' => 'end'
+                              }
+                            ],
                             'text' => 'incl-incl.txi'
                           }
                         ],
@@ -186,6 +195,15 @@ $result_trees{'value_expansion_in_include'} = {
                     },
                     'info' => {
                       'spaces_before_argument' => {
+                        'source_marks' => [
+                          {
+                            'counter' => 1,
+                            'line' => 'testvar',
+                            'position' => 1,
+                            'sourcemark_type' => 'value_expansion',
+                            'status' => 'start'
+                          }
+                        ],
                         'text' => ' '
                       }
                     },
@@ -253,6 +271,15 @@ $result_trees{'value_expansion_in_include'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 2,
+                      'line' => 'testvar',
+                      'position' => 13,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'incl-incl.txi'
                 }
               ],
@@ -272,6 +299,15 @@ $result_trees{'value_expansion_in_include'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'line' => 'testvar',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -302,6 +338,15 @@ $result_trees{'value_expansion_in_include'} = {
                       {
                         'contents' => [
                           {
+                            'source_marks' => [
+                              {
+                                'counter' => 3,
+                                'line' => 'test-var',
+                                'position' => 12,
+                                'sourcemark_type' => 'value_expansion',
+                                'status' => 'end'
+                              }
+                            ],
                             'text' => 'incl-incl.txi'
                           }
                         ],
@@ -320,6 +365,15 @@ $result_trees{'value_expansion_in_include'} = {
                     },
                     'info' => {
                       'spaces_before_argument' => {
+                        'source_marks' => [
+                          {
+                            'counter' => 3,
+                            'line' => 'test-var',
+                            'position' => 1,
+                            'sourcemark_type' => 'value_expansion',
+                            'status' => 'start'
+                          }
+                        ],
                         'text' => ' '
                       }
                     },
@@ -387,6 +441,15 @@ $result_trees{'value_expansion_in_include'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 4,
+                      'line' => 'test-var',
+                      'position' => 12,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'incl-incl.txi'
                 }
               ],
@@ -406,6 +469,15 @@ $result_trees{'value_expansion_in_include'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 4,
+                  'line' => 'test-var',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -436,6 +508,22 @@ $result_trees{'value_expansion_in_include'} = {
                       {
                         'contents' => [
                           {
+                            'source_marks' => [
+                              {
+                                'counter' => 5,
+                                'line' => 'test_var',
+                                'position' => 1,
+                                'sourcemark_type' => 'value_expansion',
+                                'status' => 'start'
+                              },
+                              {
+                                'counter' => 5,
+                                'line' => 'test_var',
+                                'position' => 12,
+                                'sourcemark_type' => 'value_expansion',
+                                'status' => 'end'
+                              }
+                            ],
                             'text' => 'incl-incl.txi'
                           }
                         ],
@@ -521,6 +609,22 @@ $result_trees{'value_expansion_in_include'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 6,
+                      'line' => 'test_var',
+                      'position' => 1,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    },
+                    {
+                      'counter' => 6,
+                      'line' => 'test_var',
+                      'position' => 12,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'incl-incl.txi'
                 }
               ],
diff --git a/tp/t/results/macro/bib_example.pl 
b/tp/t/results/macro/bib_example.pl
index 519ad63354..5a0d165c26 100644
--- a/tp/t/results/macro/bib_example.pl
+++ b/tp/t/results/macro/bib_example.pl
@@ -3672,6 +3672,19 @@ $result_trees{'bib_example'} = {
                           'sourcemark_type' => 'macro_expansion',
                           'status' => 'start'
                         },
+                        {
+                          'counter' => 1,
+                          'line' => 'mybibrefnode',
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 1,
+                          'line' => 'mybibrefnode',
+                          'position' => 10,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        },
                         {
                           'counter' => 3,
                           'position' => 10,
@@ -3946,12 +3959,25 @@ $result_trees{'bib_example'} = {
                           },
                           'sourcemark_type' => 'macro_expansion',
                           'status' => 'start'
+                        },
+                        {
+                          'counter' => 2,
+                          'line' => 'mybibrefnode',
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
                         }
                       ],
                       'text' => ''
                     },
                     {
                       'source_marks' => [
+                        {
+                          'counter' => 2,
+                          'line' => 'mybibrefnode',
+                          'position' => 10,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        },
                         {
                           'counter' => 6,
                           'position' => 10,
@@ -3986,6 +4012,13 @@ $result_trees{'bib_example'} = {
                       'contents' => [
                         {
                           'source_marks' => [
+                            {
+                              'counter' => 3,
+                              'line' => 'mybibrefnode',
+                              'position' => 10,
+                              'sourcemark_type' => 'value_expansion',
+                              'status' => 'end'
+                            },
                             {
                               'counter' => 7,
                               'position' => 10,
@@ -4039,6 +4072,13 @@ $result_trees{'bib_example'} = {
                           'position' => 1,
                           'sourcemark_type' => 'macro_expansion',
                           'status' => 'start'
+                        },
+                        {
+                          'counter' => 3,
+                          'line' => 'mybibrefnode',
+                          'position' => 1,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
                         }
                       ],
                       'text' => ' '
diff --git a/tp/t/results/value/comment_on_set_line.pl 
b/tp/t/results/value/comment_on_set_line.pl
index c47b0b6038..fe386180b6 100644
--- a/tp/t/results/value/comment_on_set_line.pl
+++ b/tp/t/results/value/comment_on_set_line.pl
@@ -109,6 +109,64 @@ $result_trees{'comment_on_set_line'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'x',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 1,
+                  'line' => 'x',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                },
+                {
+                  'counter' => 2,
+                  'line' => 'y',
+                  'position' => 5,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 2,
+                  'line' => 'y',
+                  'position' => 5,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                },
+                {
+                  'counter' => 3,
+                  'line' => 'z',
+                  'position' => 9,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 3,
+                  'line' => 'z',
+                  'position' => 10,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                },
+                {
+                  'counter' => 4,
+                  'line' => 't',
+                  'position' => 14,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 4,
+                  'line' => 't',
+                  'position' => 18,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => '!!, !!, !g!, !a vv!
 '
             }
diff --git a/tp/t/results/value/empty_set.pl b/tp/t/results/value/empty_set.pl
index 385c1e5b3b..8c7e3b0c7c 100644
--- a/tp/t/results/value/empty_set.pl
+++ b/tp/t/results/value/empty_set.pl
@@ -40,6 +40,22 @@ $result_trees{'empty_set'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'myspace',
+                  'position' => 2,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 1,
+                  'line' => 'myspace',
+                  'position' => 2,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => '1  1
 '
             }
diff --git a/tp/t/results/value/empty_value_in_line.pl 
b/tp/t/results/value/empty_value_in_line.pl
index a016225a5d..1dfd0141b8 100644
--- a/tp/t/results/value/empty_value_in_line.pl
+++ b/tp/t/results/value/empty_value_in_line.pl
@@ -47,6 +47,20 @@ $result_trees{'empty_value_in_line'} = {
           'type' => 'paragraph'
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 1,
+              'line' => 'myspace',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 1,
+              'line' => 'myspace',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            }
+          ],
           'text' => ' 
 ',
           'type' => 'empty_line'
diff --git a/tp/t/results/value/ignored_value_definition.pl 
b/tp/t/results/value/ignored_value_definition.pl
index 760855108c..cc503dc679 100644
--- a/tp/t/results/value/ignored_value_definition.pl
+++ b/tp/t/results/value/ignored_value_definition.pl
@@ -71,6 +71,15 @@ $result_trees{'ignored_value_definition'} = {
           'type' => 'paragraph'
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 1,
+              'line' => 'aa',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -78,6 +87,15 @@ $result_trees{'ignored_value_definition'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'aa',
+                  'position' => 7,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'outside.
 '
             }
diff --git a/tp/t/results/value/not_only_characters.pl 
b/tp/t/results/value/not_only_characters.pl
index 597a9ffcee..8144b0bfc9 100644
--- a/tp/t/results/value/not_only_characters.pl
+++ b/tp/t/results/value/not_only_characters.pl
@@ -40,6 +40,22 @@ $result_trees{'not_only_characters'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => '-e_\'::;',
+                  'position' => 4,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 1,
+                  'line' => '-e_\'::;',
+                  'position' => 6,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'Say hh.
 '
             }
diff --git a/tp/t/results/value/recursive_expansion_in_set.pl 
b/tp/t/results/value/recursive_expansion_in_set.pl
index 818628097d..de894083ce 100644
--- a/tp/t/results/value/recursive_expansion_in_set.pl
+++ b/tp/t/results/value/recursive_expansion_in_set.pl
@@ -33,6 +33,1208 @@ $result_trees{'recursive_expansion_in_set'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 1,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 2,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 3,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 4,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 5,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 6,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 7,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 8,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 9,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 10,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 11,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 12,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 13,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 14,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 15,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 16,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 17,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 18,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 19,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 20,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 21,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 22,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 23,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 24,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 25,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 26,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 27,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 28,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 29,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 30,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 31,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 32,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 33,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 34,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 35,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 36,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 37,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 38,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 39,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 40,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 41,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 42,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 43,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 44,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 45,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 46,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 47,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 48,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 49,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 50,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 51,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 52,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 53,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 54,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 55,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 56,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 57,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 58,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 59,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 60,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 61,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 62,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 63,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 64,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 65,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 66,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 67,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 68,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 69,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 70,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 71,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 72,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 73,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 74,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 75,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 76,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 77,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 78,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 79,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 80,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 81,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 82,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 83,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 84,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 85,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 86,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 87,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 88,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 89,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 90,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 91,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 92,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 93,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 94,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 95,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 96,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 97,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 98,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 99,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 100,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 100,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 99,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 98,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 97,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 96,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 95,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 94,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 93,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 92,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 91,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 90,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 89,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 88,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 87,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 86,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 85,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 84,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 83,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 82,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 81,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 80,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 79,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 78,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 77,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 76,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 75,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 74,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 73,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 72,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 71,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 70,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 69,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 68,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 67,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 66,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 65,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 64,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 63,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 62,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 61,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 60,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 59,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 58,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 57,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 56,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 55,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 54,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 53,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 52,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 51,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 50,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 49,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 48,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 47,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 46,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 45,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 44,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 43,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 42,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 41,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 40,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 39,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 38,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 37,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 36,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 35,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 34,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 33,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 32,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 31,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 30,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 29,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 28,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 27,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 26,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 25,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 24,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 23,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 22,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 21,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 20,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 19,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 18,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 17,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 16,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 15,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 14,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 13,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 12,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 11,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 10,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 9,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 8,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 7,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 6,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 5,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 4,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 3,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 2,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            },
+            {
+              'counter' => 1,
+              'line' => 'V',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
diff --git a/tp/t/results/value/set_flag_command_equivalent.pl 
b/tp/t/results/value/set_flag_command_equivalent.pl
index f475c98de0..9a10c847c9 100644
--- a/tp/t/results/value/set_flag_command_equivalent.pl
+++ b/tp/t/results/value/set_flag_command_equivalent.pl
@@ -44,6 +44,22 @@ $result_trees{'set_flag_command_equivalent'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 1,
+              'line' => 'txicodequoteundirected',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            },
+            {
+              'counter' => 1,
+              'line' => 'txicodequoteundirected',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
diff --git a/tp/t/results/value/set_form_feed.pl 
b/tp/t/results/value/set_form_feed.pl
index 186f2433d9..a43e6e8af2 100644
--- a/tp/t/results/value/set_form_feed.pl
+++ b/tp/t/results/value/set_form_feed.pl
@@ -90,6 +90,49 @@ $result_trees{'set_form_feed'} = {
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 1,
+                          'line' => 'gg',
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 1,
+                          'line' => 'gg',
+                          'position' => 7,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        },
+                        {
+                          'counter' => 2,
+                          'line' => 'hh',
+                          'position' => 9,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 2,
+                          'line' => 'hh',
+                          'position' => 9,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        },
+                        {
+                          'counter' => 3,
+                          'line' => 'll',
+                          'position' => 11,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 3,
+                          'line' => 'll',
+                          'position' => 11,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        }
+                      ],
                       'text' => 'a\\a\\f\\\\. . '
                     }
                   ],
diff --git a/tp/t/results/value/simple.pl b/tp/t/results/value/simple.pl
index 20b967289a..f1e587ee50 100644
--- a/tp/t/results/value/simple.pl
+++ b/tp/t/results/value/simple.pl
@@ -33,6 +33,15 @@ $result_trees{'simple'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 1,
+              'line' => 'a-_5b',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -58,7 +67,15 @@ $result_trees{'simple'} = {
                 'file_name' => '',
                 'line_nr' => 3,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'a-_5b',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             },
             {
               'text' => ' After value.
diff --git a/tp/t/results/value/spaces_before_value.pl 
b/tp/t/results/value/spaces_before_value.pl
index a6b7d5d3e0..0511ed35b8 100644
--- a/tp/t/results/value/spaces_before_value.pl
+++ b/tp/t/results/value/spaces_before_value.pl
@@ -33,6 +33,15 @@ $result_trees{'spaces_before_value'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 1,
+              'line' => 'var',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -40,6 +49,15 @@ $result_trees{'spaces_before_value'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'var',
+                  'position' => 3,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'val
 '
             }
diff --git a/tp/t/results/value/value_after_accent.pl 
b/tp/t/results/value/value_after_accent.pl
index 0f4c8da118..88407f5b79 100644
--- a/tp/t/results/value/value_after_accent.pl
+++ b/tp/t/results/value/value_after_accent.pl
@@ -42,6 +42,14 @@ $result_trees{'value_after_accent'} = {
                       'text' => 'a'
                     }
                   ],
+                  'source_marks' => [
+                    {
+                      'counter' => 1,
+                      'line' => 'a_letter',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
                   'type' => 'following_arg'
                 }
               ],
@@ -53,7 +61,15 @@ $result_trees{'value_after_accent'} = {
                 'file_name' => '',
                 'line_nr' => 2,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'a_letter',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             },
             {
               'text' => '
@@ -67,6 +83,14 @@ $result_trees{'value_after_accent'} = {
                       'text' => 'a'
                     }
                   ],
+                  'source_marks' => [
+                    {
+                      'counter' => 2,
+                      'line' => 'a_letter',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
                   'type' => 'following_arg'
                 }
               ],
@@ -75,7 +99,15 @@ $result_trees{'value_after_accent'} = {
                 'file_name' => '',
                 'line_nr' => 3,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'line' => 'a_letter',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             }
           ],
           'type' => 'paragraph'
diff --git a/tp/t/results/value/value_after_brace_command.pl 
b/tp/t/results/value/value_after_brace_command.pl
index ced094286e..713f103530 100644
--- a/tp/t/results/value/value_after_brace_command.pl
+++ b/tp/t/results/value/value_after_brace_command.pl
@@ -74,6 +74,19 @@ $result_trees{'value_after_brace_command'} = {
                 }
               ],
               'cmdname' => 'ringaccent',
+              'contents' => [
+                {
+                  'source_marks' => [
+                    {
+                      'counter' => 1,
+                      'line' => 'bracedletter',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
+                  'text' => ''
+                }
+              ],
               'info' => {
                 'spaces_after_cmd_before_arg' => ' '
               },
@@ -81,7 +94,15 @@ $result_trees{'value_after_brace_command'} = {
                 'file_name' => '',
                 'line_nr' => 4,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'bracedletter',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             },
             {
               'text' => '
@@ -89,6 +110,19 @@ $result_trees{'value_after_brace_command'} = {
             },
             {
               'cmdname' => 'ringaccent',
+              'contents' => [
+                {
+                  'source_marks' => [
+                    {
+                      'counter' => 2,
+                      'line' => 'unknowncmd',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
+                  'text' => ''
+                }
+              ],
               'info' => {
                 'spaces_after_cmd_before_arg' => ' '
               },
@@ -96,7 +130,15 @@ $result_trees{'value_after_brace_command'} = {
                 'file_name' => '',
                 'line_nr' => 5,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'line' => 'unknowncmd',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             },
             {
               'text' => '
@@ -114,6 +156,19 @@ $result_trees{'value_after_brace_command'} = {
                 }
               ],
               'cmdname' => '^',
+              'contents' => [
+                {
+                  'source_marks' => [
+                    {
+                      'counter' => 3,
+                      'line' => 'bracedletter',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
+                  'text' => ''
+                }
+              ],
               'info' => {
                 'spaces_after_cmd_before_arg' => ' '
               },
@@ -121,7 +176,15 @@ $result_trees{'value_after_brace_command'} = {
                 'file_name' => '',
                 'line_nr' => 6,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'line' => 'bracedletter',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             },
             {
               'text' => '
@@ -129,6 +192,19 @@ $result_trees{'value_after_brace_command'} = {
             },
             {
               'cmdname' => '^',
+              'contents' => [
+                {
+                  'source_marks' => [
+                    {
+                      'counter' => 4,
+                      'line' => 'unknowncmd',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
+                  'text' => ''
+                }
+              ],
               'info' => {
                 'spaces_after_cmd_before_arg' => ' '
               },
@@ -136,7 +212,15 @@ $result_trees{'value_after_brace_command'} = {
                 'file_name' => '',
                 'line_nr' => 7,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 4,
+                  'line' => 'unknowncmd',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             },
             {
               'text' => '
@@ -154,6 +238,19 @@ $result_trees{'value_after_brace_command'} = {
                 }
               ],
               'cmdname' => 'code',
+              'contents' => [
+                {
+                  'source_marks' => [
+                    {
+                      'counter' => 5,
+                      'line' => 'bracedletter',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
+                  'text' => ''
+                }
+              ],
               'info' => {
                 'spaces_after_cmd_before_arg' => ' '
               },
@@ -161,7 +258,15 @@ $result_trees{'value_after_brace_command'} = {
                 'file_name' => '',
                 'line_nr' => 8,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 5,
+                  'line' => 'bracedletter',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             },
             {
               'text' => '
@@ -169,6 +274,19 @@ $result_trees{'value_after_brace_command'} = {
             },
             {
               'cmdname' => 'code',
+              'contents' => [
+                {
+                  'source_marks' => [
+                    {
+                      'counter' => 6,
+                      'line' => 'unknowncmd',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
+                  'text' => ''
+                }
+              ],
               'info' => {
                 'spaces_after_cmd_before_arg' => ' '
               },
@@ -176,7 +294,15 @@ $result_trees{'value_after_brace_command'} = {
                 'file_name' => '',
                 'line_nr' => 9,
                 'macro' => ''
-              }
+              },
+              'source_marks' => [
+                {
+                  'counter' => 6,
+                  'line' => 'unknowncmd',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ]
             },
             {
               'text' => '
diff --git a/tp/t/results/value/value_in_index_commands.pl 
b/tp/t/results/value/value_in_index_commands.pl
index 0bd177b91d..18001dd131 100644
--- a/tp/t/results/value/value_in_index_commands.pl
+++ b/tp/t/results/value/value_in_index_commands.pl
@@ -88,6 +88,29 @@ $result_trees{'value_in_index_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 1,
+                      'line' => 'cp',
+                      'position' => 2,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    },
+                    {
+                      'counter' => 2,
+                      'line' => 'fn',
+                      'position' => 3,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    },
+                    {
+                      'counter' => 2,
+                      'line' => 'fn',
+                      'position' => 5,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'cp fn'
                 }
               ],
@@ -109,6 +132,15 @@ $result_trees{'value_in_index_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'cp',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -116,7 +148,15 @@ $result_trees{'value_in_index_commands'} = {
             'file_name' => '',
             'line_nr' => 5,
             'macro' => ''
-          }
+          },
+          'source_marks' => [
+            {
+              'counter' => 3,
+              'line' => 'syncodeindex_command',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ]
         },
         {
           'args' => [
@@ -144,6 +184,14 @@ $result_trees{'value_in_index_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'line' => 'syncodeindex_command',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -197,6 +245,15 @@ $result_trees{'value_in_index_commands'} = {
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 4,
+                          'line' => 'truc',
+                          'position' => 4,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        }
+                      ],
                       'text' => 'truc'
                     }
                   ],
@@ -217,6 +274,15 @@ $result_trees{'value_in_index_commands'} = {
               },
               'info' => {
                 'spaces_before_argument' => {
+                  'source_marks' => [
+                    {
+                      'counter' => 4,
+                      'line' => 'truc',
+                      'position' => 1,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
                   'text' => ' '
                 }
               },
@@ -299,6 +365,15 @@ $result_trees{'value_in_index_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 5,
+                      'line' => 'codeidx',
+                      'position' => 7,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'codeidx'
                 }
               ],
@@ -319,6 +394,15 @@ $result_trees{'value_in_index_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 5,
+                  'line' => 'codeidx',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -384,6 +468,15 @@ $result_trees{'value_in_index_commands'} = {
       'cmdname' => 'node',
       'contents' => [
         {
+          'source_marks' => [
+            {
+              'counter' => 6,
+              'line' => 'trucindex_command',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -422,6 +515,14 @@ $result_trees{'value_in_index_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 6,
+                  'line' => 'trucindex_command',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -517,7 +618,15 @@ $result_trees{'value_in_index_commands'} = {
                     'file_name' => '',
                     'line_nr' => 26,
                     'macro' => ''
-                  }
+                  },
+                  'source_marks' => [
+                    {
+                      'counter' => 7,
+                      'line' => 'defcodeindex_entry',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ]
                 }
               ],
               'info' => {
@@ -546,6 +655,15 @@ $result_trees{'value_in_index_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 7,
+                  'line' => 'defcodeindex_entry',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -566,6 +684,15 @@ $result_trees{'value_in_index_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 8,
+                      'line' => 'truc',
+                      'position' => 4,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'truc kindex'
                 }
               ],
@@ -595,6 +722,15 @@ $result_trees{'value_in_index_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 8,
+                  'line' => 'truc',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -610,6 +746,22 @@ $result_trees{'value_in_index_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 9,
+                      'line' => 'codeidx',
+                      'position' => 7,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    },
+                    {
+                      'counter' => 9,
+                      'line' => 'codeidx',
+                      'position' => 14,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'pindex codeidx'
                 }
               ],
@@ -668,6 +820,15 @@ $result_trees{'value_in_index_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 10,
+                      'line' => 'truc',
+                      'position' => 4,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'truc'
                 }
               ],
@@ -688,6 +849,15 @@ $result_trees{'value_in_index_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 10,
+                  'line' => 'truc',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -716,6 +886,15 @@ $result_trees{'value_in_index_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 11,
+                      'line' => 'cp',
+                      'position' => 2,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'cp'
                 }
               ],
@@ -736,6 +915,15 @@ $result_trees{'value_in_index_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 11,
+                  'line' => 'cp',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
diff --git a/tp/t/results/value/value_in_invalid_documentencoding.pl 
b/tp/t/results/value/value_in_invalid_documentencoding.pl
index 5c1fb458af..85d0fed974 100644
--- a/tp/t/results/value/value_in_invalid_documentencoding.pl
+++ b/tp/t/results/value/value_in_invalid_documentencoding.pl
@@ -37,6 +37,15 @@ $result_trees{'value_in_invalid_documentencoding'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 1,
+                      'line' => 'badvalue',
+                      'position' => 3,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'bad'
                 }
               ],
@@ -55,6 +64,15 @@ $result_trees{'value_in_invalid_documentencoding'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'badvalue',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
diff --git a/tp/t/results/value/value_in_misc_commands.pl 
b/tp/t/results/value/value_in_misc_commands.pl
index 062b182ae4..fcce22ce6e 100644
--- a/tp/t/results/value/value_in_misc_commands.pl
+++ b/tp/t/results/value/value_in_misc_commands.pl
@@ -88,6 +88,22 @@ $result_trees{'value_in_misc_commands'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'text',
+                  'position' => 4,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 1,
+                  'line' => 'text',
+                  'position' => 9,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'top atext'
             }
           ],
@@ -107,6 +123,22 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 2,
+                      'line' => 'text',
+                      'position' => 14,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    },
+                    {
+                      'counter' => 2,
+                      'line' => 'text',
+                      'position' => 19,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'Comment like: atext'
                 }
               ],
@@ -237,6 +269,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 3,
+                      'line' => 'pagesizes_arg',
+                      'position' => 11,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => '200mm,150mm'
                 }
               ],
@@ -252,6 +293,15 @@ $result_trees{'value_in_misc_commands'} = {
           'cmdname' => 'pagesizes',
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'line' => 'pagesizes_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -259,7 +309,15 @@ $result_trees{'value_in_misc_commands'} = {
             'file_name' => '',
             'line_nr' => 14,
             'macro' => ''
-          }
+          },
+          'source_marks' => [
+            {
+              'counter' => 4,
+              'line' => 'afourpaper_macro',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ]
         },
         {
           'args' => [
@@ -281,6 +339,22 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 5,
+                      'line' => 'text',
+                      'position' => 27,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    },
+                    {
+                      'counter' => 5,
+                      'line' => 'text',
+                      'position' => 32,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'on line following headings atext'
                 }
               ],
@@ -310,6 +384,22 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 6,
+                      'line' => 'text',
+                      'position' => 18,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    },
+                    {
+                      'counter' => 6,
+                      'line' => 'text',
+                      'position' => 23,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'some text ignored atext'
                 }
               ],
@@ -339,6 +429,22 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 7,
+                      'line' => 'text',
+                      'position' => 31,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    },
+                    {
+                      'counter' => 7,
+                      'line' => 'text',
+                      'position' => 36,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'on line following everyheading atext'
                 }
               ],
@@ -401,6 +507,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 8,
+                      'line' => 'need_arg',
+                      'position' => 3,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => '0.1'
                 }
               ],
@@ -421,6 +536,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 8,
+                  'line' => 'need_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -456,7 +580,15 @@ $result_trees{'value_in_misc_commands'} = {
           'info' => {
             'arg_line' => ' raisesections_macro @raisesections
 '
-          }
+          },
+          'source_marks' => [
+            {
+              'counter' => 9,
+              'line' => 'raisesections_macro',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ]
         },
         {
           'args' => [
@@ -489,7 +621,15 @@ $result_trees{'value_in_misc_commands'} = {
           'info' => {
             'arg_line' => ' lowersections_macro @lowersections
 '
-          }
+          },
+          'source_marks' => [
+            {
+              'counter' => 10,
+              'line' => 'lowersections_macro',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ]
         },
         {
           'args' => [
@@ -639,6 +779,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 11,
+                      'line' => 'definfoenclose_name',
+                      'position' => 3,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'phi,:,:'
                 }
               ],
@@ -661,6 +810,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 11,
+                  'line' => 'definfoenclose_name',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -759,6 +917,15 @@ $result_trees{'value_in_misc_commands'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 12,
+              'line' => 'strong_macro',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -777,6 +944,19 @@ $result_trees{'value_in_misc_commands'} = {
                 }
               ],
               'cmdname' => 'strong',
+              'contents' => [
+                {
+                  'source_marks' => [
+                    {
+                      'counter' => 12,
+                      'line' => 'strong_macro',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
+                  'text' => ''
+                }
+              ],
               'source_info' => {
                 'file_name' => '',
                 'line_nr' => 47,
@@ -800,6 +980,29 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 13,
+                      'line' => 'strong_name',
+                      'position' => 6,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    },
+                    {
+                      'counter' => 14,
+                      'line' => 'strong_name',
+                      'position' => 8,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    },
+                    {
+                      'counter' => 14,
+                      'line' => 'strong_name',
+                      'position' => 14,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'strong,(strong:,:)'
                 }
               ],
@@ -822,6 +1025,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 13,
+                  'line' => 'strong_name',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -832,6 +1044,15 @@ $result_trees{'value_in_misc_commands'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 15,
+              'line' => 'strong_macro',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -850,6 +1071,19 @@ $result_trees{'value_in_misc_commands'} = {
                 }
               ],
               'cmdname' => 'strong',
+              'contents' => [
+                {
+                  'source_marks' => [
+                    {
+                      'counter' => 15,
+                      'line' => 'strong_macro',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
+                  'text' => ''
+                }
+              ],
               'extra' => {
                 'begin' => '(strong:',
                 'end' => ':)'
@@ -933,6 +1167,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 16,
+                      'line' => 'kbdinputstyle_arg',
+                      'position' => 4,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'code'
                 }
               ],
@@ -953,6 +1196,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 16,
+                  'line' => 'kbdinputstyle_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1215,6 +1467,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 17,
+                      'line' => 'asis_arg',
+                      'position' => 4,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'asis'
                 }
               ],
@@ -1235,6 +1496,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 17,
+                  'line' => 'asis_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1249,6 +1519,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 18,
+                      'line' => 'zero',
+                      'position' => 1,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => '0'
                 }
               ],
@@ -1269,6 +1548,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 18,
+                  'line' => 'zero',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1283,6 +1571,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 19,
+                      'line' => 'none_arg',
+                      'position' => 4,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'none'
                 }
               ],
@@ -1303,6 +1600,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 19,
+                  'line' => 'none_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1317,6 +1623,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 20,
+                      'line' => 'four',
+                      'position' => 1,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => '4'
                 }
               ],
@@ -1337,6 +1652,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 20,
+                  'line' => 'four',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1351,6 +1675,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 21,
+                      'line' => 'none_arg',
+                      'position' => 4,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'none'
                 }
               ],
@@ -1371,6 +1704,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 21,
+                  'line' => 'none_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1385,6 +1727,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 22,
+                      'line' => 'six',
+                      'position' => 1,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => '6'
                 }
               ],
@@ -1405,6 +1756,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 22,
+                  'line' => 'six',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1470,6 +1830,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 23,
+                      'line' => 'end_arg',
+                      'position' => 3,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'end'
                 }
               ],
@@ -1490,6 +1859,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 23,
+                  'line' => 'end_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1504,6 +1882,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 24,
+                      'line' => 'separate_arg',
+                      'position' => 8,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'separate'
                 }
               ],
@@ -1524,6 +1911,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 24,
+                  'line' => 'separate_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1566,6 +1962,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 25,
+                      'line' => 'latin1',
+                      'position' => 10,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'ISO-8859-1'
                 }
               ],
@@ -1586,6 +1991,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 25,
+                  'line' => 'latin1',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1661,6 +2075,15 @@ $result_trees{'value_in_misc_commands'} = {
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 26,
+                          'line' => 'en',
+                          'position' => 2,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        }
+                      ],
                       'text' => 'en'
                     }
                   ],
@@ -1679,6 +2102,15 @@ $result_trees{'value_in_misc_commands'} = {
               },
               'info' => {
                 'spaces_before_argument' => {
+                  'source_marks' => [
+                    {
+                      'counter' => 26,
+                      'line' => 'en',
+                      'position' => 2,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'start'
+                    }
+                  ],
                   'text' => '  '
                 }
               },
@@ -1699,6 +2131,15 @@ $result_trees{'value_in_misc_commands'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 27,
+                  'line' => 'documentlanguage_command',
+                  'position' => 29,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'documentlanguage on its line
 '
             },
@@ -1725,6 +2166,14 @@ $result_trees{'value_in_misc_commands'} = {
               },
               'info' => {
                 'spaces_before_argument' => {
+                  'source_marks' => [
+                    {
+                      'counter' => 27,
+                      'line' => 'documentlanguage_command',
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => '  '
                 }
               },
@@ -1797,6 +2246,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 28,
+                      'line' => 'on_arg',
+                      'position' => 2,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'on'
                 }
               ],
@@ -1817,6 +2275,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 28,
+                  'line' => 'on_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1831,6 +2298,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 29,
+                      'line' => 'off_arg',
+                      'position' => 3,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'off'
                 }
               ],
@@ -1851,6 +2327,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 29,
+                  'line' => 'off_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -1909,6 +2394,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 30,
+                      'line' => 'ten',
+                      'position' => 2,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => '10'
                 }
               ],
@@ -1929,6 +2423,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 30,
+                  'line' => 'ten',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -2026,6 +2529,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 31,
+                      'line' => 'false_arg',
+                      'position' => 5,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'false'
                 }
               ],
@@ -2046,6 +2558,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 31,
+                  'line' => 'false_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -2065,6 +2586,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 32,
+                      'line' => 'true_arg',
+                      'position' => 4,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => 'true'
                 }
               ],
@@ -2085,6 +2615,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 32,
+                  'line' => 'true_arg',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -2179,6 +2718,15 @@ $result_trees{'value_in_misc_commands'} = {
               'cmdname' => '@'
             },
             {
+              'source_marks' => [
+                {
+                  'counter' => 33,
+                  'line' => 'page_macro',
+                  'position' => 5,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'page '
             }
           ],
@@ -2195,6 +2743,15 @@ $result_trees{'value_in_misc_commands'} = {
           'cmdname' => 'page'
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 34,
+              'line' => 'noindent_macro',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -2208,12 +2765,29 @@ $result_trees{'value_in_misc_commands'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 34,
+              'line' => 'noindent_macro',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'end'
+            }
+          ],
           'text' => '     ',
           'type' => 'ignorable_spaces_after_command'
         },
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 35,
+                  'line' => 'noindent_macro',
+                  'position' => 30,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'noindent at beginning of line
 '
             },
@@ -2226,6 +2800,14 @@ $result_trees{'value_in_misc_commands'} = {
               }
             },
             {
+              'source_marks' => [
+                {
+                  'counter' => 35,
+                  'line' => 'noindent_macro',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => '
 ',
               'type' => 'ignorable_spaces_after_command'
@@ -2235,6 +2817,15 @@ $result_trees{'value_in_misc_commands'} = {
 '
             },
             {
+              'source_marks' => [
+                {
+                  'counter' => 36,
+                  'line' => 'noindent_macro',
+                  'position' => 2,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => '  '
             },
             {
@@ -2246,6 +2837,14 @@ $result_trees{'value_in_misc_commands'} = {
               }
             },
             {
+              'source_marks' => [
+                {
+                  'counter' => 36,
+                  'line' => 'noindent_macro',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => '    ',
               'type' => 'ignorable_spaces_after_command'
             },
@@ -2299,6 +2898,15 @@ $result_trees{'value_in_misc_commands'} = {
               'cmdname' => '@'
             },
             {
+              'source_marks' => [
+                {
+                  'counter' => 37,
+                  'line' => 'page_macro',
+                  'position' => 5,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'page '
             }
           ],
@@ -2340,7 +2948,15 @@ $result_trees{'value_in_misc_commands'} = {
           'info' => {
             'arg_line' => ' contents_macro @contents
 '
-          }
+          },
+          'source_marks' => [
+            {
+              'counter' => 38,
+              'line' => 'contents_macro',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ]
         },
         {
           'args' => [
@@ -2404,7 +3020,15 @@ $result_trees{'value_in_misc_commands'} = {
           'info' => {
             'arg_line' => ' exdent_macro @exdent
 '
-          }
+          },
+          'source_marks' => [
+            {
+              'counter' => 39,
+              'line' => 'exdent_macro',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ]
         },
         {
           'args' => [
@@ -2426,6 +3050,14 @@ $result_trees{'value_in_misc_commands'} = {
           'cmdname' => 'exdent',
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 39,
+                  'line' => 'exdent_macro',
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -2468,6 +3100,15 @@ $result_trees{'value_in_misc_commands'} = {
             {
               'contents' => [
                 {
+                  'source_marks' => [
+                    {
+                      'counter' => 40,
+                      'line' => 'two',
+                      'position' => 1,
+                      'sourcemark_type' => 'value_expansion',
+                      'status' => 'end'
+                    }
+                  ],
                   'text' => '2'
                 }
               ],
@@ -2488,6 +3129,15 @@ $result_trees{'value_in_misc_commands'} = {
           },
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 40,
+                  'line' => 'two',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -2554,6 +3204,15 @@ $result_trees{'value_in_misc_commands'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 41,
+              'line' => 'contents_macro',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
@@ -2599,7 +3258,15 @@ $result_trees{'value_in_misc_commands'} = {
           'info' => {
             'arg_line' => ' shortcontents_macro @shortcontents
 '
-          }
+          },
+          'source_marks' => [
+            {
+              'counter' => 42,
+              'line' => 'shortcontents_macro',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ]
         },
         {
           'args' => [
@@ -2645,6 +3312,15 @@ $result_trees{'value_in_misc_commands'} = {
           }
         },
         {
+          'source_marks' => [
+            {
+              'counter' => 43,
+              'line' => 'bye_macro',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => '
 ',
           'type' => 'empty_line'
diff --git a/tp/t/results/value/value_in_node.pl 
b/tp/t/results/value/value_in_node.pl
index d2942fc5b1..f51e8dcbbd 100644
--- a/tp/t/results/value/value_in_node.pl
+++ b/tp/t/results/value/value_in_node.pl
@@ -200,6 +200,21 @@ $result_trees{'value_in_node'} = {
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 1,
+                          'line' => 'node1',
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 1,
+                          'line' => 'node1',
+                          'position' => 6,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        }
+                      ],
                       'text' => 'Node 1'
                     },
                     {
@@ -306,6 +321,15 @@ $result_trees{'value_in_node'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'line' => 'node1',
+                  'position' => 6,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'Node 1'
             }
           ],
@@ -375,6 +399,15 @@ $result_trees{'value_in_node'} = {
       },
       'info' => {
         'spaces_before_argument' => {
+          'source_marks' => [
+            {
+              'counter' => 2,
+              'line' => 'node1',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => ' '
         }
       },
@@ -459,6 +492,21 @@ $result_trees{'value_in_node'} = {
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 3,
+                          'line' => 'sec1',
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 3,
+                          'line' => 'sec1',
+                          'position' => 11,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        }
+                      ],
                       'text' => 'Section 1.1'
                     }
                   ],
@@ -618,6 +666,26 @@ $result_trees{'value_in_node'} = {
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 4,
+                          'line' => 'node1',
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        }
+                      ],
+                      'text' => ''
+                    },
+                    {
+                      'source_marks' => [
+                        {
+                          'counter' => 4,
+                          'line' => 'node1',
+                          'position' => 6,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        }
+                      ],
                       'text' => 'Node 1'
                     }
                   ],
@@ -629,6 +697,7 @@ $result_trees{'value_in_node'} = {
                 'label' => {},
                 'node_argument' => {
                   'node_content' => [
+                    {},
                     {}
                   ],
                   'normalized' => 'Node-1'
@@ -703,6 +772,7 @@ 
$result_trees{'value_in_node'}{'contents'}[3]{'extra'}{'nodes_manuals'}[3]{'node
 
$result_trees{'value_in_node'}{'contents'}[4]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_node_label'}{'node_content'}[0]
 = 
$result_trees{'value_in_node'}{'contents'}[4]{'contents'}[3]{'contents'}[0]{'contents'}[1]{'contents'}[0];
 
$result_trees{'value_in_node'}{'contents'}[5]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}
 = $result_trees{'value_in_node'}{'contents'}[3];
 
$result_trees{'value_in_node'}{'contents'}[5]{'contents'}[1]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[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]{'extra'}{'node_argument'}{'node_content'}[1]
 = 
$result_trees{'value_in_node'}{'contents'}[5]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1];
 $result_trees{'value_in_node'}{'contents'}[5]{'extra'}{'node_content'}[0] = 
$result_trees{'value_in_node'}{'contents'}[5]{'args'}[0]{'contents'}[0];
 
$result_trees{'value_in_node'}{'contents'}[5]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = $result_trees{'value_in_node'}{'contents'}[5]{'args'}[0]{'contents'}[0];
 
$result_trees{'value_in_node'}{'contents'}[5]{'extra'}{'nodes_manuals'}[2]{'node_content'}[0]
 = $result_trees{'value_in_node'}{'contents'}[5]{'args'}[2]{'contents'}[0];
diff --git a/tp/t/results/value/value_node_directions.pl 
b/tp/t/results/value/value_node_directions.pl
index 7524af4b88..2a56b29e0e 100644
--- a/tp/t/results/value/value_node_directions.pl
+++ b/tp/t/results/value/value_node_directions.pl
@@ -53,11 +53,29 @@ $result_trees{'value_node_directions'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'a--foo',
+                  'position' => 3,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'bar'
             }
           ],
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'a--foo',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
@@ -153,6 +171,22 @@ $result_trees{'value_node_directions'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 2,
+                  'line' => 'a--foo',
+                  'position' => 4,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
+                {
+                  'counter' => 2,
+                  'line' => 'a--foo',
+                  'position' => 7,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'Var bar'
             }
           ],
@@ -167,9 +201,29 @@ $result_trees{'value_node_directions'} = {
       ],
       'cmdname' => 'top',
       'contents' => [
+        {
+          'source_marks' => [
+            {
+              'counter' => 3,
+              'line' => 'a--foo',
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
+          'text' => ''
+        },
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 3,
+                  'line' => 'a--foo',
+                  'position' => 3,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'bar
 '
             }
@@ -199,6 +253,15 @@ $result_trees{'value_node_directions'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 4,
+                  'line' => 'a--foo',
+                  'position' => 3,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'bar'
             }
           ],
@@ -288,6 +351,15 @@ $result_trees{'value_node_directions'} = {
       },
       'info' => {
         'spaces_before_argument' => {
+          'source_marks' => [
+            {
+              'counter' => 4,
+              'line' => 'a--foo',
+              'position' => 1,
+              'sourcemark_type' => 'value_expansion',
+              'status' => 'start'
+            }
+          ],
           'text' => ' '
         }
       },
@@ -355,11 +427,29 @@ $result_trees{'value_node_directions'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 5,
+                  'line' => 'a--foo',
+                  'position' => 3,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => 'bar'
             }
           ],
           'info' => {
             'spaces_before_argument' => {
+              'source_marks' => [
+                {
+                  'counter' => 5,
+                  'line' => 'a--foo',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => ' '
             }
           },
diff --git a/tp/t/results/value/value_zero.pl b/tp/t/results/value/value_zero.pl
index cc1fd574a4..ff827826d4 100644
--- a/tp/t/results/value/value_zero.pl
+++ b/tp/t/results/value/value_zero.pl
@@ -35,10 +35,28 @@ $result_trees{'value_zero'} = {
         {
           'contents' => [
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'zero',
+                  'position' => 6,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                }
+              ],
               'text' => 'Value
 '
             },
             {
+              'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'zero',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
+                }
+              ],
               'text' => '0'
             }
           ],
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 444c82d2d4..da367b2083 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
@@ -136,6 +136,22 @@ $result_trees{'comma_value_in_macro_arg'} = {
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 1,
+                          'line' => 'comma',
+                          'position' => 5,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 1,
+                          'line' => 'comma',
+                          'position' => 6,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        }
+                      ],
                       'text' => 'arg1 , arg2 '
                     }
                   ],
diff --git a/tp/t/results/value_and_macro/macro_in_value.pl 
b/tp/t/results/value_and_macro/macro_in_value.pl
index 1919f490b6..fb47107d8b 100644
--- a/tp/t/results/value_and_macro/macro_in_value.pl
+++ b/tp/t/results/value_and_macro/macro_in_value.pl
@@ -113,6 +113,13 @@ $result_trees{'macro_in_value'} = {
           'contents' => [
             {
               'source_marks' => [
+                {
+                  'counter' => 1,
+                  'line' => 'flagab',
+                  'position' => 8,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'start'
+                },
                 {
                   'counter' => 1,
                   'element' => {
@@ -146,6 +153,13 @@ $result_trees{'macro_in_value'} = {
                   'position' => 1,
                   'sourcemark_type' => 'macro_expansion',
                   'status' => 'end'
+                },
+                {
+                  'counter' => 1,
+                  'line' => 'flagab',
+                  'position' => 1,
+                  'sourcemark_type' => 'value_expansion',
+                  'status' => 'end'
                 }
               ],
               'text' => 'b
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 03bdfaddad..a34593c5fe 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
@@ -132,6 +132,22 @@ $result_trees{'value_in_macro_body'} = {
                 {
                   'contents' => [
                     {
+                      'source_marks' => [
+                        {
+                          'counter' => 1,
+                          'line' => 'bodyarg',
+                          'position' => 1,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'start'
+                        },
+                        {
+                          'counter' => 1,
+                          'line' => 'bodyarg',
+                          'position' => 6,
+                          'sourcemark_type' => 'value_expansion',
+                          'status' => 'end'
+                        }
+                      ],
                       'text' => '\\\\arg\\  '
                     }
                   ],



reply via email to

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