Пример #1
0
func (this *ParametersParser) Parse(parametersHeader header.ParametersHeader) (ParseException error) {
	var ch byte
	var nv *core.NameValue

	lexer := this.GetLexer()

	lexer.SPorHT()
	if ch, ParseException = lexer.LookAheadK(0); ParseException != nil {
		return ParseException
	}

	for ch == ';' {
		lexer.ConsumeK(1)
		// eat white space
		lexer.SPorHT()

		if nv, ParseException = this.NameValue('='); ParseException != nil {
			return ParseException
		}

		if nv.IsValueQuoted() {
			parametersHeader.SetParameter(nv.GetName(), "\""+nv.GetValue().(string)+"\"")
		} else {
			parametersHeader.SetParameter(nv.GetName(), nv.GetValue().(string))
		}

		// eat white space
		lexer.SPorHT()

		if ch, ParseException = lexer.LookAheadK(0); ParseException != nil {
			return ParseException
		}
	}
	return nil
}