use vars qw(%result_texis %result_texts %result_trees %result_errors %result_indices %result_sectioning %result_nodes %result_menus %result_floats %result_converted %result_converted_errors %result_elements %result_directions_text); use utf8; $result_trees{'macro_and_args'} = { 'contents' => [ { 'args' => [ { 'parent' => {}, 'text' => 'good', 'type' => 'macro_name' }, { 'parent' => {}, 'text' => 'aaa', 'type' => 'macro_arg' }, { 'parent' => {}, 'text' => '2b-bb', 'type' => 'macro_arg' } ], 'cmdname' => 'macro', 'contents' => [], 'extra' => { 'arg_line' => ' good { aaa, 2b-bb} ', 'args_index' => { '2b-bb' => 1, 'aaa' => 0 }, 'macrobody' => '', 'spaces_after_command' => { 'extra' => { 'command' => {} }, 'parent' => {}, 'text' => ' ', 'type' => 'empty_line_after_command' } }, 'line_nr' => { 'file_name' => '', 'line_nr' => 1, 'macro' => '' }, 'parent' => {} }, {}, { 'parent' => {}, 'text' => ' ', 'type' => 'empty_line' }, { 'args' => [ { 'parent' => {}, 'text' => 'bad', 'type' => 'macro_name' }, { 'parent' => {}, 'text' => 'ggg"@@^_ ff', 'type' => 'macro_arg' }, { 'parent' => {}, 'text' => 'nnn_b', 'type' => 'macro_arg' }, { 'parent' => {}, 'text' => 'ccc v', 'type' => 'macro_arg' } ], 'cmdname' => 'macro', 'contents' => [], 'extra' => { 'arg_line' => ' bad { ggg"@@^_ ff, nnn_b, ccc v} ', 'args_index' => { 'ccc v' => 2, 'ggg"@@^_ ff' => 0, 'nnn_b' => 1 }, 'invalid_syntax' => 1, 'macrobody' => '', 'spaces_after_command' => { 'extra' => { 'command' => {} }, 'parent' => {}, 'text' => ' ', 'type' => 'empty_line_after_command' } }, 'line_nr' => { 'file_name' => '', 'line_nr' => 4, 'macro' => '' }, 'parent' => {} }, {} ], 'type' => 'text_root' }; $result_trees{'macro_and_args'}{'contents'}[0]{'args'}[0]{'parent'} = $result_trees{'macro_and_args'}{'contents'}[0]; $result_trees{'macro_and_args'}{'contents'}[0]{'args'}[1]{'parent'} = $result_trees{'macro_and_args'}{'contents'}[0]; $result_trees{'macro_and_args'}{'contents'}[0]{'args'}[2]{'parent'} = $result_trees{'macro_and_args'}{'contents'}[0]; $result_trees{'macro_and_args'}{'contents'}[0]{'extra'}{'spaces_after_command'}{'extra'}{'command'} = $result_trees{'macro_and_args'}{'contents'}[0]; $result_trees{'macro_and_args'}{'contents'}[0]{'extra'}{'spaces_after_command'}{'parent'} = $result_trees{'macro_and_args'}; $result_trees{'macro_and_args'}{'contents'}[0]{'parent'} = $result_trees{'macro_and_args'}; $result_trees{'macro_and_args'}{'contents'}[1] = $result_trees{'macro_and_args'}{'contents'}[0]{'extra'}{'spaces_after_command'}; $result_trees{'macro_and_args'}{'contents'}[2]{'parent'} = $result_trees{'macro_and_args'}; $result_trees{'macro_and_args'}{'contents'}[3]{'args'}[0]{'parent'} = $result_trees{'macro_and_args'}{'contents'}[3]; $result_trees{'macro_and_args'}{'contents'}[3]{'args'}[1]{'parent'} = $result_trees{'macro_and_args'}{'contents'}[3]; $result_trees{'macro_and_args'}{'contents'}[3]{'args'}[2]{'parent'} = $result_trees{'macro_and_args'}{'contents'}[3]; $result_trees{'macro_and_args'}{'contents'}[3]{'args'}[3]{'parent'} = $result_trees{'macro_and_args'}{'contents'}[3]; $result_trees{'macro_and_args'}{'contents'}[3]{'extra'}{'spaces_after_command'}{'extra'}{'command'} = $result_trees{'macro_and_args'}{'contents'}[3]; $result_trees{'macro_and_args'}{'contents'}[3]{'extra'}{'spaces_after_command'}{'parent'} = $result_trees{'macro_and_args'}; $result_trees{'macro_and_args'}{'contents'}[3]{'parent'} = $result_trees{'macro_and_args'}; $result_trees{'macro_and_args'}{'contents'}[4] = $result_trees{'macro_and_args'}{'contents'}[3]{'extra'}{'spaces_after_command'}; $result_texis{'macro_and_args'} = '@macro good { aaa, 2b-bb} @end macro @macro bad { ggg"@@^_ ff, nnn_b, ccc v} @end macro '; $result_texts{'macro_and_args'} = ' '; $result_errors{'macro_and_args'} = [ { 'error_line' => ':4: bad or empty @macro formal argument: ggg"@@^_ ff ', 'file_name' => '', 'line_nr' => 4, 'macro' => '', 'text' => 'bad or empty @macro formal argument: ggg"@@^_ ff', 'type' => 'error' }, { 'error_line' => ':4: bad or empty @macro formal argument: ccc v ', 'file_name' => '', 'line_nr' => 4, 'macro' => '', 'text' => 'bad or empty @macro formal argument: ccc v', 'type' => 'error' } ]; $result_converted{'xml'}->{'macro_and_args'} = 'aaa2b-bb ggg"@@^_ ffnnn_bccc v '; 1;