Alien-TinyCC

 view release on metacpan or  search on metacpan

README.pod  view on Meta::CPAN

=head1 INSTALLATION

I assume that if you are installing this module, you are doing so from
CPAN. The usual Module::Build incantation shold work:

 perl Build.PL
 ./Build
 ./Build test
 ./Build install

On Windows, you should omit the C<./> part of the C<Build> commands.

=head1 DEVELOPMENT

If you want to work on Alien::TCC itself, you will need to work with a clone of
this repository, as well as a clone of the tinycc subrepository. To set
everything up, create a F<Build> file and run the C<devsetup> command:

 perl Build.PL
 ./Build devsetup

The C<devsetup> command is essentially equivalent to

 git submodule init
 git submodule update
 cp git-pre-commit-hook.pl .git/hooks/pre-commit

The last bit, the commit hook, helps me keep the Changes file up-to-date. :-)

Also, C<devclean> and C<devrealclean> will restore the contents of F<src/> to 
their original state, and should be used instead of Build command C<clean> and 
C<realclean>.

=head1 LICENSE, COPYRIGHT

This distribution distributes the source for the Tiny C Compiler project
under the src/ directory, for which the following notice is in effect:

 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal

lib/Alien/TinyCC.pm  view on Meta::CPAN


=item MB_linker_flags

gives the proper list of arguments to link against F<libtcc>.

=back

=head1 SEE ALSO

This module provides the Tiny C Compiler. To learn more about this great
project, see L<http://bellard.org/tcc/> and
L<http://savannah.nongnu.org/projects/tinycc>.

To learn more about Alien Perl distributions in general, read the L<Alien>
manifesto.

This library was built specifically to be used by the C code system provided
by L<C::TinyCompiler>.

=head1 AUTHOR

lib/Alien/TinyCC.pm  view on Meta::CPAN


L<http://annocpan.org/dist/Alien-TinyCC>

=item * CPAN Ratings

L<http://cpanratings.perl.org/d/Alien-TinyCC>

=item * Search CPAN

L<http://p3rl.org/Alien::TinyCC>
L<http://search.cpan.org/dist/Alien-TinyCC/>

=item * Stack Overflow

L<//http://stackoverflow.com/questions/tagged/tcc>

=back

=head1 ACKNOWLEDGEMENTS

The tcc developers have made this a very easy project to wrap up. They even
had the Windows install command nicely packaged up! How amazing!

=head1 LICENSE AND COPYRIGHT

Code copyright 2013 Dickinson College. Documentation copyright 2013 David
Mertens.

Everything not contained in the F<src/> directory is free software, the
distribution and/or modification of which is governed by the terms of
either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

=head1 TINY C COMPILER LICENSE AND COPYRIGHT

This distribution distributes the source for the Tiny C Compiler project
under the src/ directory, for which the following notice is in effect:

src/texi2pod.pl  view on Meta::CPAN

    s/\@\@/&at;/g;

    # Inside a verbatim block, handle @var specially.
    if ($shift ne "") {
	s/\@var\{([^\}]*)\}/<$1>/g;
    }

    # POD doesn't interpret E<> inside a verbatim block.
    if ($shift eq "") {
	s/</&lt;/g;
	s/>/&gt;/g;
    } else {
	s/</&LT;/g;
	s/>/&GT;/g;
    }

    # Single line command handlers.

    /^\@include\s+(.+)$/ and do {
	push @instack, $inf;
	$inf = gensym();

	# Try cwd and $ibase.
	open($inf, "<" . $1) 

src/texi2pod.pl  view on Meta::CPAN

    # semantics each time.  @url and @email are just like @uref with
    # one argument, for our purposes.
    s/\@(?:uref|url|email)\{([^\},]*)\}/&lt;B<$1>&gt;/g;
    s/\@uref\{([^\},]*),([^\},]*)\}/$2 (C<$1>)/g;
    s/\@uref\{([^\},]*),([^\},]*),([^\},]*)\}/$3/g;

    # Turn B<blah I<blah> blah> into B<blah> I<blah> B<blah> to
    # match Texinfo semantics of @emph inside @samp.  Also handle @r
    # inside bold.
    s/&LT;/</g;
    s/&GT;/>/g;
    1 while s/B<((?:[^<>]|I<[^<>]*>)*)R<([^>]*)>/B<$1>${2}B</g;
    1 while (s/B<([^<>]*)I<([^>]+)>/B<$1>I<$2>B</g);
    1 while (s/I<([^<>]*)B<([^>]+)>/I<$1>B<$2>I</g);
    s/[BI]<>//g;
    s/([BI])<(\s+)([^>]+)>/$2$1<$3>/g;
    s/([BI])<([^>]+?)(\s+)>/$1<$2>$3/g;

    # Extract footnotes.  This has to be done after all other
    # processing because otherwise the regexp will choke on formatting
    # inside @footnote.



( run in 1.373 second using v1.01-cache-2.11-cpan-df04353d9ac )