Skip to content

DanielMSchmidt/objective-c-parser

Repository files navigation

objective-c-parser Build Status Coverage Status BCH compliance

Get an objective-c header file and translate it to equivalent javascript calls

Install

$ npm install objective-c-parser

Usage

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));

Example

#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.

License

MIT © Daniel Schmidt