Add declarations and skeletons for new subclasses

This commit is contained in:
Gregory John Casamento 2024-05-26 08:39:44 -04:00
parent 392a626444
commit dc9ff1ff6f
2 changed files with 66 additions and 4 deletions

View file

@ -46,13 +46,19 @@ enum
NSKeyPathExpressionType,
NSFunctionExpressionType,
NSKeyPathCompositionExpressionType,
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
NSUnionSetExpressionType,
NSIntersectSetExpressionType,
NSSubqueryExpressionType = 13,
NSAggregateExpressionType = 14,
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_9, GS_API_LATEST)
NSAnyKeyExpressionType = 15,
#endif
NSBlockExpressionType = 19,
#if OS_API_VERSION(MAC_OS_X_VERSION_10_11, GS_API_LATEST)
NSConditionalExpressionType = 20
#endif
};
typedef NSUInteger NSExpressionType;
@ -73,12 +79,12 @@ GS_EXPORT_CLASS
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ (NSExpression *) expressionForIntersectSet: (NSExpression *)left
with: (NSExpression *)right;
with: (NSExpression *)right;
+ (NSExpression *) expressionForAggregate: (NSArray *)subExpressions;
+ (NSExpression *) expressionForUnionSet: (NSExpression *)left
with: (NSExpression *)right;
with: (NSExpression *)right;
+ (NSExpression *) expressionForMinusSet: (NSExpression *)left
with: (NSExpression *)right;
with: (NSExpression *)right;
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
@ -100,6 +106,11 @@ GS_EXPORT_CLASS
- (NSExpression *) operand;
- (NSString *) variable;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
- (id) collection;
- (NSExpression *) leftExpression;
- (NSExpression *) rightExpression;
#endif
@end
#if defined(__cplusplus)

View file

@ -141,6 +141,18 @@ extern void GSPropertyListMake(id,NSDictionary*,BOOL,BOOL,unsigned,id*);
}
@end
@interface GSUnionSetExpression : NSExpression
@end
@interface GSIntersectSetExpression : NSExpression
@end
@interface GSSubqueryExpression : NSExpression
@end
@interface GSAggregateExpression : NSExpression
@end
@interface GSFunctionExpression : NSExpression
{
@public
@ -1377,6 +1389,24 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
return nil;
}
- (NSExpression *) leftExpression
{
[self subclassResponsibility: _cmd];
return nil;
}
- (NSExpression *) rightExpression
{
[self subclassResponsibility: _cmd];
return nil;
}
- (id) collection
{
[self subclassResponsibility: _cmd];
return nil;
}
- (Class) classForCoder
{
return [NSExpression class];
@ -1645,6 +1675,28 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
right: right];
}
- (NSExpression *) leftExpression
{
return _left;
}
- (NSExpression *) rightExpression
{
return _right;
}
@end
@implementation GSUnionSetExpression
@end
@implementation GSIntersectSetExpression
@end
@implementation GSSubqueryExpression
@end
@implementation GSAggregateExpression
@end
@implementation GSFunctionExpression
@ -2407,7 +2459,6 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
- (NSExpression *) parseExpression
{
// return [self parseAdditionExpression];
return [self parseBinaryExpression];
}