DStep - Bindings Generator 0.0.1

Andrea Fontana nospam at example.com
Mon Jul 9 08:49:36 PDT 2012


Ok I know it's v 0.0.1, but I think this bugs are not so 
difficult to fix:

- d keywords should be escaped  => (for example  int f(int out) 
should become int f(int _out) or something similar...)
- self alias should be removed  => typedef test { int a; } test; 
generate alias test test; struct test { int a; };
- struct gives error if used on function ( "xxxx is used as a 
type")
- variadic function gives errors: "Error: variadic functions with 
non-D linkage must have at least one parameter"

:)

On Saturday, 7 July 2012 at 14:47:49 UTC, Jacob Carlborg wrote:
> 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.



More information about the Digitalmars-d-announce mailing list