Lines Matching refs:self
28 return [self initWithRawInput:raw fieldType:fieldType ignoringParameters:NO];
33 if (self = [super init]) {
39 return self;
50 …if (error) *error = [self errorWithMessage:[NSString stringWithFormat:@"Invalid character at index…
55 [self removeLeadingSP];
60 output = [self _parseAListWithError:error];
63 output = [self _parseADictionaryWithError:error];
66 output = [self _parseAnItemWithError:error];
69 if (error) *error = [self errorWithMessage:@"Invalid field type given to parser"];
74 [self removeLeadingSP];
75 if ([self hasRemaining]) {
76 …if (error) *error = [self errorWithMessage:@"Failed to parse structured fields; unexpected trailin…
87 while ([self hasRemaining]) {
88 id itemOrInnerList = [self _parseAnItemOrInnerListWithError:error];
92 [self removeLeadingOWS];
93 if (![self hasRemaining]) {
97 if ([self consume] != ',') {
98 …if (error) *error = [self errorWithMessage:@"Failed to parse list; invalid character after list me…
102 [self removeLeadingOWS];
103 if (![self hasRemaining]) {
104 if (error) *error = [self errorWithMessage:@"List cannot have a trailing comma"];
115 if ([self compareNextChar:'(']) {
116 return [self _parseAnInnerListWithError:error];
118 return [self _parseAnItemWithError:error];
125 if ([self consume] != '(') {
126 if (error) *error = [self errorWithMessage:@"Inner list must start with '('"];
131 while ([self hasRemaining]) {
132 [self removeLeadingSP];
134 if ([self compareNextChar:')']) {
135 [self advance];
136 NSDictionary *parameters = [self _parseParametersWithError:error];
138 return [self _memberEntryWithValue:innerList.copy parameters:parameters];
141 id item = [self _parseAnItemWithError:error];
145 if (![self compareNextCharWithSet:@" )"]) {
146 …if (error) *error = [self errorWithMessage:@"Failed to parse inner list; invalid character after i…
151 if (error) *error = [self errorWithMessage:@"Failed to parse inner list; end of list not found"];
159 while ([self hasRemaining]) {
160 NSString *key = [self _parseAKeyWithError:error];
164 if ([self compareNextChar:'=']) {
165 [self advance];
166 member = [self _parseAnItemOrInnerListWithError:error];
169 NSDictionary *parameters = [self _parseParametersWithError:error];
171 member = [self _memberEntryWithValue:@(YES) parameters:parameters];
175 [self removeLeadingOWS];
176 if (![self hasRemaining]) {
180 if ([self consume] != ',') {
181 …if (error) *error = [self errorWithMessage:@"Failed to parse dictionary; invalid character after m…
185 [self removeLeadingOWS];
186 if (![self hasRemaining]) {
187 if (error) *error = [self errorWithMessage:@"Dictionary cannot have a trailing comma"];
198 id bareItem = [self _parseABareItemWithError:error];
200 NSDictionary *parameters = [self _parseParametersWithError:error];
202 return [self _memberEntryWithValue:bareItem parameters:parameters];
208 unichar firstChar = [self peek];
209 if ([self isDigit:firstChar] || firstChar == '-') {
210 return [self _parseAnIntegerOrDecimalWithError:error];
212 return [self _parseAStringWithError:error];
213 } else if ([self isAlpha:firstChar] || firstChar == '*') {
214 return [self _parseATokenWithError:error];
216 return [self _parseAByteSequenceWithError:error];
218 return [self _parseABooleanWithError:error];
220 if (error) *error = [self errorWithMessage:@"Unrecognized item type"];
229 while ([self hasRemaining]) {
230 if (![self compareNextChar:';']) {
233 [self advance];
234 [self removeLeadingSP];
235 NSString *key = [self _parseAKeyWithError:error];
238 if ([self compareNextChar:'=']) {
239 [self advance];
240 value = [self _parseABareItemWithError:error];
251 unichar firstChar = [self peek];
252 if (![self isLowercaseAlpha:firstChar] && firstChar != '*') {
253 if (error) *error = [self errorWithMessage:@"Key must begin with a lowercase letter or '*'"];
257 NSMutableString *outputString = [NSMutableString stringWithCapacity:[self remainingLength]];
258 while ([self hasRemaining]) {
259 unichar nextChar = [self peek];
260 …if (![self isLowercaseAlpha:nextChar] && ![self isDigit:nextChar] && ![self compareChar:nextChar w…
264 [self advance];
278 if ([self compareNextChar:'-']) {
279 [self advance];
283 if (![self hasRemaining]) {
284 if (error) *error = [self errorWithMessage:@"Integer or decimal cannot be empty"];
288 if (![self isDigit:[self peek]]) {
289 if (error) *error = [self errorWithMessage:@"Integer or decimal must begin with a digit"];
293 while ([self hasRemaining]) {
294 unichar nextChar = [self consume];
295 if ([self isDigit:nextChar]) {
299 …if (error) *error = [self errorWithMessage:@"Decimal cannot have more than 12 digits before the de…
305 [self backout];
310 if (error) *error = [self errorWithMessage:@"Integer cannot have more than 15 digits"];
313 if (error) *error = [self errorWithMessage:@"Decimal cannot have more than 16 characters"];
322 if (error) *error = [self errorWithMessage:@"Decimal cannot end with the character '.'"];
326 …if (error) *error = [self errorWithMessage:@"Decimal cannot have more than 3 digits after the deci…
336 NSMutableString *outputString = [NSMutableString stringWithCapacity:[self remainingLength]];
338 if (![self compareNextChar:'"']) {
339 if (error) *error = [self errorWithMessage:@"String must begin with the character '\"'"];
343 [self advance];
344 while ([self hasRemaining]) {
345 unichar nextChar = [self consume];
347 if (![self hasRemaining]) {
348 if (error) *error = [self errorWithMessage:@"String cannot end with the character '\\'"];
351 unichar followingChar = [self consume];
352 if (![self compareChar:followingChar withSet:@"\"\\"]) {
353 …if (error) *error = [self errorWithMessage:@"String cannot contain '\\' followed by an invalid cha…
360 if (error) *error = [self errorWithMessage:@"Invalid character in string"];
367 if (error) *error = [self errorWithMessage:@"String must have a closing '\"'"];
374 unichar firstChar = [self peek];
375 if (![self isAlpha:firstChar] && firstChar != '*') {
376 …if (error) *error = [self errorWithMessage:@"Token must begin with an alphabetic character or '*'"…
380 NSMutableString *outputString = [NSMutableString stringWithCapacity:[self remainingLength]];
381 while ([self hasRemaining]) {
384 unichar nextChar = [self peek];
385 …if (nextChar <= ' ' || nextChar >= 0x7F || [self compareChar:nextChar withSet:@"\"(),;<=>?@[\\]{}"…
388 [outputString appendFormat:@"%c", [self consume]];
398 if (![self compareNextChar:':']) {
399 if (error) *error = [self errorWithMessage:@"Byte sequence must begin with ':'"];
403 [self advance];
404 NSMutableString *inputByteSequence = [NSMutableString stringWithCapacity:[self remainingLength]];
405 while ([self hasRemaining]) {
406 unichar nextChar = [self consume];
409 } else if (![self isBase64:nextChar]) {
410 …if (error) *error = [self errorWithMessage:@"Byte sequence can only contain valid base64 character…
417 if (error) *error = [self errorWithMessage:@"Byte sequence must have a closing ':'"];
424 if (![self compareNextChar:'?']) {
425 if (error) *error = [self errorWithMessage:@"Boolean must begin with '?'"];
429 [self advance];
430 unichar nextChar = [self peek];
432 [self advance];
435 [self advance];
438 if (error) *error = [self errorWithMessage:@"Invalid value for boolean"];
468 return [self hasRemaining] ? [_raw characterAtIndex:_position] : (unichar) -1;
483 unichar thisChar = [self peek];
484 [self advance];
490 return [self hasRemaining] ? [self peek] == match : NO;
495 return [self hasRemaining] ? [self compareChar:[self peek] withSet:charset] : NO;
500 while ([self compareNextChar:' ']) {
501 [self advance];
507 while ([self compareNextChar:' '] || [self compareNextChar:'\t']) {
508 [self advance];