5 个稳定版本
3.0.0 | 2023 年 8 月 10 日 |
---|---|
2.1.0 | 2023 年 8 月 14 日 |
1.2.0 | 2023 年 7 月 18 日 |
1.1.0 | 2023 年 5 月 20 日 |
1.0.0 | 2023 年 5 月 19 日 |
18 在 #objective-c 中排名
931 每月下载量
在 3 个 软件包中使用(直接使用 2 个)
43MB
1M SLoC
tree-sitter-objc
这个软件包为 tree-sitter 解析库提供 Objective-C 语法。要使用此软件包,将其添加到您的 [dependencies]
部分中。请注意,您可能还需要依赖 tree-sitter
软件包,以便以任何有用的方式使用解析结果。
[dependencies]
tree-sitter = "~0.20.10"
tree-sitter-objc = "3.0.0"
通常,您将使用 language 函数将此语法添加到 tree-sitter Parser,然后使用解析器解析一些代码
let code = r#"
#import <Foundation/Foundation.h>
// Defining a class interface
@interface Person : NSObject
// Declaring properties
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger age;
// Declaring methods
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age;
- (void)greet;
@end
@implementation Person
// Implementing the initializer
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
self = [super init];
if (self) {
_name = name;
_age = age;
}
return self;
}
// Implementing the greet method
- (void)greet {
NSLog(@"Hello, my name is %@ and I'm %ld years old.", self.name, (long)self.age);
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
// Creating an instance of Person
Person *person = [[Person alloc] initWithName:@"John" age:25];
// Accessing properties
NSString *name = person.name;
NSInteger age = person.age;
// Calling a method
[person greet];
}
return 0;
}
"#;
let mut parser = Parser::new();
parser.set_language(tree_sitter_objc::language()).expect("Error loading Objective-C grammar");
let parsed = parser.parse(code, None);
如果您有任何问题,请通过 tree-sitter 讨论页面联系我们。
依赖项
~2.8–4MB
~72K SLoC