The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Clownfish::Type::Arbitrary - An arbitrary type.

DESCRIPTION

The "arbitrary" type class is a hack that spares us from having to support C types with complex declaration syntaxes -- such as unions, structs, enums, or function pointers -- from within Clownfish itself.

The only constraint is that the specifier must end in "_t". This allows us to create complex types in a C header file...

    typedef union { float f; int i; } floatint_t;

... pound-include the C header, then use the resulting typedef in a .bp file and have it parse as an "arbitrary" type.

    floatint_t floatint;

METHODS

new

    my $type = Clownfish::Type->new(
        specifier => 'floatint_t',    # required
        parcel    => 'Crustacean',    # default: undef
    );
  • specifier - The name of the type, which must end in "_t".

  • parcel - A Clownfish::Parcel or a parcel name.

If parcel is supplied and specifier begins with a capital letter, the Parcel's prefix will be prepended to the specifier:

    foo_t         -> foo_t                # no prefix prepending
    Lobster_foo_t -> crust_Lobster_foo_t  # prefix prepended

COPYRIGHT AND LICENSE

Copyright 2008-2010 Marvin Humphrey

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.