DStep - Bindings Generator 0.0.1

Jacob Carlborg doob at me.com
Sat Jul 7 07:47:48 PDT 2012


DStep is a tool for translating C and Objective-C headers to D modules. 
It uses libclang for lexing/parsing and AST traversal. This means it 
handles everything that Clang itself can handle, although this doesn't 
mean it will correctly translate everything.

I would consider this release alpha or beta. I'm releasing this now in 
hope I get some feedback on what language features the tool can't handle.

The tool is available at github:
https://github.com/jacob-carlborg/dstep

Binaries are available for Mac OS X and Ubuntu 11.10 32bit:
https://github.com/jacob-carlborg/dstep/downloads

Unfortunately I haven't been able to successfully compile it on Windows 
due to Optlink not cooperating. I'll most likely provide Linux binaries 
with better compatibility later.

Build instructions are available at github.

Usage:

dstep <input-file.h> -o output_file.d

For Objective-C

dstep <input-file.h> -o output_file.d -ObjC

Tests:

DStep uses Cucumber and Aruba (Ruby tools) to run its tests. It will 
basically run the tool on all *.h files in the "test_files" directory 
and compare the results to the corresponding *.d files.

Known issues/missing functionality:

* Multiple input files
* Framework as input file
* Add module declaration
* Option for specifying before and after code
* Option for specifying package
* Windows support

C:
     * Self includes
     * Out of order typedefs of structs
     * Bitfields
     * Non-standard extensions
     * Preprocessor
     * Arrays with no size marked as "extern".

Objective-C:
     * Protocols
     * Properties
     * Blocks
     * Categories
     * Actions
     * Outlets
     * Selectors

This is basically what's on the todo list:

https://raw.github.com/jacob-carlborg/dstep/master/todo.taskpaper

There's no point in reporting issues which are listed above.

-- 
/Jacob Carlborg


More information about the Digitalmars-d-announce mailing list