Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tjfontaine/node-libclang

nodejs bindings for libclang
https://github.com/tjfontaine/node-libclang

Last synced: about 2 months ago
JSON representation

nodejs bindings for libclang

Awesome Lists containing this project

README

        

node-libclang
=============
node.js module for libclang and parsing c-style source from javascript

AST Traversal
-------------
```javascript
var libclang = require('libclang');

var index = new libclang.index();
var tu = new libclang.translationunit();

tu.fromSource(idx, 'myLibrary.h', ['-I/path/to/my/project']);

tu.cursor().visitChildren(function (parent) {
switch (this.kind) {
case libclang.KINDS.CXCursor_FunctionDecl:
console.log(this.spelling);
break;
}
return libclang.CXChildVisit_Continue;
});

index.dispose();
tu.dispose();
````

Generate FFI Bindings
---------------------
This has been moved to its own library `npm install -g ffi-generate`

See also https://github.com/tjfontaine/node-ffi-generate

Notes
-----
Not all of libclang is wrapped yet, but there's enough for
[ffi-generate](https://github.com/tjfontaine/node-ffi-generate) to regenerate
the dynamic clang bindings.

The native wrapper isn't completely fleshed out or free of errors. Enough is
wrapped to allow for C modules to be successfully generated by `lib/generateffi.js`.