libbeat/reader/syslog/rfc5424_gen.go (2,642 lines of code) (raw):

// Licensed to Elasticsearch B.V. under one or more contributor // license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright // ownership. Elasticsearch B.V. licenses this file to you under // the Apache License, Version 2.0 (the "License"); you may // not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // Code generated by ragel. DO NOT EDIT. package syslog import ( "io" "go.uber.org/multierr" ) const rfc5424_start int = 1 const rfc5424_first_final int = 24 const rfc5424_error int = 0 const rfc5424_en_main int = 1 type machineState struct { sdID string sdParamName string sdValueEscapes []int } // ParseRFC5424 parses an RFC 5424-formatted syslog message. func parseRFC5424(data string) (message, error) { var errs error var p, cs, tok int pe := len(data) eof := len(data) m := message{ priority: -1, } { cs = rfc5424_start } { if p == pe { goto _test_eof } switch cs { case 1: goto st_case_1 case 0: goto st_case_0 case 2: goto st_case_2 case 3: goto st_case_3 case 4: goto st_case_4 case 5: goto st_case_5 case 6: goto st_case_6 case 7: goto st_case_7 case 8: goto st_case_8 case 9: goto st_case_9 case 10: goto st_case_10 case 11: goto st_case_11 case 12: goto st_case_12 case 13: goto st_case_13 case 14: goto st_case_14 case 15: goto st_case_15 case 16: goto st_case_16 case 24: goto st_case_24 case 25: goto st_case_25 case 26: goto st_case_26 case 17: goto st_case_17 case 18: goto st_case_18 case 19: goto st_case_19 case 27: goto st_case_27 case 20: goto st_case_20 case 21: goto st_case_21 case 22: goto st_case_22 case 23: goto st_case_23 } goto st_out st_case_1: if data[p] == 60 { goto st2 } goto tr0 tr0: errs = multierr.Append(errs, &ParseError{Err: io.ErrUnexpectedEOF, Pos: p + 1}) p-- goto st0 st_case_0: st0: cs = 0 goto _out st2: if p++; p == pe { goto _test_eof2 } st_case_2: if 33 <= data[p] && data[p] <= 126 { goto tr2 } goto tr0 tr2: tok = p goto st3 st3: if p++; p == pe { goto _test_eof3 } st_case_3: if data[p] == 62 { goto tr4 } if 33 <= data[p] && data[p] <= 126 { goto st3 } goto tr0 tr4: if err := m.setPriority(data[tok:p]); err != nil { errs = multierr.Append(errs, &ValidationError{Err: err, Pos: tok + 1}) } goto st4 st4: if p++; p == pe { goto _test_eof4 } st_case_4: if data[p] == 62 { goto tr6 } if 33 <= data[p] && data[p] <= 126 { goto tr5 } goto tr0 tr5: tok = p goto st5 st5: if p++; p == pe { goto _test_eof5 } st_case_5: switch data[p] { case 32: goto tr7 case 62: goto tr9 } if 33 <= data[p] && data[p] <= 126 { goto st5 } goto tr0 tr7: if err := m.setVersion(data[tok:p]); err != nil { errs = multierr.Append(errs, &ValidationError{Err: err, Pos: tok + 1}) } goto st6 st6: if p++; p == pe { goto _test_eof6 } st_case_6: if data[p] == 45 { goto st7 } if 48 <= data[p] && data[p] <= 57 { goto tr11 } goto tr0 st7: if p++; p == pe { goto _test_eof7 } st_case_7: if data[p] == 32 { goto st8 } goto tr0 tr32: if err := m.setTimestampRFC3339(data[tok:p]); err != nil { errs = multierr.Append(errs, &ValidationError{Err: err, Pos: tok + 1}) } goto st8 st8: if p++; p == pe { goto _test_eof8 } st_case_8: if 33 <= data[p] && data[p] <= 126 { goto tr13 } goto tr0 tr13: tok = p goto st9 st9: if p++; p == pe { goto _test_eof9 } st_case_9: if data[p] == 32 { goto tr14 } if 33 <= data[p] && data[p] <= 126 { goto st9 } goto tr0 tr14: m.setHostname(data[tok:p]) goto st10 st10: if p++; p == pe { goto _test_eof10 } st_case_10: if 33 <= data[p] && data[p] <= 126 { goto tr16 } goto tr0 tr16: tok = p goto st11 st11: if p++; p == pe { goto _test_eof11 } st_case_11: if data[p] == 32 { goto tr17 } if 33 <= data[p] && data[p] <= 126 { goto st11 } goto tr0 tr17: m.setAppName(data[tok:p]) goto st12 st12: if p++; p == pe { goto _test_eof12 } st_case_12: if 33 <= data[p] && data[p] <= 126 { goto tr19 } goto tr0 tr19: tok = p goto st13 st13: if p++; p == pe { goto _test_eof13 } st_case_13: if data[p] == 32 { goto tr20 } if 33 <= data[p] && data[p] <= 126 { goto st13 } goto tr0 tr20: m.setProcID(data[tok:p]) goto st14 st14: if p++; p == pe { goto _test_eof14 } st_case_14: if 33 <= data[p] && data[p] <= 126 { goto tr22 } goto tr0 tr22: tok = p goto st15 st15: if p++; p == pe { goto _test_eof15 } st_case_15: if data[p] == 32 { goto tr23 } if 33 <= data[p] && data[p] <= 126 { goto st15 } goto tr0 tr23: m.setMsgID(data[tok:p]) goto st16 st16: if p++; p == pe { goto _test_eof16 } st_case_16: switch data[p] { case 45: goto st24 case 91: goto tr26 } goto tr0 st24: if p++; p == pe { goto _test_eof24 } st_case_24: if data[p] == 32 { goto st25 } goto tr0 tr37: m.setRawSDValue(data[tok:p]) goto st25 st25: if p++; p == pe { goto _test_eof25 } st_case_25: goto tr35 tr35: tok = p goto st26 st26: if p++; p == pe { goto _test_eof26 } st_case_26: goto st26 tr26: tok = p goto st17 st17: if p++; p == pe { goto _test_eof17 } st_case_17: switch data[p] { case 92: goto st19 case 93: goto tr0 } goto st18 st18: if p++; p == pe { goto _test_eof18 } st_case_18: switch data[p] { case 92: goto st19 case 93: goto st27 } goto st18 st19: if p++; p == pe { goto _test_eof19 } st_case_19: if data[p] == 93 { goto st18 } goto tr0 st27: if p++; p == pe { goto _test_eof27 } st_case_27: switch data[p] { case 32: goto tr37 case 91: goto st17 } goto tr0 tr11: tok = p goto st20 st20: if p++; p == pe { goto _test_eof20 } st_case_20: switch data[p] { case 43: goto st21 case 58: goto st21 } switch { case data[p] < 48: if 45 <= data[p] && data[p] <= 46 { goto st21 } case data[p] > 57: switch { case data[p] > 90: if 97 <= data[p] && data[p] <= 122 { goto st21 } case data[p] >= 65: goto st21 } default: goto st22 } goto tr0 st21: if p++; p == pe { goto _test_eof21 } st_case_21: if data[p] == 32 { goto tr32 } if 48 <= data[p] && data[p] <= 57 { goto st20 } goto tr0 st22: if p++; p == pe { goto _test_eof22 } st_case_22: switch data[p] { case 32: goto tr32 case 43: goto st21 case 58: goto st21 } switch { case data[p] < 48: if 45 <= data[p] && data[p] <= 46 { goto st21 } case data[p] > 57: switch { case data[p] > 90: if 97 <= data[p] && data[p] <= 122 { goto st21 } case data[p] >= 65: goto st21 } default: goto st22 } goto tr0 tr9: if err := m.setPriority(data[tok:p]); err != nil { errs = multierr.Append(errs, &ValidationError{Err: err, Pos: tok + 1}) } goto st23 tr6: if err := m.setPriority(data[tok:p]); err != nil { errs = multierr.Append(errs, &ValidationError{Err: err, Pos: tok + 1}) } tok = p goto st23 st23: if p++; p == pe { goto _test_eof23 } st_case_23: switch data[p] { case 32: goto tr7 case 62: goto tr6 } if 33 <= data[p] && data[p] <= 126 { goto tr5 } goto tr0 st_out: _test_eof2: cs = 2 goto _test_eof _test_eof3: cs = 3 goto _test_eof _test_eof4: cs = 4 goto _test_eof _test_eof5: cs = 5 goto _test_eof _test_eof6: cs = 6 goto _test_eof _test_eof7: cs = 7 goto _test_eof _test_eof8: cs = 8 goto _test_eof _test_eof9: cs = 9 goto _test_eof _test_eof10: cs = 10 goto _test_eof _test_eof11: cs = 11 goto _test_eof _test_eof12: cs = 12 goto _test_eof _test_eof13: cs = 13 goto _test_eof _test_eof14: cs = 14 goto _test_eof _test_eof15: cs = 15 goto _test_eof _test_eof16: cs = 16 goto _test_eof _test_eof24: cs = 24 goto _test_eof _test_eof25: cs = 25 goto _test_eof _test_eof26: cs = 26 goto _test_eof _test_eof17: cs = 17 goto _test_eof _test_eof18: cs = 18 goto _test_eof _test_eof19: cs = 19 goto _test_eof _test_eof27: cs = 27 goto _test_eof _test_eof20: cs = 20 goto _test_eof _test_eof21: cs = 21 goto _test_eof _test_eof22: cs = 22 goto _test_eof _test_eof23: cs = 23 goto _test_eof _test_eof: { } if p == eof { switch cs { case 26: m.setMsg(data[tok:p]) case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23: errs = multierr.Append(errs, &ParseError{Err: io.ErrUnexpectedEOF, Pos: p + 1}) p-- case 27: m.setRawSDValue(data[tok:p]) case 25: tok = p m.setMsg(data[tok:p]) } } _out: { } } return m, errs } const check_start int = 1 const check_first_final int = 10 const check_error int = 0 const check_en_main int = 1 // isRFC5424 returns true if data is formatted as an RFC 5424 syslog message. func isRFC5424(data string) bool { var isRFC5424 bool var p, cs int pe := len(data) { cs = check_start } { if p == pe { goto _test_eof } switch cs { case 1: goto st_case_1 case 0: goto st_case_0 case 2: goto st_case_2 case 3: goto st_case_3 case 4: goto st_case_4 case 5: goto st_case_5 case 6: goto st_case_6 case 7: goto st_case_7 case 8: goto st_case_8 case 9: goto st_case_9 case 10: goto st_case_10 } goto st_out st_case_1: if data[p] == 60 { goto st2 } goto st0 st_case_0: st0: cs = 0 goto _out st2: if p++; p == pe { goto _test_eof2 } st_case_2: if 48 <= data[p] && data[p] <= 57 { goto st3 } goto st0 st3: if p++; p == pe { goto _test_eof3 } st_case_3: if data[p] == 62 { goto st4 } if 48 <= data[p] && data[p] <= 57 { goto st3 } goto st0 st4: if p++; p == pe { goto _test_eof4 } st_case_4: if 48 <= data[p] && data[p] <= 57 { goto st5 } goto st0 st5: if p++; p == pe { goto _test_eof5 } st_case_5: if data[p] == 32 { goto st6 } if 48 <= data[p] && data[p] <= 57 { goto st5 } goto st0 st6: if p++; p == pe { goto _test_eof6 } st_case_6: if 48 <= data[p] && data[p] <= 57 { goto tr6 } goto st0 tr6: isRFC5424 = true goto st7 st7: if p++; p == pe { goto _test_eof7 } st_case_7: if 48 <= data[p] && data[p] <= 57 { goto st8 } goto st0 st8: if p++; p == pe { goto _test_eof8 } st_case_8: if 48 <= data[p] && data[p] <= 57 { goto st9 } goto st0 st9: if p++; p == pe { goto _test_eof9 } st_case_9: if 48 <= data[p] && data[p] <= 57 { goto st10 } goto st0 st10: if p++; p == pe { goto _test_eof10 } st_case_10: goto st0 st_out: _test_eof2: cs = 2 goto _test_eof _test_eof3: cs = 3 goto _test_eof _test_eof4: cs = 4 goto _test_eof _test_eof5: cs = 5 goto _test_eof _test_eof6: cs = 6 goto _test_eof _test_eof7: cs = 7 goto _test_eof _test_eof8: cs = 8 goto _test_eof _test_eof9: cs = 9 goto _test_eof _test_eof10: cs = 10 goto _test_eof _test_eof: { } _out: { } } return isRFC5424 } const parse_sd_start int = 1 const parse_sd_first_final int = 73 const parse_sd_error int = 0 const parse_sd_en_main int = 1 // parseStructuredData performs a best effort parsing of the raw structured data value // extracted from the syslog message. If the raw structured data value is an empty // string or the nil value ('-'), nil is returned. Otherwise, the value is parsed // using the format defined by RFC 5424. If the value cannot be parsed, then nil // is returned. func parseStructuredData(data string) map[string]interface{} { var s machineState var p, cs, tok int pe := len(data) structuredData := map[string]interface{}{} if data == "" || data == "-" { return nil } { cs = parse_sd_start } { if p == pe { goto _test_eof } switch cs { case 1: goto st_case_1 case 0: goto st_case_0 case 2: goto st_case_2 case 3: goto st_case_3 case 4: goto st_case_4 case 5: goto st_case_5 case 6: goto st_case_6 case 7: goto st_case_7 case 8: goto st_case_8 case 9: goto st_case_9 case 10: goto st_case_10 case 11: goto st_case_11 case 12: goto st_case_12 case 13: goto st_case_13 case 14: goto st_case_14 case 15: goto st_case_15 case 16: goto st_case_16 case 17: goto st_case_17 case 18: goto st_case_18 case 19: goto st_case_19 case 20: goto st_case_20 case 21: goto st_case_21 case 22: goto st_case_22 case 23: goto st_case_23 case 24: goto st_case_24 case 25: goto st_case_25 case 26: goto st_case_26 case 27: goto st_case_27 case 28: goto st_case_28 case 29: goto st_case_29 case 30: goto st_case_30 case 31: goto st_case_31 case 32: goto st_case_32 case 33: goto st_case_33 case 34: goto st_case_34 case 35: goto st_case_35 case 36: goto st_case_36 case 37: goto st_case_37 case 38: goto st_case_38 case 39: goto st_case_39 case 40: goto st_case_40 case 73: goto st_case_73 case 41: goto st_case_41 case 42: goto st_case_42 case 43: goto st_case_43 case 44: goto st_case_44 case 45: goto st_case_45 case 46: goto st_case_46 case 47: goto st_case_47 case 48: goto st_case_48 case 49: goto st_case_49 case 50: goto st_case_50 case 51: goto st_case_51 case 52: goto st_case_52 case 53: goto st_case_53 case 54: goto st_case_54 case 55: goto st_case_55 case 56: goto st_case_56 case 57: goto st_case_57 case 58: goto st_case_58 case 59: goto st_case_59 case 60: goto st_case_60 case 61: goto st_case_61 case 62: goto st_case_62 case 63: goto st_case_63 case 64: goto st_case_64 case 65: goto st_case_65 case 66: goto st_case_66 case 67: goto st_case_67 case 68: goto st_case_68 case 69: goto st_case_69 case 70: goto st_case_70 case 71: goto st_case_71 case 72: goto st_case_72 } goto st_out st_case_1: if data[p] == 91 { goto st2 } goto st0 st_case_0: st0: cs = 0 goto _out st2: if p++; p == pe { goto _test_eof2 } st_case_2: if data[p] == 33 { goto tr2 } switch { case data[p] < 62: if 35 <= data[p] && data[p] <= 60 { goto tr2 } case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto tr2 } default: goto tr2 } goto st0 tr2: tok = p goto st3 st3: if p++; p == pe { goto _test_eof3 } st_case_3: switch data[p] { case 32: goto tr3 case 33: goto st42 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st42 } case data[p] >= 35: goto st42 } goto st0 tr3: s.sdID = data[tok:p] if _, ok := structuredData[s.sdID]; !ok { structuredData[s.sdID] = map[string]interface{}{} } goto st4 st4: if p++; p == pe { goto _test_eof4 } st_case_4: if data[p] == 33 { goto tr6 } switch { case data[p] < 62: if 35 <= data[p] && data[p] <= 60 { goto tr6 } case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto tr6 } default: goto tr6 } goto st0 tr6: tok = p goto st5 st5: if p++; p == pe { goto _test_eof5 } st_case_5: switch data[p] { case 33: goto st6 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st6 } case data[p] >= 35: goto st6 } goto st0 st6: if p++; p == pe { goto _test_eof6 } st_case_6: switch data[p] { case 33: goto st7 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st7 } case data[p] >= 35: goto st7 } goto st0 st7: if p++; p == pe { goto _test_eof7 } st_case_7: switch data[p] { case 33: goto st8 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st8 } case data[p] >= 35: goto st8 } goto st0 st8: if p++; p == pe { goto _test_eof8 } st_case_8: switch data[p] { case 33: goto st9 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st9 } case data[p] >= 35: goto st9 } goto st0 st9: if p++; p == pe { goto _test_eof9 } st_case_9: switch data[p] { case 33: goto st10 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st10 } case data[p] >= 35: goto st10 } goto st0 st10: if p++; p == pe { goto _test_eof10 } st_case_10: switch data[p] { case 33: goto st11 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st11 } case data[p] >= 35: goto st11 } goto st0 st11: if p++; p == pe { goto _test_eof11 } st_case_11: switch data[p] { case 33: goto st12 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st12 } case data[p] >= 35: goto st12 } goto st0 st12: if p++; p == pe { goto _test_eof12 } st_case_12: switch data[p] { case 33: goto st13 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st13 } case data[p] >= 35: goto st13 } goto st0 st13: if p++; p == pe { goto _test_eof13 } st_case_13: switch data[p] { case 33: goto st14 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st14 } case data[p] >= 35: goto st14 } goto st0 st14: if p++; p == pe { goto _test_eof14 } st_case_14: switch data[p] { case 33: goto st15 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st15 } case data[p] >= 35: goto st15 } goto st0 st15: if p++; p == pe { goto _test_eof15 } st_case_15: switch data[p] { case 33: goto st16 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st16 } case data[p] >= 35: goto st16 } goto st0 st16: if p++; p == pe { goto _test_eof16 } st_case_16: switch data[p] { case 33: goto st17 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st17 } case data[p] >= 35: goto st17 } goto st0 st17: if p++; p == pe { goto _test_eof17 } st_case_17: switch data[p] { case 33: goto st18 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st18 } case data[p] >= 35: goto st18 } goto st0 st18: if p++; p == pe { goto _test_eof18 } st_case_18: switch data[p] { case 33: goto st19 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st19 } case data[p] >= 35: goto st19 } goto st0 st19: if p++; p == pe { goto _test_eof19 } st_case_19: switch data[p] { case 33: goto st20 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st20 } case data[p] >= 35: goto st20 } goto st0 st20: if p++; p == pe { goto _test_eof20 } st_case_20: switch data[p] { case 33: goto st21 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st21 } case data[p] >= 35: goto st21 } goto st0 st21: if p++; p == pe { goto _test_eof21 } st_case_21: switch data[p] { case 33: goto st22 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st22 } case data[p] >= 35: goto st22 } goto st0 st22: if p++; p == pe { goto _test_eof22 } st_case_22: switch data[p] { case 33: goto st23 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st23 } case data[p] >= 35: goto st23 } goto st0 st23: if p++; p == pe { goto _test_eof23 } st_case_23: switch data[p] { case 33: goto st24 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st24 } case data[p] >= 35: goto st24 } goto st0 st24: if p++; p == pe { goto _test_eof24 } st_case_24: switch data[p] { case 33: goto st25 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st25 } case data[p] >= 35: goto st25 } goto st0 st25: if p++; p == pe { goto _test_eof25 } st_case_25: switch data[p] { case 33: goto st26 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st26 } case data[p] >= 35: goto st26 } goto st0 st26: if p++; p == pe { goto _test_eof26 } st_case_26: switch data[p] { case 33: goto st27 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st27 } case data[p] >= 35: goto st27 } goto st0 st27: if p++; p == pe { goto _test_eof27 } st_case_27: switch data[p] { case 33: goto st28 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st28 } case data[p] >= 35: goto st28 } goto st0 st28: if p++; p == pe { goto _test_eof28 } st_case_28: switch data[p] { case 33: goto st29 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st29 } case data[p] >= 35: goto st29 } goto st0 st29: if p++; p == pe { goto _test_eof29 } st_case_29: switch data[p] { case 33: goto st30 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st30 } case data[p] >= 35: goto st30 } goto st0 st30: if p++; p == pe { goto _test_eof30 } st_case_30: switch data[p] { case 33: goto st31 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st31 } case data[p] >= 35: goto st31 } goto st0 st31: if p++; p == pe { goto _test_eof31 } st_case_31: switch data[p] { case 33: goto st32 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st32 } case data[p] >= 35: goto st32 } goto st0 st32: if p++; p == pe { goto _test_eof32 } st_case_32: switch data[p] { case 33: goto st33 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st33 } case data[p] >= 35: goto st33 } goto st0 st33: if p++; p == pe { goto _test_eof33 } st_case_33: switch data[p] { case 33: goto st34 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st34 } case data[p] >= 35: goto st34 } goto st0 st34: if p++; p == pe { goto _test_eof34 } st_case_34: switch data[p] { case 33: goto st35 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st35 } case data[p] >= 35: goto st35 } goto st0 st35: if p++; p == pe { goto _test_eof35 } st_case_35: switch data[p] { case 33: goto st36 case 61: goto tr8 } switch { case data[p] > 92: if 94 <= data[p] && data[p] <= 126 { goto st36 } case data[p] >= 35: goto st36 } goto st0 st36: if p++; p == pe { goto _test_eof36 } st_case_36: if data[p] == 61 { goto tr8 } goto st0 tr8: s.sdParamName = data[tok:p] goto st37 st37: if p++; p == pe { goto _test_eof37 } st_case_37: if data[p] == 34 { goto st38 } goto st0 st38: if p++; p == pe { goto _test_eof38 } st_case_38: switch data[p] { case 34: goto st0 case 92: goto tr41 case 93: goto st0 } goto tr40 tr40: tok = p goto st39 st39: if p++; p == pe { goto _test_eof39 } st_case_39: switch data[p] { case 34: goto tr43 case 92: goto tr44 case 93: goto st0 } goto st39 tr43: if subMap, ok := structuredData[s.sdID].(map[string]interface{}); ok { subMap[s.sdParamName] = removeBytes(data[tok:p], s.sdValueEscapes, tok) } s.sdValueEscapes = nil goto st40 st40: if p++; p == pe { goto _test_eof40 } st_case_40: switch data[p] { case 32: goto st4 case 93: goto st73 } goto st0 tr5: s.sdID = data[tok:p] if _, ok := structuredData[s.sdID]; !ok { structuredData[s.sdID] = map[string]interface{}{} } goto st73 st73: if p++; p == pe { goto _test_eof73 } st_case_73: if data[p] == 91 { goto st2 } goto st0 tr41: tok = p s.sdValueEscapes = append(s.sdValueEscapes, p) goto st41 tr44: s.sdValueEscapes = append(s.sdValueEscapes, p) goto st41 st41: if p++; p == pe { goto _test_eof41 } st_case_41: if data[p] == 34 { goto st39 } if 92 <= data[p] && data[p] <= 93 { goto st39 } goto st0 st42: if p++; p == pe { goto _test_eof42 } st_case_42: switch data[p] { case 32: goto tr3 case 33: goto st43 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st43 } case data[p] >= 35: goto st43 } goto st0 st43: if p++; p == pe { goto _test_eof43 } st_case_43: switch data[p] { case 32: goto tr3 case 33: goto st44 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st44 } case data[p] >= 35: goto st44 } goto st0 st44: if p++; p == pe { goto _test_eof44 } st_case_44: switch data[p] { case 32: goto tr3 case 33: goto st45 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st45 } case data[p] >= 35: goto st45 } goto st0 st45: if p++; p == pe { goto _test_eof45 } st_case_45: switch data[p] { case 32: goto tr3 case 33: goto st46 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st46 } case data[p] >= 35: goto st46 } goto st0 st46: if p++; p == pe { goto _test_eof46 } st_case_46: switch data[p] { case 32: goto tr3 case 33: goto st47 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st47 } case data[p] >= 35: goto st47 } goto st0 st47: if p++; p == pe { goto _test_eof47 } st_case_47: switch data[p] { case 32: goto tr3 case 33: goto st48 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st48 } case data[p] >= 35: goto st48 } goto st0 st48: if p++; p == pe { goto _test_eof48 } st_case_48: switch data[p] { case 32: goto tr3 case 33: goto st49 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st49 } case data[p] >= 35: goto st49 } goto st0 st49: if p++; p == pe { goto _test_eof49 } st_case_49: switch data[p] { case 32: goto tr3 case 33: goto st50 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st50 } case data[p] >= 35: goto st50 } goto st0 st50: if p++; p == pe { goto _test_eof50 } st_case_50: switch data[p] { case 32: goto tr3 case 33: goto st51 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st51 } case data[p] >= 35: goto st51 } goto st0 st51: if p++; p == pe { goto _test_eof51 } st_case_51: switch data[p] { case 32: goto tr3 case 33: goto st52 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st52 } case data[p] >= 35: goto st52 } goto st0 st52: if p++; p == pe { goto _test_eof52 } st_case_52: switch data[p] { case 32: goto tr3 case 33: goto st53 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st53 } case data[p] >= 35: goto st53 } goto st0 st53: if p++; p == pe { goto _test_eof53 } st_case_53: switch data[p] { case 32: goto tr3 case 33: goto st54 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st54 } case data[p] >= 35: goto st54 } goto st0 st54: if p++; p == pe { goto _test_eof54 } st_case_54: switch data[p] { case 32: goto tr3 case 33: goto st55 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st55 } case data[p] >= 35: goto st55 } goto st0 st55: if p++; p == pe { goto _test_eof55 } st_case_55: switch data[p] { case 32: goto tr3 case 33: goto st56 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st56 } case data[p] >= 35: goto st56 } goto st0 st56: if p++; p == pe { goto _test_eof56 } st_case_56: switch data[p] { case 32: goto tr3 case 33: goto st57 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st57 } case data[p] >= 35: goto st57 } goto st0 st57: if p++; p == pe { goto _test_eof57 } st_case_57: switch data[p] { case 32: goto tr3 case 33: goto st58 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st58 } case data[p] >= 35: goto st58 } goto st0 st58: if p++; p == pe { goto _test_eof58 } st_case_58: switch data[p] { case 32: goto tr3 case 33: goto st59 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st59 } case data[p] >= 35: goto st59 } goto st0 st59: if p++; p == pe { goto _test_eof59 } st_case_59: switch data[p] { case 32: goto tr3 case 33: goto st60 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st60 } case data[p] >= 35: goto st60 } goto st0 st60: if p++; p == pe { goto _test_eof60 } st_case_60: switch data[p] { case 32: goto tr3 case 33: goto st61 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st61 } case data[p] >= 35: goto st61 } goto st0 st61: if p++; p == pe { goto _test_eof61 } st_case_61: switch data[p] { case 32: goto tr3 case 33: goto st62 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st62 } case data[p] >= 35: goto st62 } goto st0 st62: if p++; p == pe { goto _test_eof62 } st_case_62: switch data[p] { case 32: goto tr3 case 33: goto st63 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st63 } case data[p] >= 35: goto st63 } goto st0 st63: if p++; p == pe { goto _test_eof63 } st_case_63: switch data[p] { case 32: goto tr3 case 33: goto st64 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st64 } case data[p] >= 35: goto st64 } goto st0 st64: if p++; p == pe { goto _test_eof64 } st_case_64: switch data[p] { case 32: goto tr3 case 33: goto st65 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st65 } case data[p] >= 35: goto st65 } goto st0 st65: if p++; p == pe { goto _test_eof65 } st_case_65: switch data[p] { case 32: goto tr3 case 33: goto st66 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st66 } case data[p] >= 35: goto st66 } goto st0 st66: if p++; p == pe { goto _test_eof66 } st_case_66: switch data[p] { case 32: goto tr3 case 33: goto st67 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st67 } case data[p] >= 35: goto st67 } goto st0 st67: if p++; p == pe { goto _test_eof67 } st_case_67: switch data[p] { case 32: goto tr3 case 33: goto st68 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st68 } case data[p] >= 35: goto st68 } goto st0 st68: if p++; p == pe { goto _test_eof68 } st_case_68: switch data[p] { case 32: goto tr3 case 33: goto st69 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st69 } case data[p] >= 35: goto st69 } goto st0 st69: if p++; p == pe { goto _test_eof69 } st_case_69: switch data[p] { case 32: goto tr3 case 33: goto st70 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st70 } case data[p] >= 35: goto st70 } goto st0 st70: if p++; p == pe { goto _test_eof70 } st_case_70: switch data[p] { case 32: goto tr3 case 33: goto st71 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st71 } case data[p] >= 35: goto st71 } goto st0 st71: if p++; p == pe { goto _test_eof71 } st_case_71: switch data[p] { case 32: goto tr3 case 33: goto st72 case 93: goto tr5 } switch { case data[p] > 60: if 62 <= data[p] && data[p] <= 126 { goto st72 } case data[p] >= 35: goto st72 } goto st0 st72: if p++; p == pe { goto _test_eof72 } st_case_72: switch data[p] { case 32: goto tr3 case 93: goto tr5 } goto st0 st_out: _test_eof2: cs = 2 goto _test_eof _test_eof3: cs = 3 goto _test_eof _test_eof4: cs = 4 goto _test_eof _test_eof5: cs = 5 goto _test_eof _test_eof6: cs = 6 goto _test_eof _test_eof7: cs = 7 goto _test_eof _test_eof8: cs = 8 goto _test_eof _test_eof9: cs = 9 goto _test_eof _test_eof10: cs = 10 goto _test_eof _test_eof11: cs = 11 goto _test_eof _test_eof12: cs = 12 goto _test_eof _test_eof13: cs = 13 goto _test_eof _test_eof14: cs = 14 goto _test_eof _test_eof15: cs = 15 goto _test_eof _test_eof16: cs = 16 goto _test_eof _test_eof17: cs = 17 goto _test_eof _test_eof18: cs = 18 goto _test_eof _test_eof19: cs = 19 goto _test_eof _test_eof20: cs = 20 goto _test_eof _test_eof21: cs = 21 goto _test_eof _test_eof22: cs = 22 goto _test_eof _test_eof23: cs = 23 goto _test_eof _test_eof24: cs = 24 goto _test_eof _test_eof25: cs = 25 goto _test_eof _test_eof26: cs = 26 goto _test_eof _test_eof27: cs = 27 goto _test_eof _test_eof28: cs = 28 goto _test_eof _test_eof29: cs = 29 goto _test_eof _test_eof30: cs = 30 goto _test_eof _test_eof31: cs = 31 goto _test_eof _test_eof32: cs = 32 goto _test_eof _test_eof33: cs = 33 goto _test_eof _test_eof34: cs = 34 goto _test_eof _test_eof35: cs = 35 goto _test_eof _test_eof36: cs = 36 goto _test_eof _test_eof37: cs = 37 goto _test_eof _test_eof38: cs = 38 goto _test_eof _test_eof39: cs = 39 goto _test_eof _test_eof40: cs = 40 goto _test_eof _test_eof73: cs = 73 goto _test_eof _test_eof41: cs = 41 goto _test_eof _test_eof42: cs = 42 goto _test_eof _test_eof43: cs = 43 goto _test_eof _test_eof44: cs = 44 goto _test_eof _test_eof45: cs = 45 goto _test_eof _test_eof46: cs = 46 goto _test_eof _test_eof47: cs = 47 goto _test_eof _test_eof48: cs = 48 goto _test_eof _test_eof49: cs = 49 goto _test_eof _test_eof50: cs = 50 goto _test_eof _test_eof51: cs = 51 goto _test_eof _test_eof52: cs = 52 goto _test_eof _test_eof53: cs = 53 goto _test_eof _test_eof54: cs = 54 goto _test_eof _test_eof55: cs = 55 goto _test_eof _test_eof56: cs = 56 goto _test_eof _test_eof57: cs = 57 goto _test_eof _test_eof58: cs = 58 goto _test_eof _test_eof59: cs = 59 goto _test_eof _test_eof60: cs = 60 goto _test_eof _test_eof61: cs = 61 goto _test_eof _test_eof62: cs = 62 goto _test_eof _test_eof63: cs = 63 goto _test_eof _test_eof64: cs = 64 goto _test_eof _test_eof65: cs = 65 goto _test_eof _test_eof66: cs = 66 goto _test_eof _test_eof67: cs = 67 goto _test_eof _test_eof68: cs = 68 goto _test_eof _test_eof69: cs = 69 goto _test_eof _test_eof70: cs = 70 goto _test_eof _test_eof71: cs = 71 goto _test_eof _test_eof72: cs = 72 goto _test_eof _test_eof: { } _out: { } } if len(structuredData) == 0 { return nil } return structuredData }