/*
Copyright (C) 2001-2008, Parrot Foundation.
$Id: pccmethod_test.pmc 46300 2010-05-05 03:58:50Z jimmy $

=head1 NAME

src/pmc/pmethod_test.pmc

=head1 DESCRIPTION

METHOD_Test PMC

=cut

*/

pmclass PCCMETHOD_Test dynpmc provides hash {


    METHOD test_method()
    {
        UNUSED(SELF);
        Parrot_io_printf(INTERP, "test_method\n");
    }

    METHOD test_method0(int a1)
    {
        UNUSED(SELF);
        Parrot_io_printf(INTERP, "test_method0\n");
        Parrot_io_printf(INTERP, "%d\n", a1);
    }

    METHOD test_method1(int a1, int a2, int a3, int a4, int a5, int a6)
    {
        UNUSED(SELF);
        Parrot_io_printf(INTERP, "test_method1\n");
        Parrot_io_printf(INTERP, "%d,%d,%d,%d,%d,%d\n", a1, a2, a3, a4, a5, a6);
    }

    METHOD test_method2(int a1 :optional, int a1o :opt_flag,
                           PMC *slurpy_pos :slurpy)
    {
        STRING *kevin = CONST_STRING(INTERP, "KEVIN");
        UNUSED(SELF);
        Parrot_io_printf(INTERP, "test_method2\n");
        Parrot_io_printf(INTERP, "%d, %d, %Ss %Ss\n", a1, a1o,
            VTABLE_name(INTERP, slurpy_pos),
            VTABLE_get_repr(INTERP, slurpy_pos));

        RETURN(int 1000, STRING *kevin);
    }

    METHOD test_method3(PMC *a1 :named("a1name"), PMC *a2  :named("a2name"))
    {
        UNUSED(SELF);
        Parrot_io_printf(INTERP, "test_method3\n");
        Parrot_io_printf(INTERP, "%Ps, %Ps\n", a1, a2);
    }

    METHOD test_method4(int george :optional, int g_f :opt_flag,
            PMC *slurpy_pos :slurpy, PMC *slurpy_named :slurpy :named)
    {
        UNUSED(SELF);
        UNUSED(george);
        UNUSED(g_f);
        UNUSED(slurpy_pos);
        UNUSED(slurpy_named);
        Parrot_io_printf(INTERP, "test_method4\n");
    }
}

/*
 * Local variables:
 *   c-file-style: "parrot"
 * End:
 * vim: expandtab shiftwidth=4:
 */
