Get an objective-c header file and translate it to equivalent javascript calls
$ npm install objective-c-parser
const fs = require("fs");
const objectiveCParser = require("objective-c-parser");
const content = fs.readFileSync("/path/to/objective-c/Ponies.h", "utf8");
const output = objectiveCParser(content);
fs.writeFileSync("/path/to/project/ponies.json", JSON.stringify(output));
#import <Foundation/Foundation.h>
@protocol Ponies, Foo;
@interface BasicName : NSObject
// Another comment
@property(nonatomic, readonly) uninteresting<IgnorePlease> matcher;
// This is the comment of basic method one
- (NSInteger)basicMethodOne;
/**
* This is the comment of basic method two.
* It has multiple lines
*/
- (NSString *) basicMethodTwoWithArgOne:(NSInteger)argOne AndArgTwo:(NSString *)argTwo;
@end
{
"name": "BasicName",
"methods": [
{
"args": [],
"comment": "This is the comment of basic method one",
"name": "basicMethodOne",
"returnType": "NSInteger"
},
{
"args": [
{
"type": "NSInteger",
"name": "argOne"
},
{
"type": "NSString",
"name": "argTwo"
}
],
"comment": "This is the comment of basic method two.\nIt has multiple lines",
"name": "basicMethodTwoWithArgOneAndArgTwo",
"returnType": "NSString"
}
]
}
Please be aware that name
can be undefined if the headerfile does not contain an @interface
declaration.
MIT © Daniel Schmidt