Erps, macro.t had a slight bug. The included version of macro.t fixes it.

--Jeff
<[EMAIL PROTECTED]>

#! perl -w

use Parrot::Test tests => 7;

output_is( <<'CODE', <<OUTPUT, "macro, zero parameters" );
answer  macro
        print   42
        print   "\n"
endm
        answer
        end
CODE
42
OUTPUT

output_is( <<'CODE', <<OUTPUT, "macro, one unused parameter, literal term" );
answer  macro   A
        print   42
endm
        answer  42
        print   "\n"
end
CODE
42
OUTPUT

output_is( <<'CODE', <<OUTPUT, "macro, one unused parameter, register term" );
answer  macro   A
        print   42
endm
        set     I0, 43
        answer  I0
        print   "\n"
end
CODE
42
OUTPUT

output_is( <<'CODE', <<OUTPUT, "macro, one used parameter, literal" );
answer  macro   A
        print   A
endm
        answer  42
        print   "\n"
end
CODE
42
OUTPUT

#
# Can't test because I can't capture errors
#
#output_is( <<'CODE', <<OUTPUT, "macro, one parameter in call, not in def" );
#answer macro
#       print A
#endm
#       answer 42
#       print "\n"
#end
#CODE
#42
#OUTPUT

output_is( <<'CODE', <<OUTPUT, "macro, one used parameter, register" );
answer  macro   A
        print   A
endm
        set     I0,42
        answer  I0
        print   "\n"
end
CODE
42
OUTPUT

output_is( <<'CODE', <<OUTPUT, "macro, one used parameter, called twice" );
answer  macro   A
        print   A
        print   "\n"
        inc     A
endm
        set     I0,42
        answer  I0
        answer  I0
end
CODE
42
43
OUTPUT

output_is( <<'CODE', <<OUTPUT, "macro, one used parameter, label" );
answer  macro   A
        ne      I0,42,$done
        print   A
        print   "\n"
$done:
endm
        set     I0,42
        answer  I0
end
CODE
42
OUTPUT

output_is( <<'CODE', <<OUTPUT, "macro, one used parameter run twice, label" );
answer  macro   A
        ne      I0,42,$done
        print   A
        print   "\n"
$done:
endm
        set     I0,42
        answer  I0
        answer  I0
end
CODE
42
42
OUTPUT

Reply via email to