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

NAME

Clownfish::Binding::Core - Generate core C code for a Clownfish::Hierarchy.

SYNOPSIS

    my $hierarchy = Clownfish::Hierarchy->new(
        source => '/path/to/clownfish/files',
        dest   => 'autogen',
    );
    $hierarchy->build;
    my $core_binding = Clownfish::Binding::Core->new(
        hierarchy => $hierarchy,
        dest      => 'autogen',
        header    => "/* Auto-generated file. */\n",
        footer    => $copyfoot,
    );
    my $modified = $core_binding->write_all_modified($modified);

DESCRIPTION

A Clownfish::Hierarchy describes an abstract specifiction for a class hierarchy; Clownfish::Binding::Core is responsible for auto-generating C code which implements that specification.

METHODS

new

    my $binding = Clownfish::Binding::Core->new(
        hierarchy => $hierarchy,            # required
        dest      => '/path/to/autogen',    # required
        header    => $header,               # required
        footer    => $footer,               # required
    );
  • hierarchy - A Clownfish::Hierarchy.

  • dest - The directory where C output files will be written.

  • header - Text which will be prepended to each generated C file -- typically, an "autogenerated file" warning.

  • footer - Text to be appended to the end of each generated C file -- typically copyright information.

write_all_modified

Call $hierarchy->propagate_modified to establish which classes do not have up-to-date generated .c and .h files, then traverse the hierarchy writing all necessary files.

COPYRIGHT AND LICENSE

Copyright 2008-2011 Marvin Humphrey

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