gitpan / string-comments-extract Goto Github PK
View Code? Open in Web Editor NEWRead-only release history for String-Comments-Extract
Home Page: http://metacpan.org/release/String-Comments-Extract
Read-only release history for String-Comments-Extract
Home Page: http://metacpan.org/release/String-Comments-Extract
NAME String::Comments::Extract - Extract comments from C/C++/JavaScript/Java source VERSION version 0.023 SYNOPSIS use String::Comments::Extract; my $source = <<_END_ /* A Hello World program Copyright Ty Coon // ...and Buckaroo Banzai "Yoyodyne"*/ void main() { printf("Hello, World.\n"); printf("/* This is not a real comment */"); printf("// Neither is this */"); // But this is } // Last comment _END_ my $comments = String::Comments::Extract::C->extract($source) # ... returns the following result: /* A Hello World program Copyright Ty Coon // ...and Buckaroo Banzai "Yoyodyne"*/ // But this is // Last comment my @comments = String::Comments::Extract::C->collect($source) # ... returns the following list: ( ' A Hello World program Copyright Ty Coon // ...and Buckaroo Banzai "Yoyodyne"', ' But this is', ' Last comment', ) DESCRIPTION String::Comments::Extract is a tool for extracting comments from C/C++/JavaScript/Java source. The extractor is implemented using an actual tokenizer (written in C via XS [adapted from JavaScript::Minifier::XS]). By using a tokenizer, it can correctly deal with notoriously problematic cases, such as comment-like structures embedded in strings: std::cout << "This is not a // real C++ comment " << std::endl printf("/* This is not a real C comment */\n"); # The extractor will ignore both of the above String::Comments::Extract considers C/C++/JavaScript/Java comment structures the same, so, for now, it doesn't really matter which method you use (this means it will not complain about C++ style comments in C source). The language agnostic interface to C/C++/JavaScript/Java comment extractor is accessible via String::Comments::Extract::SlashStar # Can handle slash-star (/* */) and slash-slash (//) comments String::Comments::Extract::SlashStar->extract String::Comments::Extract::SlashStar->collect METHODS String::Comments::Extract::JavaScript->extract( <source> ) String::Comments::Extract::CPP->extract( <source> ) String::Comments::Extract::C->extract( <source> ) String::Comments::Extract::SlashStar->extract( <source> ) Returns a string representing the comments in <source> Comment delimeters ( "/* */ //" ) are left in as-is Whitespace of <source> is otherwise preserved, so you'll probably have to do some post-processing to get rid of some cruft. String::Comments::Extract::JavaScript->collect( <source> ) String::Comments::Extract::CPP->collect( <source> ) String::Comments::Extract::C->collect( <source> ) String::Comments::Extract::SlashStar->collect( <source> ) Returns a list containing an item for each block- or line-comment in <source> Comment delimeters ( "/* */ //" ) around the comment are removed Whitespace outside of comments may not be preserved exactly SEE ALSO File::Comments AUTHOR Robert Krimen <[email protected]> COPYRIGHT AND LICENSE This software is copyright (c) 2010 by Robert Krimen. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.