[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp TODO Texinfo/Parser.pm t/50value.t t...
From: |
Patrice Dumas |
Subject: |
texinfo/tp TODO Texinfo/Parser.pm t/50value.t t... |
Date: |
Sat, 02 Oct 2010 13:25:08 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 10/10/02 13:25:08
Modified files:
tp : TODO
tp/Texinfo : Parser.pm
tp/t : 50value.t 60macro.t
Added files:
tp/t : 70value_and_macro.t
tp/t/results/macro: macro_no_arg_bad_expansion.pl
macro_no_arg_expansion.pl
tp/t/results/value: empty_set.pl
tp/t/results/value_and_macro: comma_value_in_macro_arg.pl
macro_in_value.pl
value_in_macro_body.pl
value_in_macro_formal_arg.pl
Log message:
Hansle empty @set.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/50value.t?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/60macro.t?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/70value_and_macro.t?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_no_arg_bad_expansion.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_no_arg_expansion.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value/empty_set.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value_and_macro/comma_value_in_macro_arg.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value_and_macro/macro_in_value.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value_and_macro/value_in_macro_body.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value_and_macro/value_in_macro_formal_arg.pl?cvsroot=texinfo&rev=1.1
Patches:
Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- TODO 30 Sep 2010 22:03:52 -0000 1.3
+++ TODO 2 Oct 2010 13:25:07 -0000 1.4
@@ -15,3 +15,11 @@
test root_commands, like nodes and sections
values and user defined macro expansion in line @-commands, line
@-commands argument checking.
+
+Test @set with an argument but no space following it. In ifset tests.
+
+test something @macro
+qsmlsmqldk
address@hidden macro sqjsqdlkjhdsq
+
+
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- Texinfo/Parser.pm 2 Oct 2010 10:03:41 -0000 1.34
+++ Texinfo/Parser.pm 2 Oct 2010 13:25:07 -0000 1.35
@@ -1976,9 +1976,11 @@
if ($command eq 'set') {
- if ($line =~ /^(\s+)([\w\-]+)(\s+)(.*)$/) {
- $args = [$2, $4];
- $self->{'values'}->{$2} = $4;
+ if ($line =~ /^\s+([\w\-]+)\s*(.*?)\s*$/) {
+ my $name = $1;
+ my $arg = $2;
+ $args = [$name, $arg];
+ $self->{'values'}->{$name} = $arg;
} else {
_line_error ($self, sprintf($self->
__("%c%s requires a name"), ord('@'), $command), $line_nr);
Index: t/50value.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/50value.t,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/50value.t 2 Oct 2010 10:03:41 -0000 1.2
+++ t/50value.t 2 Oct 2010 13:25:08 -0000 1.3
@@ -23,8 +23,12 @@
'@set zero 0
Value
@value{zero}'
-]
+],
+['empty_set',
+'@set myspace
+1 @value{myspace} 1
+']
);
our ($arg_test_case, $arg_generate, $arg_debug);
Index: t/60macro.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/60macro.t,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/60macro.t 2 Oct 2010 10:03:41 -0000 1.4
+++ t/60macro.t 2 Oct 2010 13:25:08 -0000 1.5
@@ -45,6 +45,20 @@
@end macro
@end macro
'],
+['macro_no_arg_expansion',
+'@macro test1
+res1
address@hidden macro
+
address@hidden abc
+'],
+['macro_no_arg_bad_expansion',
+'@macro test1
+res1
address@hidden macro
+
address@hidden abc
+'],
['macro_expansion','
@macro macro1 {arg1, arg2 }
result of a macro with \arg1\ and
Index: t/70value_and_macro.t
===================================================================
RCS file: t/70value_and_macro.t
diff -N t/70value_and_macro.t
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/70value_and_macro.t 2 Oct 2010 13:25:08 -0000 1.1
@@ -0,0 +1,53 @@
+use strict;
+
+use Test::More;
+
+require 't/test_utils.pl';
+
+my @test_cases = (
+['macro_in_value',
+'@macro ab
+a
+
+b
address@hidden macro
+
address@hidden flagab @ab
+
+flagab: @value{flagab}
+'],
+['comma_value_in_macro_arg',
+'@set comma ,
+
address@hidden macro1 { arg1 , arg2 }
+result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
address@hidden macro
+
address@hidden { arg1 @value{comma} arg2 }
+'],
+['value_in_macro_body',
+'@set bodyarg \\arg\\
+
address@hidden testvaluebody { arg }
+result: @address@hidden }
address@hidden macro
+
address@hidden
+'],
+['value_in_macro_formal_arg',
+'@set argument arg
+
address@hidden testvalue { arg , address@hidden }
+result: @emph{\\arg\\} the \\the\\ thearg \\thearg\\ with value address@hidden
address@hidden macro
+
address@hidden
+']
+);
+
+
+our ($arg_test_case, $arg_generate, $arg_debug);
+
+run_all ('value_and_macro', address@hidden, $arg_test_case,
+ $arg_generate, $arg_debug);
+
Index: t/results/macro/macro_no_arg_bad_expansion.pl
===================================================================
RCS file: t/results/macro/macro_no_arg_bad_expansion.pl
diff -N t/results/macro/macro_no_arg_bad_expansion.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/macro/macro_no_arg_bad_expansion.pl 2 Oct 2010 13:25:08
-0000 1.1
@@ -0,0 +1,75 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'macro_no_arg_bad_expansion'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'test1',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'res1
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' test1
+',
+ 'macrobody' => 'res1
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'res1 abc
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ]
+};
+$result_trees{'macro_no_arg_bad_expansion'}{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'macro_no_arg_bad_expansion'}{'contents'}[0];
+$result_trees{'macro_no_arg_bad_expansion'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'macro_no_arg_bad_expansion'}{'contents'}[0];
+$result_trees{'macro_no_arg_bad_expansion'}{'contents'}[0]{'parent'} =
$result_trees{'macro_no_arg_bad_expansion'};
+$result_trees{'macro_no_arg_bad_expansion'}{'contents'}[1]{'parent'} =
$result_trees{'macro_no_arg_bad_expansion'};
+$result_trees{'macro_no_arg_bad_expansion'}{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'macro_no_arg_bad_expansion'}{'contents'}[2];
+$result_trees{'macro_no_arg_bad_expansion'}{'contents'}[2]{'parent'} =
$result_trees{'macro_no_arg_bad_expansion'};
+
+$result_texts{'macro_no_arg_bad_expansion'} = '@macro test1
+res1
address@hidden macro
+
+res1 abc
+';
+
+$result_errors{'macro_no_arg_bad_expansion'} = [
+ {
+ 'error_line' => ':5: warning: @test1 defined with zero or more than one
argument should be invoked with {}
+',
+ 'file_name' => '',
+ 'line_nr' => 5,
+ 'macro' => '',
+ 'text' => '@test1 defined with zero or more than one argument should be
invoked with {}',
+ 'type' => 'warning'
+ }
+];
+
+
Index: t/results/macro/macro_no_arg_expansion.pl
===================================================================
RCS file: t/results/macro/macro_no_arg_expansion.pl
diff -N t/results/macro/macro_no_arg_expansion.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/macro/macro_no_arg_expansion.pl 2 Oct 2010 13:25:08 -0000
1.1
@@ -0,0 +1,65 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'macro_no_arg_expansion'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'test1',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'res1
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' test1
+',
+ 'macrobody' => 'res1
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'res1 abc
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ]
+};
+$result_trees{'macro_no_arg_expansion'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'macro_no_arg_expansion'}{'contents'}[0];
+$result_trees{'macro_no_arg_expansion'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'macro_no_arg_expansion'}{'contents'}[0];
+$result_trees{'macro_no_arg_expansion'}{'contents'}[0]{'parent'} =
$result_trees{'macro_no_arg_expansion'};
+$result_trees{'macro_no_arg_expansion'}{'contents'}[1]{'parent'} =
$result_trees{'macro_no_arg_expansion'};
+$result_trees{'macro_no_arg_expansion'}{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'macro_no_arg_expansion'}{'contents'}[2];
+$result_trees{'macro_no_arg_expansion'}{'contents'}[2]{'parent'} =
$result_trees{'macro_no_arg_expansion'};
+
+$result_texts{'macro_no_arg_expansion'} = '@macro test1
+res1
address@hidden macro
+
+res1 abc
+';
+
+$result_errors{'macro_no_arg_expansion'} = [];
+
+
Index: t/results/value/empty_set.pl
===================================================================
RCS file: t/results/value/empty_set.pl
diff -N t/results/value/empty_set.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/value/empty_set.pl 2 Oct 2010 13:25:08 -0000 1.1
@@ -0,0 +1,54 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'empty_set'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'myspace',
+ 'type' => 'misc_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => '',
+ 'type' => 'misc_arg'
+ }
+ ],
+ 'cmdname' => 'set',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '1 1
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ]
+};
+$result_trees{'empty_set'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'empty_set'}{'contents'}[0];
+$result_trees{'empty_set'}{'contents'}[0]{'args'}[1]{'parent'} =
$result_trees{'empty_set'}{'contents'}[0];
+$result_trees{'empty_set'}{'contents'}[0]{'parent'} =
$result_trees{'empty_set'};
+$result_trees{'empty_set'}{'contents'}[1]{'parent'} =
$result_trees{'empty_set'};
+$result_trees{'empty_set'}{'contents'}[2]{'contents'}[0]{'parent'} =
$result_trees{'empty_set'}{'contents'}[2];
+$result_trees{'empty_set'}{'contents'}[2]{'parent'} =
$result_trees{'empty_set'};
+
+$result_texts{'empty_set'} = '@set myspace
+
+1 1
+';
+
+$result_errors{'empty_set'} = [];
+
+
Index: t/results/value_and_macro/comma_value_in_macro_arg.pl
===================================================================
RCS file: t/results/value_and_macro/comma_value_in_macro_arg.pl
diff -N t/results/value_and_macro/comma_value_in_macro_arg.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/value_and_macro/comma_value_in_macro_arg.pl 2 Oct 2010
13:25:08 -0000 1.1
@@ -0,0 +1,154 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'comma_value_in_macro_arg'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'comma',
+ 'type' => 'misc_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => ',',
+ 'type' => 'misc_arg'
+ }
+ ],
+ 'cmdname' => 'set',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro1',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg1',
+ 'type' => 'macro_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg2',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\
@emph{\\arg2\\}
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg1' => 0,
+ 'arg2' => 1
+ },
+ 'macro_line' => ' macro1 { arg1 , arg2 }
+',
+ 'macrobody' => 'result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\
@emph{\\arg2\\}
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'result: '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'arg1 , arg2 '
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'emph',
+ 'parent' => {},
+ 'remaining_args' => 0
+ },
+ {
+ 'parent' => {},
+ 'text' => ' protected \\ -> \\arg1\\ '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'emph',
+ 'parent' => {},
+ 'remaining_args' => 0
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ }
+ ]
+};
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[0];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[0]{'args'}[1]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[0];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[0]{'parent'} =
$result_trees{'comma_value_in_macro_arg'};
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[1]{'parent'} =
$result_trees{'comma_value_in_macro_arg'};
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[2];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[2]{'args'}[1]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[2];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[2]{'args'}[2]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[2];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[2];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[2]{'parent'} =
$result_trees{'comma_value_in_macro_arg'};
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[3]{'parent'} =
$result_trees{'comma_value_in_macro_arg'};
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[0]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[4];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[1]{'args'}[0];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[1];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[1]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[4];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[2]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[4];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[3]{'args'}[0]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[3];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'contents'}[3]{'parent'}
= $result_trees{'comma_value_in_macro_arg'}{'contents'}[4];
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[4]{'parent'} =
$result_trees{'comma_value_in_macro_arg'};
+$result_trees{'comma_value_in_macro_arg'}{'contents'}[5]{'parent'} =
$result_trees{'comma_value_in_macro_arg'};
+
+$result_texts{'comma_value_in_macro_arg'} = '@set comma ,
+
address@hidden macro1 { arg1 , arg2 }
+result: @emph{\\arg1\\} protected \\\\ -> \\\\arg1\\\\ @emph{\\arg2\\}
address@hidden macro
+
+result: @emph{arg1 , arg2 } protected \\ -> \\arg1\\ @emph{}
+';
+
+$result_errors{'comma_value_in_macro_arg'} = [];
+
+
Index: t/results/value_and_macro/macro_in_value.pl
===================================================================
RCS file: t/results/value_and_macro/macro_in_value.pl
diff -N t/results/value_and_macro/macro_in_value.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/value_and_macro/macro_in_value.pl 2 Oct 2010 13:25:08 -0000
1.1
@@ -0,0 +1,143 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'macro_in_value'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'ab',
+ 'type' => 'macro_name'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'a
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'raw'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'b
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'macro_line' => ' ab
+',
+ 'macrobody' => 'a
+
+b
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'flagab',
+ 'type' => 'misc_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => '@ab',
+ 'type' => 'misc_arg'
+ }
+ ],
+ 'cmdname' => 'set',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'flagab: a
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'b
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ]
+};
+$result_trees{'macro_in_value'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'macro_in_value'}{'contents'}[0];
+$result_trees{'macro_in_value'}{'contents'}[0]{'contents'}[0]{'parent'} =
$result_trees{'macro_in_value'}{'contents'}[0];
+$result_trees{'macro_in_value'}{'contents'}[0]{'contents'}[1]{'parent'} =
$result_trees{'macro_in_value'}{'contents'}[0];
+$result_trees{'macro_in_value'}{'contents'}[0]{'contents'}[2]{'parent'} =
$result_trees{'macro_in_value'}{'contents'}[0];
+$result_trees{'macro_in_value'}{'contents'}[0]{'parent'} =
$result_trees{'macro_in_value'};
+$result_trees{'macro_in_value'}{'contents'}[1]{'parent'} =
$result_trees{'macro_in_value'};
+$result_trees{'macro_in_value'}{'contents'}[2]{'args'}[0]{'parent'} =
$result_trees{'macro_in_value'}{'contents'}[2];
+$result_trees{'macro_in_value'}{'contents'}[2]{'args'}[1]{'parent'} =
$result_trees{'macro_in_value'}{'contents'}[2];
+$result_trees{'macro_in_value'}{'contents'}[2]{'parent'} =
$result_trees{'macro_in_value'};
+$result_trees{'macro_in_value'}{'contents'}[3]{'parent'} =
$result_trees{'macro_in_value'};
+$result_trees{'macro_in_value'}{'contents'}[4]{'contents'}[0]{'parent'} =
$result_trees{'macro_in_value'}{'contents'}[4];
+$result_trees{'macro_in_value'}{'contents'}[4]{'parent'} =
$result_trees{'macro_in_value'};
+$result_trees{'macro_in_value'}{'contents'}[5]{'parent'} =
$result_trees{'macro_in_value'};
+$result_trees{'macro_in_value'}{'contents'}[6]{'contents'}[0]{'parent'} =
$result_trees{'macro_in_value'}{'contents'}[6];
+$result_trees{'macro_in_value'}{'contents'}[6]{'parent'} =
$result_trees{'macro_in_value'};
+
+$result_texts{'macro_in_value'} = '@macro ab
+a
+
+b
address@hidden macro
+
address@hidden flagab @ab
+
+flagab: a
+
+b
+';
+
+$result_errors{'macro_in_value'} = [
+ {
+ 'error_line' => ':9: warning: @ab defined with zero or more than one
argument should be invoked with {}
+',
+ 'file_name' => '',
+ 'line_nr' => 9,
+ 'macro' => '',
+ 'text' => '@ab defined with zero or more than one argument should be
invoked with {}',
+ 'type' => 'warning'
+ }
+];
+
+
Index: t/results/value_and_macro/value_in_macro_body.pl
===================================================================
RCS file: t/results/value_and_macro/value_in_macro_body.pl
diff -N t/results/value_and_macro/value_in_macro_body.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/value_and_macro/value_in_macro_body.pl 2 Oct 2010 13:25:08
-0000 1.1
@@ -0,0 +1,138 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'value_in_macro_body'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'bodyarg',
+ 'type' => 'misc_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => '\\arg\\',
+ 'type' => 'misc_arg'
+ }
+ ],
+ 'cmdname' => 'set',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'testvaluebody',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'result: @address@hidden }
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg' => 0
+ },
+ 'macro_line' => ' testvaluebody { arg }
+',
+ 'macrobody' => 'result: @address@hidden }
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'result: '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '\\\\arg\\ '
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'emph',
+ 'parent' => {},
+ 'remaining_args' => 0
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ }
+ ]
+};
+$result_trees{'value_in_macro_body'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'value_in_macro_body'}{'contents'}[0];
+$result_trees{'value_in_macro_body'}{'contents'}[0]{'args'}[1]{'parent'} =
$result_trees{'value_in_macro_body'}{'contents'}[0];
+$result_trees{'value_in_macro_body'}{'contents'}[0]{'parent'} =
$result_trees{'value_in_macro_body'};
+$result_trees{'value_in_macro_body'}{'contents'}[1]{'parent'} =
$result_trees{'value_in_macro_body'};
+$result_trees{'value_in_macro_body'}{'contents'}[2]{'args'}[0]{'parent'} =
$result_trees{'value_in_macro_body'}{'contents'}[2];
+$result_trees{'value_in_macro_body'}{'contents'}[2]{'args'}[1]{'parent'} =
$result_trees{'value_in_macro_body'}{'contents'}[2];
+$result_trees{'value_in_macro_body'}{'contents'}[2]{'contents'}[0]{'parent'} =
$result_trees{'value_in_macro_body'}{'contents'}[2];
+$result_trees{'value_in_macro_body'}{'contents'}[2]{'parent'} =
$result_trees{'value_in_macro_body'};
+$result_trees{'value_in_macro_body'}{'contents'}[3]{'parent'} =
$result_trees{'value_in_macro_body'};
+$result_trees{'value_in_macro_body'}{'contents'}[4]{'contents'}[0]{'parent'} =
$result_trees{'value_in_macro_body'}{'contents'}[4];
+$result_trees{'value_in_macro_body'}{'contents'}[4]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'value_in_macro_body'}{'contents'}[4]{'contents'}[1]{'args'}[0];
+$result_trees{'value_in_macro_body'}{'contents'}[4]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'value_in_macro_body'}{'contents'}[4]{'contents'}[1];
+$result_trees{'value_in_macro_body'}{'contents'}[4]{'contents'}[1]{'parent'} =
$result_trees{'value_in_macro_body'}{'contents'}[4];
+$result_trees{'value_in_macro_body'}{'contents'}[4]{'parent'} =
$result_trees{'value_in_macro_body'};
+$result_trees{'value_in_macro_body'}{'contents'}[5]{'parent'} =
$result_trees{'value_in_macro_body'};
+
+$result_texts{'value_in_macro_body'} = '@set bodyarg \\arg\\
+
address@hidden testvaluebody { arg }
+result: @address@hidden }
address@hidden macro
+
+result: @emph{\\\\arg\\ }
+';
+
+$result_errors{'value_in_macro_body'} = [
+ {
+ 'error_line' => ':7: \\ in macro expansion followed address@hidden'
instead of parameter name or \\
+',
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => '',
+ 'text' => '\\ in macro expansion followed address@hidden' instead of
parameter name or \\',
+ 'type' => 'error'
+ }
+];
+
+
Index: t/results/value_and_macro/value_in_macro_formal_arg.pl
===================================================================
RCS file: t/results/value_and_macro/value_in_macro_formal_arg.pl
diff -N t/results/value_and_macro/value_in_macro_formal_arg.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/value_and_macro/value_in_macro_formal_arg.pl 2 Oct 2010
13:25:08 -0000 1.1
@@ -0,0 +1,186 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'value_in_macro_formal_arg'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'argument',
+ 'type' => 'misc_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'misc_arg'
+ }
+ ],
+ 'cmdname' => 'set',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'args' => [
+ {
+ 'parent' => {},
+ 'text' => 'testvalue',
+ 'type' => 'macro_name'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'arg',
+ 'type' => 'macro_arg'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'address@hidden',
+ 'type' => 'macro_arg'
+ }
+ ],
+ 'cmdname' => 'macro',
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'result: @emph{\\arg\\} the \\the\\ thearg \\thearg\\ with
value address@hidden
+',
+ 'type' => 'raw'
+ }
+ ],
+ 'parent' => {},
+ 'special' => {
+ 'args_index' => {
+ 'arg' => 0,
+ 'address@hidden' => 1
+ },
+ 'macro_line' => ' testvalue { arg , address@hidden }
+',
+ 'macrobody' => 'result: @emph{\\arg\\} the \\the\\ thearg \\thearg\\
with value address@hidden
+'
+ }
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'result: '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'macro_arg1'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'emph',
+ 'parent' => {},
+ 'remaining_args' => 0
+ },
+ {
+ 'parent' => {},
+ 'text' => ' the \\the thearg \\thearg with value \\thearg'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'normal_line'
+ }
+ ]
+};
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[0];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[0]{'args'}[1]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[0];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[0]{'parent'} =
$result_trees{'value_in_macro_formal_arg'};
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[1]{'parent'} =
$result_trees{'value_in_macro_formal_arg'};
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[2];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[2]{'args'}[1]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[2];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[2]{'args'}[2]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[2];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[2];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[2]{'parent'} =
$result_trees{'value_in_macro_formal_arg'};
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[3]{'parent'} =
$result_trees{'value_in_macro_formal_arg'};
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[4]{'contents'}[0]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[4];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[4]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'value_in_macro_formal_arg'}{'contents'}[4]{'contents'}[1]{'args'}[0];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[4]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[4]{'contents'}[1];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[4]{'contents'}[1]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[4];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[4]{'contents'}[2]{'parent'}
= $result_trees{'value_in_macro_formal_arg'}{'contents'}[4];
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[4]{'parent'} =
$result_trees{'value_in_macro_formal_arg'};
+$result_trees{'value_in_macro_formal_arg'}{'contents'}[5]{'parent'} =
$result_trees{'value_in_macro_formal_arg'};
+
+$result_texts{'value_in_macro_formal_arg'} = '@set argument arg
+
address@hidden testvalue { arg , address@hidden }
+result: @emph{\\arg\\} the \\the\\ thearg \\thearg\\ with value address@hidden
address@hidden macro
+
+result: @emph{macro_arg1} the \\the thearg \\thearg with value \\thearg
+';
+
+$result_errors{'value_in_macro_formal_arg'} = [
+ {
+ 'error_line' => ':3: Bad syntax for @macro
+',
+ 'file_name' => '',
+ 'line_nr' => 3,
+ 'macro' => '',
+ 'text' => 'Bad syntax for @macro',
+ 'type' => 'error'
+ },
+ {
+ 'error_line' => ':3: Bad or empty @macro formal argument: address@hidden
+',
+ 'file_name' => '',
+ 'line_nr' => 3,
+ 'macro' => '',
+ 'text' => 'Bad or empty @macro formal argument: address@hidden',
+ 'type' => 'error'
+ },
+ {
+ 'error_line' => ':7: \\ in macro expansion followed `the\' instead of
parameter name or \\
+',
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => '',
+ 'text' => '\\ in macro expansion followed `the\' instead of parameter name
or \\',
+ 'type' => 'error'
+ },
+ {
+ 'error_line' => ':7: \\ in macro expansion followed `thearg\' instead of
parameter name or \\
+',
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => '',
+ 'text' => '\\ in macro expansion followed `thearg\' instead of parameter
name or \\',
+ 'type' => 'error'
+ },
+ {
+ 'error_line' => ':7: \\ in macro expansion followed address@hidden'
instead of parameter name or \\
+',
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => '',
+ 'text' => '\\ in macro expansion followed address@hidden' instead of
parameter name or \\',
+ 'type' => 'error'
+ }
+];
+
+
- texinfo/tp TODO Texinfo/Parser.pm t/50value.t t...,
Patrice Dumas <=