static bool TryParseElement(Lexer lexer, out TransferCodingWithQualityHeaderValue parsedValue, out Token t) { parsedValue = null; t = lexer.Scan(); if (t != Token.Type.Token) { return(false); } var result = new TransferCodingWithQualityHeaderValue(); result.value = lexer.GetStringValue(t); t = lexer.Scan(); // Parameters parsing if (t == Token.Type.SeparatorSemicolon && (!NameValueHeaderValue.TryParseParameters(lexer, out result.parameters, out t) || t != Token.Type.End)) { return(false); } parsedValue = result; return(true); }
internal static bool TryParse <T> (string input, out T parsedValue, Func <T> factory) where T : TransferCodingHeaderValue { parsedValue = null; var lexer = new Lexer(input); var t = lexer.Scan(); if (t != Token.Type.Token) { return(false); } var result = factory(); result.value = lexer.GetStringValue(t); t = lexer.Scan(); // Parameters parsing if (t == Token.Type.SeparatorSemicolon) { if (!NameValueHeaderValue.TryParseParameters(lexer, out result.parameters)) { return(false); } } else if (t != Token.Type.End) { return(false); } parsedValue = result; return(true); }
static bool TryParseElement(Lexer lexer, out MediaTypeWithQualityHeaderValue parsedValue, out Token t) { parsedValue = null; string media; List <NameValueHeaderValue> parameters = null; var token = TryParseMediaType(lexer, out media); if (token == null) { t = Token.Empty; return(false); } t = token.Value; if (t == Token.Type.SeparatorSemicolon && !NameValueHeaderValue.TryParseParameters(lexer, out parameters, out t)) { return(false); } parsedValue = new MediaTypeWithQualityHeaderValue(); parsedValue.media_type = media; parsedValue.parameters = parameters; return(true); }
public static bool TryParse(string input, out ContentDispositionHeaderValue parsedValue) { parsedValue = null; var lexer = new Lexer(input); var t = lexer.Scan(); if (t.Kind != Token.Type.Token) { return(false); } List <NameValueHeaderValue> parameters = null; var type = lexer.GetStringValue(t); t = lexer.Scan(); switch (t.Kind) { case Token.Type.SeparatorSemicolon: if (!NameValueHeaderValue.TryParseParameters(lexer, out parameters, out t) || t != Token.Type.End) { return(false); } break; case Token.Type.End: break; default: return(false); } parsedValue = new ContentDispositionHeaderValue() { dispositionType = type, parameters = parameters }; return(true); }
public static bool TryParse(string input, out MediaTypeHeaderValue parsedValue) { parsedValue = null; var lexer = new Lexer(input); string media; List <NameValueHeaderValue> parameters = null; var token = TryParseMediaType(lexer, out media); if (token == null) { return(false); } switch (token.Value.Kind) { case Token.Type.SeparatorSemicolon: Token t; if (!NameValueHeaderValue.TryParseParameters(lexer, out parameters, out t) || t != Token.Type.End) { return(false); } break; case Token.Type.End: break; default: return(false); } parsedValue = new MediaTypeHeaderValue() { media_type = media, parameters = parameters }; return(true); }
internal static bool TryParse <T> (string input, out T parsedValue, Func <T> factory) where T : MediaTypeHeaderValue { parsedValue = null; var lexer = new Lexer(input); string media; List <NameValueHeaderValue> parameters = null; var token = TryParseMediaType(lexer, out media); if (token == null) { return(false); } switch (token.Value.Kind) { case Token.Type.SeparatorSemicolon: if (!NameValueHeaderValue.TryParseParameters(lexer, out parameters)) { return(false); } break; case Token.Type.End: break; default: return(false); } parsedValue = factory(); parsedValue.media_type = media; parsedValue.parameters = parameters; return(true); }