1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-05-02 22:17:10 +08:00
Dušan Borovčanin 412593ae94
NOISSUE - Update dependencies (#1838)
* Update dependencies

Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com>

* Update dependencies

Fix Timescale Reader bug.

Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com>

* Revert influxdb-reader changes

Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com>

* Update dependencies to latest supported versions

Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com>

---------

Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com>
Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
2023-07-06 20:44:12 +02:00

3829 lines
54 KiB
Go

//line machine.go.rl:1
package protocol
import (
"errors"
"io"
)
var (
ErrNameParse = errors.New("expected measurement name")
ErrFieldParse = errors.New("expected field")
ErrTagParse = errors.New("expected tag")
ErrTimestampParse = errors.New("expected timestamp")
ErrParse = errors.New("parse error")
EOF = errors.New("EOF")
)
//line machine.go.rl:310
//line machine.go:25
const LineProtocol_start int = 47
const LineProtocol_first_final int = 47
const LineProtocol_error int = 0
const LineProtocol_en_main int = 47
const LineProtocol_en_discard_line int = 35
const LineProtocol_en_align int = 86
const LineProtocol_en_series int = 38
//line machine.go.rl:313
type Handler interface {
SetMeasurement(name []byte) error
AddTag(key []byte, value []byte) error
AddInt(key []byte, value []byte) error
AddUint(key []byte, value []byte) error
AddFloat(key []byte, value []byte) error
AddString(key []byte, value []byte) error
AddBool(key []byte, value []byte) error
SetTimestamp(tm []byte) error
}
type machine struct {
data []byte
cs int
p, pe, eof int
pb int
lineno int
sol int
handler Handler
initState int
key []byte
beginMetric bool
finishMetric bool
}
func NewMachine(handler Handler) *machine {
m := &machine{
handler: handler,
initState: LineProtocol_en_align,
}
//line machine.go.rl:346
//line machine.go.rl:347
//line machine.go.rl:348
//line machine.go.rl:349
//line machine.go.rl:350
//line machine.go.rl:351
//line machine.go:82
{
(m.cs) = LineProtocol_start
}
//line machine.go.rl:352
return m
}
func NewSeriesMachine(handler Handler) *machine {
m := &machine{
handler: handler,
initState: LineProtocol_en_series,
}
//line machine.go.rl:363
//line machine.go.rl:364
//line machine.go.rl:365
//line machine.go.rl:366
//line machine.go.rl:367
//line machine.go:109
{
(m.cs) = LineProtocol_start
}
//line machine.go.rl:368
return m
}
func (m *machine) SetData(data []byte) {
m.data = data
m.p = 0
m.pb = 0
m.lineno = 1
m.sol = 0
m.pe = len(data)
m.eof = len(data)
m.key = nil
m.beginMetric = false
m.finishMetric = false
//line machine.go:132
{
(m.cs) = LineProtocol_start
}
//line machine.go.rl:385
m.cs = m.initState
}
// Next parses the next metric line and returns nil if it was successfully
// processed. If the line contains a syntax error an error is returned,
// otherwise if the end of file is reached before finding a metric line then
// EOF is returned.
func (m *machine) Next() error {
if m.p == m.pe && m.pe == m.eof {
return EOF
}
m.key = nil
m.beginMetric = false
m.finishMetric = false
return m.exec()
}
func (m *machine) exec() error {
var err error
//line machine.go:160
{
if (m.p) == (m.pe) {
goto _test_eof
}
goto _resume
_again:
switch m.cs {
case 47:
goto st47
case 1:
goto st1
case 2:
goto st2
case 3:
goto st3
case 0:
goto st0
case 4:
goto st4
case 5:
goto st5
case 6:
goto st6
case 7:
goto st7
case 48:
goto st48
case 49:
goto st49
case 50:
goto st50
case 8:
goto st8
case 9:
goto st9
case 10:
goto st10
case 11:
goto st11
case 51:
goto st51
case 52:
goto st52
case 53:
goto st53
case 54:
goto st54
case 55:
goto st55
case 56:
goto st56
case 57:
goto st57
case 58:
goto st58
case 59:
goto st59
case 60:
goto st60
case 61:
goto st61
case 62:
goto st62
case 63:
goto st63
case 64:
goto st64
case 65:
goto st65
case 66:
goto st66
case 67:
goto st67
case 68:
goto st68
case 69:
goto st69
case 70:
goto st70
case 12:
goto st12
case 13:
goto st13
case 14:
goto st14
case 15:
goto st15
case 16:
goto st16
case 71:
goto st71
case 17:
goto st17
case 18:
goto st18
case 72:
goto st72
case 73:
goto st73
case 74:
goto st74
case 75:
goto st75
case 76:
goto st76
case 77:
goto st77
case 78:
goto st78
case 79:
goto st79
case 80:
goto st80
case 19:
goto st19
case 20:
goto st20
case 21:
goto st21
case 81:
goto st81
case 22:
goto st22
case 23:
goto st23
case 24:
goto st24
case 82:
goto st82
case 25:
goto st25
case 26:
goto st26
case 83:
goto st83
case 84:
goto st84
case 27:
goto st27
case 28:
goto st28
case 29:
goto st29
case 30:
goto st30
case 31:
goto st31
case 32:
goto st32
case 33:
goto st33
case 34:
goto st34
case 35:
goto st35
case 85:
goto st85
case 38:
goto st38
case 87:
goto st87
case 88:
goto st88
case 39:
goto st39
case 40:
goto st40
case 41:
goto st41
case 42:
goto st42
case 89:
goto st89
case 43:
goto st43
case 90:
goto st90
case 44:
goto st44
case 45:
goto st45
case 46:
goto st46
case 86:
goto st86
case 36:
goto st36
case 37:
goto st37
}
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof
}
_resume:
switch m.cs {
case 47:
goto st_case_47
case 1:
goto st_case_1
case 2:
goto st_case_2
case 3:
goto st_case_3
case 0:
goto st_case_0
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 48:
goto st_case_48
case 49:
goto st_case_49
case 50:
goto st_case_50
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 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 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 71:
goto st_case_71
case 17:
goto st_case_17
case 18:
goto st_case_18
case 72:
goto st_case_72
case 73:
goto st_case_73
case 74:
goto st_case_74
case 75:
goto st_case_75
case 76:
goto st_case_76
case 77:
goto st_case_77
case 78:
goto st_case_78
case 79:
goto st_case_79
case 80:
goto st_case_80
case 19:
goto st_case_19
case 20:
goto st_case_20
case 21:
goto st_case_21
case 81:
goto st_case_81
case 22:
goto st_case_22
case 23:
goto st_case_23
case 24:
goto st_case_24
case 82:
goto st_case_82
case 25:
goto st_case_25
case 26:
goto st_case_26
case 83:
goto st_case_83
case 84:
goto st_case_84
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 85:
goto st_case_85
case 38:
goto st_case_38
case 87:
goto st_case_87
case 88:
goto st_case_88
case 39:
goto st_case_39
case 40:
goto st_case_40
case 41:
goto st_case_41
case 42:
goto st_case_42
case 89:
goto st_case_89
case 43:
goto st_case_43
case 90:
goto st_case_90
case 44:
goto st_case_44
case 45:
goto st_case_45
case 46:
goto st_case_46
case 86:
goto st_case_86
case 36:
goto st_case_36
case 37:
goto st_case_37
}
goto st_out
st47:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof47
}
st_case_47:
switch (m.data)[(m.p)] {
case 10:
goto tr33
case 13:
goto tr33
case 32:
goto tr82
case 35:
goto tr33
case 44:
goto tr33
case 92:
goto tr83
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr82
}
goto tr81
tr31:
//line machine.go.rl:20
m.pb = m.p
goto st1
tr81:
//line machine.go.rl:74
m.beginMetric = true
//line machine.go.rl:20
m.pb = m.p
goto st1
st1:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof1
}
st_case_1:
//line machine.go:586
switch (m.data)[(m.p)] {
case 10:
goto tr2
case 13:
goto tr2
case 32:
goto tr1
case 44:
goto tr3
case 92:
goto st9
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr1
}
goto st1
tr1:
(m.cs) = 2
//line machine.go.rl:78
err = m.handler.SetMeasurement(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr58:
(m.cs) = 2
//line machine.go.rl:91
err = m.handler.AddTag(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st2:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof2
}
st_case_2:
//line machine.go:634
switch (m.data)[(m.p)] {
case 10:
goto tr7
case 13:
goto tr7
case 32:
goto st2
case 44:
goto tr7
case 61:
goto tr7
case 92:
goto tr8
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto st2
}
goto tr5
tr5:
//line machine.go.rl:20
m.pb = m.p
goto st3
st3:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof3
}
st_case_3:
//line machine.go:664
switch (m.data)[(m.p)] {
case 32:
goto tr7
case 44:
goto tr7
case 61:
goto tr10
case 92:
goto st13
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr7
}
goto st3
tr2:
(m.cs) = 0
//line machine.go.rl:38
err = ErrTagParse
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
goto _again
tr7:
(m.cs) = 0
//line machine.go.rl:31
err = ErrFieldParse
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
goto _again
tr33:
(m.cs) = 0
//line machine.go.rl:24
err = ErrNameParse
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
goto _again
tr37:
(m.cs) = 0
//line machine.go.rl:45
err = ErrTimestampParse
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
goto _again
tr84:
(m.cs) = 0
//line machine.go.rl:31
err = ErrFieldParse
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
//line machine.go.rl:45
err = ErrTimestampParse
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
goto _again
tr137:
//line machine.go.rl:65
(m.p)--
{
goto st47
}
goto st0
//line machine.go:750
st_case_0:
st0:
(m.cs) = 0
goto _out
tr10:
//line machine.go.rl:100
m.key = m.text()
goto st4
st4:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof4
}
st_case_4:
//line machine.go:766
switch (m.data)[(m.p)] {
case 34:
goto st5
case 45:
goto tr13
case 46:
goto tr14
case 48:
goto tr15
case 70:
goto tr17
case 84:
goto tr18
case 102:
goto tr19
case 116:
goto tr20
}
if 49 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto tr16
}
goto tr7
st5:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof5
}
st_case_5:
switch (m.data)[(m.p)] {
case 10:
goto tr22
case 12:
goto tr7
case 13:
goto tr23
case 34:
goto tr24
case 92:
goto tr25
}
goto tr21
tr21:
//line machine.go.rl:20
m.pb = m.p
goto st6
tr22:
//line machine.go.rl:20
m.pb = m.p
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto st6
tr27:
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto st6
st6:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof6
}
st_case_6:
//line machine.go:838
switch (m.data)[(m.p)] {
case 10:
goto tr27
case 12:
goto tr7
case 13:
goto st7
case 34:
goto tr29
case 92:
goto st14
}
goto st6
tr23:
//line machine.go.rl:20
m.pb = m.p
goto st7
st7:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof7
}
st_case_7:
//line machine.go:863
if (m.data)[(m.p)] == 10 {
goto tr27
}
goto tr7
tr24:
(m.cs) = 48
//line machine.go.rl:20
m.pb = m.p
//line machine.go.rl:140
err = m.handler.AddString(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr29:
(m.cs) = 48
//line machine.go.rl:140
err = m.handler.AddString(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st48:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof48
}
st_case_48:
//line machine.go:903
switch (m.data)[(m.p)] {
case 10:
goto tr36
case 13:
goto st10
case 32:
goto st49
case 44:
goto st12
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto st49
}
goto tr84
tr112:
(m.cs) = 49
//line machine.go.rl:122
err = m.handler.AddFloat(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr119:
(m.cs) = 49
//line machine.go.rl:104
err = m.handler.AddInt(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr124:
(m.cs) = 49
//line machine.go.rl:113
err = m.handler.AddUint(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr129:
(m.cs) = 49
//line machine.go.rl:131
err = m.handler.AddBool(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st49:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof49
}
st_case_49:
//line machine.go:975
switch (m.data)[(m.p)] {
case 10:
goto tr36
case 13:
goto st10
case 32:
goto st49
case 45:
goto tr88
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto tr89
}
case (m.data)[(m.p)] >= 9:
goto st49
}
goto tr37
tr36:
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto st50
tr91:
(m.cs) = 50
//line machine.go.rl:149
err = m.handler.SetTimestamp(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto _again
tr113:
(m.cs) = 50
//line machine.go.rl:122
err = m.handler.AddFloat(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto _again
tr120:
(m.cs) = 50
//line machine.go.rl:104
err = m.handler.AddInt(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto _again
tr125:
(m.cs) = 50
//line machine.go.rl:113
err = m.handler.AddUint(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto _again
tr130:
(m.cs) = 50
//line machine.go.rl:131
err = m.handler.AddBool(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto _again
st50:
//line machine.go.rl:164
m.finishMetric = true
(m.cs) = 86
{
(m.p)++
goto _out
}
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof50
}
st_case_50:
//line machine.go:1109
switch (m.data)[(m.p)] {
case 10:
goto tr33
case 13:
goto tr33
case 32:
goto st8
case 35:
goto tr33
case 44:
goto tr33
case 92:
goto tr34
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto st8
}
goto tr31
tr82:
//line machine.go.rl:74
m.beginMetric = true
goto st8
st8:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof8
}
st_case_8:
//line machine.go:1139
switch (m.data)[(m.p)] {
case 10:
goto tr33
case 13:
goto tr33
case 32:
goto st8
case 35:
goto tr33
case 44:
goto tr33
case 92:
goto tr34
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto st8
}
goto tr31
tr34:
//line machine.go.rl:20
m.pb = m.p
goto st9
tr83:
//line machine.go.rl:74
m.beginMetric = true
//line machine.go.rl:20
m.pb = m.p
goto st9
st9:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof9
}
st_case_9:
//line machine.go:1179
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto st0
}
goto st1
tr92:
(m.cs) = 10
//line machine.go.rl:149
err = m.handler.SetTimestamp(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr114:
(m.cs) = 10
//line machine.go.rl:122
err = m.handler.AddFloat(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr121:
(m.cs) = 10
//line machine.go.rl:104
err = m.handler.AddInt(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr126:
(m.cs) = 10
//line machine.go.rl:113
err = m.handler.AddUint(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr131:
(m.cs) = 10
//line machine.go.rl:131
err = m.handler.AddBool(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st10:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof10
}
st_case_10:
//line machine.go:1254
if (m.data)[(m.p)] == 10 {
goto tr36
}
goto st0
tr88:
//line machine.go.rl:20
m.pb = m.p
goto st11
st11:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof11
}
st_case_11:
//line machine.go:1270
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st51
}
goto tr37
tr89:
//line machine.go.rl:20
m.pb = m.p
goto st51
st51:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof51
}
st_case_51:
//line machine.go:1286
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st53
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
tr90:
(m.cs) = 52
//line machine.go.rl:149
err = m.handler.SetTimestamp(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st52:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof52
}
st_case_52:
//line machine.go:1322
switch (m.data)[(m.p)] {
case 10:
goto tr36
case 13:
goto st10
case 32:
goto st52
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto st52
}
goto st0
st53:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof53
}
st_case_53:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st54
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st54:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof54
}
st_case_54:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st55
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st55:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof55
}
st_case_55:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st56
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st56:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof56
}
st_case_56:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st57
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st57:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof57
}
st_case_57:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st58
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st58:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof58
}
st_case_58:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st59
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st59:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof59
}
st_case_59:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st60
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st60:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof60
}
st_case_60:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st61
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st61:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof61
}
st_case_61:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st62
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st62:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof62
}
st_case_62:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st63
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st63:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof63
}
st_case_63:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st64
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st64:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof64
}
st_case_64:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st65
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st65:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof65
}
st_case_65:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st66
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st66:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof66
}
st_case_66:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st67
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st67:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof67
}
st_case_67:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st68
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st68:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof68
}
st_case_68:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st69
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st69:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof69
}
st_case_69:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st70
}
case (m.data)[(m.p)] >= 9:
goto tr90
}
goto tr37
st70:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof70
}
st_case_70:
switch (m.data)[(m.p)] {
case 10:
goto tr91
case 13:
goto tr92
case 32:
goto tr90
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr90
}
goto tr37
tr115:
(m.cs) = 12
//line machine.go.rl:122
err = m.handler.AddFloat(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr122:
(m.cs) = 12
//line machine.go.rl:104
err = m.handler.AddInt(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr127:
(m.cs) = 12
//line machine.go.rl:113
err = m.handler.AddUint(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr132:
(m.cs) = 12
//line machine.go.rl:131
err = m.handler.AddBool(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st12:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof12
}
st_case_12:
//line machine.go:1783
switch (m.data)[(m.p)] {
case 32:
goto tr7
case 44:
goto tr7
case 61:
goto tr7
case 92:
goto tr8
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr7
}
goto tr5
tr8:
//line machine.go.rl:20
m.pb = m.p
goto st13
st13:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof13
}
st_case_13:
//line machine.go:1809
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr7
}
goto st3
tr25:
//line machine.go.rl:20
m.pb = m.p
goto st14
st14:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof14
}
st_case_14:
//line machine.go:1825
switch (m.data)[(m.p)] {
case 34:
goto st6
case 92:
goto st6
}
goto tr7
tr13:
//line machine.go.rl:20
m.pb = m.p
goto st15
st15:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof15
}
st_case_15:
//line machine.go:1844
switch (m.data)[(m.p)] {
case 46:
goto st16
case 48:
goto st73
}
if 49 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st76
}
goto tr7
tr14:
//line machine.go.rl:20
m.pb = m.p
goto st16
st16:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof16
}
st_case_16:
//line machine.go:1866
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st71
}
goto tr7
st71:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof71
}
st_case_71:
switch (m.data)[(m.p)] {
case 10:
goto tr113
case 13:
goto tr114
case 32:
goto tr112
case 44:
goto tr115
case 69:
goto st17
case 101:
goto st17
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st71
}
case (m.data)[(m.p)] >= 9:
goto tr112
}
goto tr84
st17:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof17
}
st_case_17:
switch (m.data)[(m.p)] {
case 34:
goto st18
case 43:
goto st18
case 45:
goto st18
}
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st72
}
goto tr7
st18:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof18
}
st_case_18:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st72
}
goto tr7
st72:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof72
}
st_case_72:
switch (m.data)[(m.p)] {
case 10:
goto tr113
case 13:
goto tr114
case 32:
goto tr112
case 44:
goto tr115
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st72
}
case (m.data)[(m.p)] >= 9:
goto tr112
}
goto tr84
st73:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof73
}
st_case_73:
switch (m.data)[(m.p)] {
case 10:
goto tr113
case 13:
goto tr114
case 32:
goto tr112
case 44:
goto tr115
case 46:
goto st71
case 69:
goto st17
case 101:
goto st17
case 105:
goto st75
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st74
}
case (m.data)[(m.p)] >= 9:
goto tr112
}
goto tr84
st74:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof74
}
st_case_74:
switch (m.data)[(m.p)] {
case 10:
goto tr113
case 13:
goto tr114
case 32:
goto tr112
case 44:
goto tr115
case 46:
goto st71
case 69:
goto st17
case 101:
goto st17
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st74
}
case (m.data)[(m.p)] >= 9:
goto tr112
}
goto tr84
st75:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof75
}
st_case_75:
switch (m.data)[(m.p)] {
case 10:
goto tr120
case 13:
goto tr121
case 32:
goto tr119
case 44:
goto tr122
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr119
}
goto tr84
st76:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof76
}
st_case_76:
switch (m.data)[(m.p)] {
case 10:
goto tr113
case 13:
goto tr114
case 32:
goto tr112
case 44:
goto tr115
case 46:
goto st71
case 69:
goto st17
case 101:
goto st17
case 105:
goto st75
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st76
}
case (m.data)[(m.p)] >= 9:
goto tr112
}
goto tr84
tr15:
//line machine.go.rl:20
m.pb = m.p
goto st77
st77:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof77
}
st_case_77:
//line machine.go:2073
switch (m.data)[(m.p)] {
case 10:
goto tr113
case 13:
goto tr114
case 32:
goto tr112
case 44:
goto tr115
case 46:
goto st71
case 69:
goto st17
case 101:
goto st17
case 105:
goto st75
case 117:
goto st78
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st74
}
case (m.data)[(m.p)] >= 9:
goto tr112
}
goto tr84
st78:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof78
}
st_case_78:
switch (m.data)[(m.p)] {
case 10:
goto tr125
case 13:
goto tr126
case 32:
goto tr124
case 44:
goto tr127
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr124
}
goto tr84
tr16:
//line machine.go.rl:20
m.pb = m.p
goto st79
st79:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof79
}
st_case_79:
//line machine.go:2133
switch (m.data)[(m.p)] {
case 10:
goto tr113
case 13:
goto tr114
case 32:
goto tr112
case 44:
goto tr115
case 46:
goto st71
case 69:
goto st17
case 101:
goto st17
case 105:
goto st75
case 117:
goto st78
}
switch {
case (m.data)[(m.p)] > 12:
if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
goto st79
}
case (m.data)[(m.p)] >= 9:
goto tr112
}
goto tr84
tr17:
//line machine.go.rl:20
m.pb = m.p
goto st80
st80:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof80
}
st_case_80:
//line machine.go:2174
switch (m.data)[(m.p)] {
case 10:
goto tr130
case 13:
goto tr131
case 32:
goto tr129
case 44:
goto tr132
case 65:
goto st19
case 97:
goto st22
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr129
}
goto tr84
st19:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof19
}
st_case_19:
if (m.data)[(m.p)] == 76 {
goto st20
}
goto tr7
st20:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof20
}
st_case_20:
if (m.data)[(m.p)] == 83 {
goto st21
}
goto tr7
st21:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof21
}
st_case_21:
if (m.data)[(m.p)] == 69 {
goto st81
}
goto tr7
st81:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof81
}
st_case_81:
switch (m.data)[(m.p)] {
case 10:
goto tr130
case 13:
goto tr131
case 32:
goto tr129
case 44:
goto tr132
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr129
}
goto tr84
st22:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof22
}
st_case_22:
if (m.data)[(m.p)] == 108 {
goto st23
}
goto tr7
st23:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof23
}
st_case_23:
if (m.data)[(m.p)] == 115 {
goto st24
}
goto tr7
st24:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof24
}
st_case_24:
if (m.data)[(m.p)] == 101 {
goto st81
}
goto tr7
tr18:
//line machine.go.rl:20
m.pb = m.p
goto st82
st82:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof82
}
st_case_82:
//line machine.go:2277
switch (m.data)[(m.p)] {
case 10:
goto tr130
case 13:
goto tr131
case 32:
goto tr129
case 44:
goto tr132
case 82:
goto st25
case 114:
goto st26
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr129
}
goto tr84
st25:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof25
}
st_case_25:
if (m.data)[(m.p)] == 85 {
goto st21
}
goto tr7
st26:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof26
}
st_case_26:
if (m.data)[(m.p)] == 117 {
goto st24
}
goto tr7
tr19:
//line machine.go.rl:20
m.pb = m.p
goto st83
st83:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof83
}
st_case_83:
//line machine.go:2325
switch (m.data)[(m.p)] {
case 10:
goto tr130
case 13:
goto tr131
case 32:
goto tr129
case 44:
goto tr132
case 97:
goto st22
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr129
}
goto tr84
tr20:
//line machine.go.rl:20
m.pb = m.p
goto st84
st84:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof84
}
st_case_84:
//line machine.go:2353
switch (m.data)[(m.p)] {
case 10:
goto tr130
case 13:
goto tr131
case 32:
goto tr129
case 44:
goto tr132
case 114:
goto st26
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr129
}
goto tr84
tr3:
(m.cs) = 27
//line machine.go.rl:78
err = m.handler.SetMeasurement(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr59:
(m.cs) = 27
//line machine.go.rl:91
err = m.handler.AddTag(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st27:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof27
}
st_case_27:
//line machine.go:2401
switch (m.data)[(m.p)] {
case 32:
goto tr2
case 44:
goto tr2
case 61:
goto tr2
case 92:
goto tr51
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto tr50
tr50:
//line machine.go.rl:20
m.pb = m.p
goto st28
st28:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof28
}
st_case_28:
//line machine.go:2427
switch (m.data)[(m.p)] {
case 32:
goto tr2
case 44:
goto tr2
case 61:
goto tr53
case 92:
goto st33
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto st28
tr53:
//line machine.go.rl:87
m.key = m.text()
goto st29
st29:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof29
}
st_case_29:
//line machine.go:2453
switch (m.data)[(m.p)] {
case 32:
goto tr2
case 44:
goto tr2
case 61:
goto tr2
case 92:
goto tr56
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto tr55
tr55:
//line machine.go.rl:20
m.pb = m.p
goto st30
st30:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof30
}
st_case_30:
//line machine.go:2479
switch (m.data)[(m.p)] {
case 10:
goto tr2
case 13:
goto tr2
case 32:
goto tr58
case 44:
goto tr59
case 61:
goto tr2
case 92:
goto st31
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr58
}
goto st30
tr56:
//line machine.go.rl:20
m.pb = m.p
goto st31
st31:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof31
}
st_case_31:
//line machine.go:2509
if (m.data)[(m.p)] == 92 {
goto st32
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto st30
st32:
//line machine.go.rl:240
(m.p)--
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof32
}
st_case_32:
//line machine.go:2525
switch (m.data)[(m.p)] {
case 10:
goto tr2
case 13:
goto tr2
case 32:
goto tr58
case 44:
goto tr59
case 61:
goto tr2
case 92:
goto st31
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr58
}
goto st30
tr51:
//line machine.go.rl:20
m.pb = m.p
goto st33
st33:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof33
}
st_case_33:
//line machine.go:2555
if (m.data)[(m.p)] == 92 {
goto st34
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto st28
st34:
//line machine.go.rl:240
(m.p)--
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof34
}
st_case_34:
//line machine.go:2571
switch (m.data)[(m.p)] {
case 32:
goto tr2
case 44:
goto tr2
case 61:
goto tr53
case 92:
goto st33
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto st28
st35:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof35
}
st_case_35:
if (m.data)[(m.p)] == 10 {
goto tr64
}
goto st35
tr64:
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
//line machine.go.rl:70
{
goto st86
}
goto st85
st85:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof85
}
st_case_85:
//line machine.go:2612
goto st0
st38:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof38
}
st_case_38:
switch (m.data)[(m.p)] {
case 32:
goto tr33
case 35:
goto tr33
case 44:
goto tr33
case 92:
goto tr68
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr33
}
goto tr67
tr67:
//line machine.go.rl:74
m.beginMetric = true
//line machine.go.rl:20
m.pb = m.p
goto st87
st87:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof87
}
st_case_87:
//line machine.go:2648
switch (m.data)[(m.p)] {
case 10:
goto tr140
case 13:
goto tr141
case 32:
goto tr2
case 44:
goto tr142
case 92:
goto st46
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr2
}
goto st87
tr69:
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto st88
tr140:
(m.cs) = 88
//line machine.go.rl:78
err = m.handler.SetMeasurement(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto _again
tr144:
(m.cs) = 88
//line machine.go.rl:91
err = m.handler.AddTag(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto _again
st88:
//line machine.go.rl:164
m.finishMetric = true
(m.cs) = 86
{
(m.p)++
goto _out
}
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof88
}
st_case_88:
//line machine.go:2722
goto st0
tr141:
(m.cs) = 39
//line machine.go.rl:78
err = m.handler.SetMeasurement(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr145:
(m.cs) = 39
//line machine.go.rl:91
err = m.handler.AddTag(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st39:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof39
}
st_case_39:
//line machine.go:2755
if (m.data)[(m.p)] == 10 {
goto tr69
}
goto st0
tr142:
(m.cs) = 40
//line machine.go.rl:78
err = m.handler.SetMeasurement(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
tr146:
(m.cs) = 40
//line machine.go.rl:91
err = m.handler.AddTag(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
goto _out
}
}
goto _again
st40:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof40
}
st_case_40:
//line machine.go:2791
switch (m.data)[(m.p)] {
case 32:
goto tr2
case 44:
goto tr2
case 61:
goto tr2
case 92:
goto tr71
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto tr70
tr70:
//line machine.go.rl:20
m.pb = m.p
goto st41
st41:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof41
}
st_case_41:
//line machine.go:2817
switch (m.data)[(m.p)] {
case 32:
goto tr2
case 44:
goto tr2
case 61:
goto tr73
case 92:
goto st44
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto st41
tr73:
//line machine.go.rl:87
m.key = m.text()
goto st42
st42:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof42
}
st_case_42:
//line machine.go:2843
switch (m.data)[(m.p)] {
case 32:
goto tr2
case 44:
goto tr2
case 61:
goto tr2
case 92:
goto tr76
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto tr75
tr75:
//line machine.go.rl:20
m.pb = m.p
goto st89
st89:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof89
}
st_case_89:
//line machine.go:2869
switch (m.data)[(m.p)] {
case 10:
goto tr144
case 13:
goto tr145
case 32:
goto tr2
case 44:
goto tr146
case 61:
goto tr2
case 92:
goto st43
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr2
}
goto st89
tr76:
//line machine.go.rl:20
m.pb = m.p
goto st43
st43:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof43
}
st_case_43:
//line machine.go:2899
if (m.data)[(m.p)] == 92 {
goto st90
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto st89
st90:
//line machine.go.rl:240
(m.p)--
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof90
}
st_case_90:
//line machine.go:2915
switch (m.data)[(m.p)] {
case 10:
goto tr144
case 13:
goto tr145
case 32:
goto tr2
case 44:
goto tr146
case 61:
goto tr2
case 92:
goto st43
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto tr2
}
goto st89
tr71:
//line machine.go.rl:20
m.pb = m.p
goto st44
st44:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof44
}
st_case_44:
//line machine.go:2945
if (m.data)[(m.p)] == 92 {
goto st45
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto st41
st45:
//line machine.go.rl:240
(m.p)--
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof45
}
st_case_45:
//line machine.go:2961
switch (m.data)[(m.p)] {
case 32:
goto tr2
case 44:
goto tr2
case 61:
goto tr73
case 92:
goto st44
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto tr2
}
goto st41
tr68:
//line machine.go.rl:74
m.beginMetric = true
//line machine.go.rl:20
m.pb = m.p
goto st46
st46:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof46
}
st_case_46:
//line machine.go:2991
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 13 {
goto st0
}
goto st87
tr65:
//line machine.go.rl:158
m.lineno++
m.sol = m.p
m.sol++ // next char will be the first column in the line
goto st86
st86:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof86
}
st_case_86:
//line machine.go:3009
switch (m.data)[(m.p)] {
case 10:
goto tr65
case 13:
goto st36
case 32:
goto st86
case 35:
goto st37
}
if 9 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 12 {
goto st86
}
goto tr137
st36:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof36
}
st_case_36:
if (m.data)[(m.p)] == 10 {
goto tr65
}
goto st0
st37:
if (m.p)++; (m.p) == (m.pe) {
goto _test_eof37
}
st_case_37:
if (m.data)[(m.p)] == 10 {
goto tr65
}
goto st37
st_out:
_test_eof47:
(m.cs) = 47
goto _test_eof
_test_eof1:
(m.cs) = 1
goto _test_eof
_test_eof2:
(m.cs) = 2
goto _test_eof
_test_eof3:
(m.cs) = 3
goto _test_eof
_test_eof4:
(m.cs) = 4
goto _test_eof
_test_eof5:
(m.cs) = 5
goto _test_eof
_test_eof6:
(m.cs) = 6
goto _test_eof
_test_eof7:
(m.cs) = 7
goto _test_eof
_test_eof48:
(m.cs) = 48
goto _test_eof
_test_eof49:
(m.cs) = 49
goto _test_eof
_test_eof50:
(m.cs) = 50
goto _test_eof
_test_eof8:
(m.cs) = 8
goto _test_eof
_test_eof9:
(m.cs) = 9
goto _test_eof
_test_eof10:
(m.cs) = 10
goto _test_eof
_test_eof11:
(m.cs) = 11
goto _test_eof
_test_eof51:
(m.cs) = 51
goto _test_eof
_test_eof52:
(m.cs) = 52
goto _test_eof
_test_eof53:
(m.cs) = 53
goto _test_eof
_test_eof54:
(m.cs) = 54
goto _test_eof
_test_eof55:
(m.cs) = 55
goto _test_eof
_test_eof56:
(m.cs) = 56
goto _test_eof
_test_eof57:
(m.cs) = 57
goto _test_eof
_test_eof58:
(m.cs) = 58
goto _test_eof
_test_eof59:
(m.cs) = 59
goto _test_eof
_test_eof60:
(m.cs) = 60
goto _test_eof
_test_eof61:
(m.cs) = 61
goto _test_eof
_test_eof62:
(m.cs) = 62
goto _test_eof
_test_eof63:
(m.cs) = 63
goto _test_eof
_test_eof64:
(m.cs) = 64
goto _test_eof
_test_eof65:
(m.cs) = 65
goto _test_eof
_test_eof66:
(m.cs) = 66
goto _test_eof
_test_eof67:
(m.cs) = 67
goto _test_eof
_test_eof68:
(m.cs) = 68
goto _test_eof
_test_eof69:
(m.cs) = 69
goto _test_eof
_test_eof70:
(m.cs) = 70
goto _test_eof
_test_eof12:
(m.cs) = 12
goto _test_eof
_test_eof13:
(m.cs) = 13
goto _test_eof
_test_eof14:
(m.cs) = 14
goto _test_eof
_test_eof15:
(m.cs) = 15
goto _test_eof
_test_eof16:
(m.cs) = 16
goto _test_eof
_test_eof71:
(m.cs) = 71
goto _test_eof
_test_eof17:
(m.cs) = 17
goto _test_eof
_test_eof18:
(m.cs) = 18
goto _test_eof
_test_eof72:
(m.cs) = 72
goto _test_eof
_test_eof73:
(m.cs) = 73
goto _test_eof
_test_eof74:
(m.cs) = 74
goto _test_eof
_test_eof75:
(m.cs) = 75
goto _test_eof
_test_eof76:
(m.cs) = 76
goto _test_eof
_test_eof77:
(m.cs) = 77
goto _test_eof
_test_eof78:
(m.cs) = 78
goto _test_eof
_test_eof79:
(m.cs) = 79
goto _test_eof
_test_eof80:
(m.cs) = 80
goto _test_eof
_test_eof19:
(m.cs) = 19
goto _test_eof
_test_eof20:
(m.cs) = 20
goto _test_eof
_test_eof21:
(m.cs) = 21
goto _test_eof
_test_eof81:
(m.cs) = 81
goto _test_eof
_test_eof22:
(m.cs) = 22
goto _test_eof
_test_eof23:
(m.cs) = 23
goto _test_eof
_test_eof24:
(m.cs) = 24
goto _test_eof
_test_eof82:
(m.cs) = 82
goto _test_eof
_test_eof25:
(m.cs) = 25
goto _test_eof
_test_eof26:
(m.cs) = 26
goto _test_eof
_test_eof83:
(m.cs) = 83
goto _test_eof
_test_eof84:
(m.cs) = 84
goto _test_eof
_test_eof27:
(m.cs) = 27
goto _test_eof
_test_eof28:
(m.cs) = 28
goto _test_eof
_test_eof29:
(m.cs) = 29
goto _test_eof
_test_eof30:
(m.cs) = 30
goto _test_eof
_test_eof31:
(m.cs) = 31
goto _test_eof
_test_eof32:
(m.cs) = 32
goto _test_eof
_test_eof33:
(m.cs) = 33
goto _test_eof
_test_eof34:
(m.cs) = 34
goto _test_eof
_test_eof35:
(m.cs) = 35
goto _test_eof
_test_eof85:
(m.cs) = 85
goto _test_eof
_test_eof38:
(m.cs) = 38
goto _test_eof
_test_eof87:
(m.cs) = 87
goto _test_eof
_test_eof88:
(m.cs) = 88
goto _test_eof
_test_eof39:
(m.cs) = 39
goto _test_eof
_test_eof40:
(m.cs) = 40
goto _test_eof
_test_eof41:
(m.cs) = 41
goto _test_eof
_test_eof42:
(m.cs) = 42
goto _test_eof
_test_eof89:
(m.cs) = 89
goto _test_eof
_test_eof43:
(m.cs) = 43
goto _test_eof
_test_eof90:
(m.cs) = 90
goto _test_eof
_test_eof44:
(m.cs) = 44
goto _test_eof
_test_eof45:
(m.cs) = 45
goto _test_eof
_test_eof46:
(m.cs) = 46
goto _test_eof
_test_eof86:
(m.cs) = 86
goto _test_eof
_test_eof36:
(m.cs) = 36
goto _test_eof
_test_eof37:
(m.cs) = 37
goto _test_eof
_test_eof:
{
}
if (m.p) == (m.eof) {
switch m.cs {
case 8, 38:
//line machine.go.rl:24
err = ErrNameParse
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
case 2, 3, 4, 5, 6, 7, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26:
//line machine.go.rl:31
err = ErrFieldParse
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
case 27, 28, 29, 31, 33, 34, 40, 41, 42, 43, 44, 45:
//line machine.go.rl:38
err = ErrTagParse
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
case 11:
//line machine.go.rl:45
err = ErrTimestampParse
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
case 87:
//line machine.go.rl:78
err = m.handler.SetMeasurement(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
case 89, 90:
//line machine.go.rl:91
err = m.handler.AddTag(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
case 48, 49, 50, 52:
//line machine.go.rl:170
m.finishMetric = true
case 47:
//line machine.go.rl:74
m.beginMetric = true
//line machine.go.rl:170
m.finishMetric = true
case 1:
//line machine.go.rl:78
err = m.handler.SetMeasurement(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
//line machine.go.rl:38
err = ErrTagParse
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
case 30, 32:
//line machine.go.rl:91
err = m.handler.AddTag(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
//line machine.go.rl:38
err = ErrTagParse
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
case 75:
//line machine.go.rl:104
err = m.handler.AddInt(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
//line machine.go.rl:170
m.finishMetric = true
case 78:
//line machine.go.rl:113
err = m.handler.AddUint(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
//line machine.go.rl:170
m.finishMetric = true
case 71, 72, 73, 74, 76, 77, 79:
//line machine.go.rl:122
err = m.handler.AddFloat(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
//line machine.go.rl:170
m.finishMetric = true
case 80, 81, 82, 83, 84:
//line machine.go.rl:131
err = m.handler.AddBool(m.key, m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
//line machine.go.rl:170
m.finishMetric = true
case 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70:
//line machine.go.rl:149
err = m.handler.SetTimestamp(m.text())
if err != nil {
(m.p)--
(m.cs) = 35
{
(m.p)++
(m.cs) = 0
goto _out
}
}
//line machine.go.rl:170
m.finishMetric = true
//line machine.go:3322
}
}
_out:
{
}
}
//line machine.go.rl:407
if err != nil {
return err
}
// This would indicate an error in the machine that was reported with a
// more specific error. We return a generic error but this should
// possibly be a panic.
if m.cs == 0 {
m.cs = LineProtocol_en_discard_line
return ErrParse
}
// If we haven't found a metric line yet and we reached the EOF, report it
// now. This happens when the data ends with a comment or whitespace.
//
// Otherwise we have successfully parsed a metric line, so if we are at
// the EOF we will report it the next call.
if !m.beginMetric && m.p == m.pe && m.pe == m.eof {
return EOF
}
return nil
}
// Position returns the current byte offset into the data.
func (m *machine) Position() int {
return m.p
}
// LineOffset returns the byte offset of the current line.
func (m *machine) LineOffset() int {
return m.sol
}
// LineNumber returns the current line number. Lines are counted based on the
// regular expression `\r?\n`.
func (m *machine) LineNumber() int {
return m.lineno
}
// Column returns the current column.
func (m *machine) Column() int {
lineOffset := m.p - m.sol
return lineOffset + 1
}
func (m *machine) text() []byte {
return m.data[m.pb:m.p]
}
type streamMachine struct {
machine *machine
reader io.Reader
}
func NewStreamMachine(r io.Reader, handler Handler) *streamMachine {
m := &streamMachine{
machine: NewMachine(handler),
reader: r,
}
m.machine.SetData(make([]byte, 1024))
m.machine.pe = 0
m.machine.eof = -1
return m
}
func (m *streamMachine) Next() error {
// Check if we are already at EOF, this should only happen if called again
// after already returning EOF.
if m.machine.p == m.machine.pe && m.machine.pe == m.machine.eof {
return EOF
}
copy(m.machine.data, m.machine.data[m.machine.p:])
m.machine.pe = m.machine.pe - m.machine.p
m.machine.sol = m.machine.sol - m.machine.p
m.machine.pb = 0
m.machine.p = 0
m.machine.eof = -1
m.machine.key = nil
m.machine.beginMetric = false
m.machine.finishMetric = false
for {
// Expand the buffer if it is full
if m.machine.pe == len(m.machine.data) {
expanded := make([]byte, 2*len(m.machine.data))
copy(expanded, m.machine.data)
m.machine.data = expanded
}
n, err := m.reader.Read(m.machine.data[m.machine.pe:])
if n == 0 && err == io.EOF {
m.machine.eof = m.machine.pe
} else if err != nil && err != io.EOF {
return err
}
m.machine.pe += n
err = m.machine.exec()
if err != nil {
return err
}
// If we have successfully parsed a full metric line break out
if m.machine.finishMetric {
break
}
}
return nil
}
// Position returns the current byte offset into the data.
func (m *streamMachine) Position() int {
return m.machine.Position()
}
// LineOffset returns the byte offset of the current line.
func (m *streamMachine) LineOffset() int {
return m.machine.LineOffset()
}
// LineNumber returns the current line number. Lines are counted based on the
// regular expression `\r?\n`.
func (m *streamMachine) LineNumber() int {
return m.machine.LineNumber()
}
// Column returns the current column.
func (m *streamMachine) Column() int {
return m.machine.Column()
}
// LineText returns the text of the current line that has been parsed so far.
func (m *streamMachine) LineText() string {
return string(m.machine.data[0:m.machine.p])
}