mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 09:35:48 +00:00
88ac40666c
Summary: public This diff replaces the RegEx module method parser with a handwritten recursive descent parser that's faster and easier to maintain. The new parser is ~8 times faster when tested on the UIManager.managerChildren() method, and uses ~1/10 as much RAM. The new parser also supports lightweight generics, and is more tolerant of white space. (This means that you now can – and should – use types like `NSArray<NSString *> *` for your exported properties and method arguments, instead of `NSStringArray`). Reviewed By: jspahrsummers Differential Revision: D2736636 fb-gh-sync-id: f6a11431935fa8acc8ac36f3471032ec9a1c8490
32 lines
1.0 KiB
Objective-C
32 lines
1.0 KiB
Objective-C
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "RCTDefines.h"
|
|
|
|
@interface RCTParserUtils : NSObject
|
|
|
|
/**
|
|
* Generic utility functions for parsing Objective-C source code.
|
|
*/
|
|
RCT_EXTERN BOOL RCTReadChar(const char **input, char c);
|
|
RCT_EXTERN BOOL RCTReadString(const char **input, const char *string);
|
|
RCT_EXTERN void RCTSkipWhitespace(const char **input);
|
|
RCT_EXTERN BOOL RCTParseIdentifier(const char **input, NSString **string);
|
|
|
|
/**
|
|
* Parse an Objective-C type into a form that can be used by RCTConvert.
|
|
* This doesn't really belong here, but it's used by both RCTConvert and
|
|
* RCTModuleMethod, which makes it difficult to find a better home for it.
|
|
*/
|
|
RCT_EXTERN NSString *RCTParseType(const char **input);
|
|
|
|
@end
|