NAME Clang::CastXML - C-family abstract syntax tree output tool VERSION version 0.02 SYNOPSIS use Clang::CastXML; use Path::Tiny qw( path ); my $castxml = Clang::CastXML->new; my $container = $castxml->introspect( path('foo.C') ); my $raw_xml = $container->to_xml; DESCRIPTION This class provides an interface to CastXML for introspecting C/C++ code. This can be useful for writing FFI or XS bindings. PROPERTIES wrapper my $wrapper = $castxml->wrapper; Returns the Clang::CastXML::Wrapper instance. The default is usually reasonable. METHODS introspect my $container = $castxml->introspect($source); my $container = $castxml->introspect($source, $dest); This runs CastXML on the given source and returns an XML container which can be used to get the raw XML, or to convert it to a more useful format. $source should be either a Path::Tiny object for the C/C++ source file, or a string containing the C/C++ source. $dest is optional, and if provided should be a Path::Tiny object where the XML will be written. If not provided, then a temporary file will be created. $container is an instance of Clang::CastXML::Container. May throw an exception: Clang::CastXML::Exception::UsageException If you pass in a $source or $dest of the wrong type. Clang::CastXML::Exception::ProcessException::IntrospectException If there is an error running the castxml executable. AUTHOR Graham Ollis COPYRIGHT AND LICENSE This software is copyright (c) 2020 by Graham Ollis. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.