Comments (1)
On that note, I'd contribute the following, which, given sourcefile(s), prints out prototypes of functions therein:
# this snippet is public domain
class MkProto
def initialize
@index = FFI::Clang::Index.new
@seenkinds = []
end
def do_file(file)
tu = @index.parse_translation_unit(file)
tu.cursor.select{|d| d.kind == :cursor_function }.each do |decl|
proto = decl.display_name
rtyp = decl.result_type.spelling
fullprot = sprintf("%s %s;", rtyp, proto)
yield fullprot
end
end
end
begin
if ARGV.empty? then
$stderr.printf("usage: %s <file> [<another-file>...]\n", $0)
exit(1)
else
mkp = MkProto.new
ARGV.each do |file|
$stdout.printf("/* %s */\n", file)
mkp.do_file(file) do |prot|
$stdout.printf("%s\n", prot)
end
end
end
end
The reason I'm not making this a pull request: I have no idea if this is how it's supposed to be done. Hence, better examples would be great.
from ffi-clang.
Related Issues (17)
- AST failure because wrong clang compiler is used in test HOT 2
- What do I have to require? HOT 1
- uninitialized constant FFI::Clang::Lib::TranslationUnitFlags HOT 3
- visit_children SIGABRT HOT 14
- sometimes exceptions don't raise from visit_children HOT 2
- visit_children with :recurse doesn't visit every child HOT 10
- New Apple LLVM Clang not supported HOT 7
- Strange Error HOT 5
- I was having problems with llvm 10.0 on my linux desktop, I don't know if this addresses those issues.
- Won't load as-is on cygwin; very hacky fix included
- Releases to rubygems.org? HOT 7
- [BUG] Using angle brackets in comments adds extra newlines `\n` characters
- move repository to some organization HOT 15
- C++ AST Introspection HOT 1
- Why does Lib.bitmask_from take a Hash? HOT 1
- libclang version HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ffi-clang.