func (l *promlexer) Lex() token {
	if l.i >= len(l.b) {
		return tEOF
	}
	c := l.b[l.i]
	l.start = l.i

yystate0:

	switch yyt := l.state; yyt {
	default:
		panic(errors.Errorf(`invalid start condition %d`, yyt))
	case 0: // start condition: INITIAL
		goto yystart1
	case 1: // start condition: sComment
		goto yystart8
	case 2: // start condition: sMeta1
		goto yystart19
	case 3: // start condition: sMeta2
		goto yystart21
	case 4: // start condition: sLabels
		goto yystart24
	case 5: // start condition: sLValue
		goto yystart29
	case 6: // start condition: sValue
		goto yystart33
	case 7: // start condition: sTimestamp
		goto yystart36
	}

	goto yystate0 // silence unused label error
	goto yystate1 // silence unused label error
yystate1:
	c = l.next()
yystart1:
	switch {
	default:
		goto yyabort
	case c == '#':
		goto yystate5
	case c == ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate7
	case c == '\n':
		goto yystate4
	case c == '\t' || c == ' ':
		goto yystate3
	case c == '\x00':
		goto yystate2
	}

yystate2:
	c = l.next()
	goto yyrule1

yystate3:
	c = l.next()
	switch {
	default:
		goto yyrule3
	case c == '\t' || c == ' ':
		goto yystate3
	}

yystate4:
	c = l.next()
	goto yyrule2

yystate5:
	c = l.next()
	switch {
	default:
		goto yyrule5
	case c == '\t' || c == ' ':
		goto yystate6
	}

yystate6:
	c = l.next()
	switch {
	default:
		goto yyrule4
	case c == '\t' || c == ' ':
		goto yystate6
	}

yystate7:
	c = l.next()
	switch {
	default:
		goto yyrule10
	case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate7
	}

	goto yystate8 // silence unused label error
yystate8:
	c = l.next()
yystart8:
	switch {
	default:
		goto yyabort
	case c == 'H':
		goto yystate9
	case c == 'T':
		goto yystate14
	case c == '\t' || c == ' ':
		goto yystate3
	}

yystate9:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'E':
		goto yystate10
	}

yystate10:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'L':
		goto yystate11
	}

yystate11:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'P':
		goto yystate12
	}

yystate12:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == '\t' || c == ' ':
		goto yystate13
	}

yystate13:
	c = l.next()
	switch {
	default:
		goto yyrule6
	case c == '\t' || c == ' ':
		goto yystate13
	}

yystate14:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'Y':
		goto yystate15
	}

yystate15:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'P':
		goto yystate16
	}

yystate16:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'E':
		goto yystate17
	}

yystate17:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == '\t' || c == ' ':
		goto yystate18
	}

yystate18:
	c = l.next()
	switch {
	default:
		goto yyrule7
	case c == '\t' || c == ' ':
		goto yystate18
	}

	goto yystate19 // silence unused label error
yystate19:
	c = l.next()
yystart19:
	switch {
	default:
		goto yyabort
	case c == ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate20
	case c == '\t' || c == ' ':
		goto yystate3
	}

yystate20:
	c = l.next()
	switch {
	default:
		goto yyrule8
	case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate20
	}

	goto yystate21 // silence unused label error
yystate21:
	c = l.next()
yystart21:
	switch {
	default:
		goto yyrule9
	case c == '\t' || c == ' ':
		goto yystate23
	case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'ÿ':
		goto yystate22
	}

yystate22:
	c = l.next()
	switch {
	default:
		goto yyrule9
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ':
		goto yystate22
	}

yystate23:
	c = l.next()
	switch {
	default:
		goto yyrule3
	case c == '\t' || c == ' ':
		goto yystate23
	case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'ÿ':
		goto yystate22
	}

	goto yystate24 // silence unused label error
yystate24:
	c = l.next()
yystart24:
	switch {
	default:
		goto yyabort
	case c == ',':
		goto yystate25
	case c == '=':
		goto yystate26
	case c == '\t' || c == ' ':
		goto yystate3
	case c == '}':
		goto yystate28
	case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate27
	}

yystate25:
	c = l.next()
	goto yyrule15

yystate26:
	c = l.next()
	goto yyrule14

yystate27:
	c = l.next()
	switch {
	default:
		goto yyrule12
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate27
	}

yystate28:
	c = l.next()
	goto yyrule13

	goto yystate29 // silence unused label error
yystate29:
	c = l.next()
yystart29:
	switch {
	default:
		goto yyabort
	case c == '"':
		goto yystate30
	case c == '\t' || c == ' ':
		goto yystate3
	}

yystate30:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == '"':
		goto yystate31
	case c == '\\':
		goto yystate32
	case c >= '\x01' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= 'ÿ':
		goto yystate30
	}

yystate31:
	c = l.next()
	goto yyrule16

yystate32:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ':
		goto yystate30
	}

	goto yystate33 // silence unused label error
yystate33:
	c = l.next()
yystart33:
	switch {
	default:
		goto yyabort
	case c == '\t' || c == ' ':
		goto yystate3
	case c == '{':
		goto yystate35
	case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'z' || c >= '|' && c <= 'ÿ':
		goto yystate34
	}

yystate34:
	c = l.next()
	switch {
	default:
		goto yyrule17
	case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'z' || c >= '|' && c <= 'ÿ':
		goto yystate34
	}

yystate35:
	c = l.next()
	goto yyrule11

	goto yystate36 // silence unused label error
yystate36:
	c = l.next()
yystart36:
	switch {
	default:
		goto yyabort
	case c == '\n':
		goto yystate37
	case c == '\t' || c == ' ':
		goto yystate3
	case c >= '0' && c <= '9':
		goto yystate38
	}

yystate37:
	c = l.next()
	goto yyrule19

yystate38:
	c = l.next()
	switch {
	default:
		goto yyrule18
	case c >= '0' && c <= '9':
		goto yystate38
	}

yyrule1: // \0
	{
		return tEOF
	}
yyrule2: // \n
	{
		l.state = sInit
		return tLinebreak
		goto yystate0
	}
yyrule3: // [ \t]+
	{
		return tWhitespace
	}
yyrule4: // #[ \t]+
	{
		l.state = sComment
		goto yystate0
	}
yyrule5: // #
	{
		return l.consumeComment()
	}
yyrule6: // HELP[\t ]+
	{
		l.state = sMeta1
		return tHelp
		goto yystate0
	}
yyrule7: // TYPE[\t ]+
	{
		l.state = sMeta1
		return tType
		goto yystate0
	}
yyrule8: // {M}({M}|{D})*
	{
		l.state = sMeta2
		return tMName
		goto yystate0
	}
yyrule9: // {C}*
	{
		l.state = sInit
		return tText
		goto yystate0
	}
yyrule10: // {M}({M}|{D})*
	{
		l.state = sValue
		return tMName
		goto yystate0
	}
yyrule11: // \{
	{
		l.state = sLabels
		return tBraceOpen
		goto yystate0
	}
yyrule12: // {L}({L}|{D})*
	{
		return tLName
	}
yyrule13: // \}
	{
		l.state = sValue
		return tBraceClose
		goto yystate0
	}
yyrule14: // =
	{
		l.state = sLValue
		return tEqual
		goto yystate0
	}
yyrule15: // ,
	{
		return tComma
	}
yyrule16: // \"(\\.|[^\\"])*\"
	{
		l.state = sLabels
		return tLValue
		goto yystate0
	}
yyrule17: // [^{ \t\n]+
	{
		l.state = sTimestamp
		return tValue
		goto yystate0
	}
yyrule18: // {D}+
	{
		return tTimestamp
	}
yyrule19: // \n
	{
		l.state = sInit
		return tLinebreak
		goto yystate0
	}
	panic("unreachable")

	goto yyabort // silence unused label error

yyabort: // no lexem recognized
	// Workaround to gobble up comments that started with a HELP or TYPE
	// prefix. We just consume all characters until we reach a newline.
	// This saves us from adding disproportionate complexity to the parser.
	if l.state == sComment {
		return l.consumeComment()
	}
	return tInvalid
}
func (l *promlexer) Lex() token {
	if l.i >= len(l.b) {
		return tEOF
	}
	c := l.b[l.i]
	l.start = l.i

yystate0:

	switch yyt := l.state; yyt {
	default:
		panic(errors.Errorf(`invalid start condition %d`, yyt))
	case 0: 
		goto yystart1
	case 1: 
		goto yystart8
	case 2: 
		goto yystart19
	case 3: 
		goto yystart21
	case 4: 
		goto yystart24
	case 5: 
		goto yystart29
	case 6: 
		goto yystart33
	case 7: 
		goto yystart36
	}

	goto yystate0 
	goto yystate1 
yystate1:
	c = l.next()
yystart1:
	switch {
	default:
		goto yyabort
	case c == '#':
		goto yystate5
	case c == ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate7
	case c == '\n':
		goto yystate4
	case c == '\t' || c == ' ':
		goto yystate3
	case c == '\x00':
		goto yystate2
	}

yystate2:
	c = l.next()
	goto yyrule1

yystate3:
	c = l.next()
	switch {
	default:
		goto yyrule3
	case c == '\t' || c == ' ':
		goto yystate3
	}

yystate4:
	c = l.next()
	goto yyrule2

yystate5:
	c = l.next()
	switch {
	default:
		goto yyrule5
	case c == '\t' || c == ' ':
		goto yystate6
	}

yystate6:
	c = l.next()
	switch {
	default:
		goto yyrule4
	case c == '\t' || c == ' ':
		goto yystate6
	}

yystate7:
	c = l.next()
	switch {
	default:
		goto yyrule10
	case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate7
	}

	goto yystate8 
yystate8:
	c = l.next()
yystart8:
	switch {
	default:
		goto yyabort
	case c == 'H':
		goto yystate9
	case c == 'T':
		goto yystate14
	case c == '\t' || c == ' ':
		goto yystate3
	}

yystate9:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'E':
		goto yystate10
	}

yystate10:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'L':
		goto yystate11
	}

yystate11:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'P':
		goto yystate12
	}

yystate12:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == '\t' || c == ' ':
		goto yystate13
	}

yystate13:
	c = l.next()
	switch {
	default:
		goto yyrule6
	case c == '\t' || c == ' ':
		goto yystate13
	}

yystate14:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'Y':
		goto yystate15
	}

yystate15:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'P':
		goto yystate16
	}

yystate16:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == 'E':
		goto yystate17
	}

yystate17:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == '\t' || c == ' ':
		goto yystate18
	}

yystate18:
	c = l.next()
	switch {
	default:
		goto yyrule7
	case c == '\t' || c == ' ':
		goto yystate18
	}

	goto yystate19 
yystate19:
	c = l.next()
yystart19:
	switch {
	default:
		goto yyabort
	case c == ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate20
	case c == '\t' || c == ' ':
		goto yystate3
	}

yystate20:
	c = l.next()
	switch {
	default:
		goto yyrule8
	case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate20
	}

	goto yystate21 
yystate21:
	c = l.next()
yystart21:
	switch {
	default:
		goto yyrule9
	case c == '\t' || c == ' ':
		goto yystate23
	case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'ÿ':
		goto yystate22
	}

yystate22:
	c = l.next()
	switch {
	default:
		goto yyrule9
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ':
		goto yystate22
	}

yystate23:
	c = l.next()
	switch {
	default:
		goto yyrule3
	case c == '\t' || c == ' ':
		goto yystate23
	case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'ÿ':
		goto yystate22
	}

	goto yystate24 
yystate24:
	c = l.next()
yystart24:
	switch {
	default:
		goto yyabort
	case c == ',':
		goto yystate25
	case c == '=':
		goto yystate26
	case c == '\t' || c == ' ':
		goto yystate3
	case c == '}':
		goto yystate28
	case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate27
	}

yystate25:
	c = l.next()
	goto yyrule15

yystate26:
	c = l.next()
	goto yyrule14

yystate27:
	c = l.next()
	switch {
	default:
		goto yyrule12
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
		goto yystate27
	}

yystate28:
	c = l.next()
	goto yyrule13

	goto yystate29 
yystate29:
	c = l.next()
yystart29:
	switch {
	default:
		goto yyabort
	case c == '"':
		goto yystate30
	case c == '\t' || c == ' ':
		goto yystate3
	}

yystate30:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c == '"':
		goto yystate31
	case c == '\\':
		goto yystate32
	case c >= '\x01' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= 'ÿ':
		goto yystate30
	}

yystate31:
	c = l.next()
	goto yyrule16

yystate32:
	c = l.next()
	switch {
	default:
		goto yyabort
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ':
		goto yystate30
	}

	goto yystate33 
yystate33:
	c = l.next()
yystart33:
	switch {
	default:
		goto yyabort
	case c == '\t' || c == ' ':
		goto yystate3
	case c == '{':
		goto yystate35
	case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'z' || c >= '|' && c <= 'ÿ':
		goto yystate34
	}

yystate34:
	c = l.next()
	switch {
	default:
		goto yyrule17
	case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'z' || c >= '|' && c <= 'ÿ':
		goto yystate34
	}

yystate35:
	c = l.next()
	goto yyrule11

	goto yystate36 
yystate36:
	c = l.next()
yystart36:
	switch {
	default:
		goto yyabort
	case c == '\n':
		goto yystate37
	case c == '\t' || c == ' ':
		goto yystate3
	case c >= '0' && c <= '9':
		goto yystate38
	}

yystate37:
	c = l.next()
	goto yyrule19

yystate38:
	c = l.next()
	switch {
	default:
		goto yyrule18
	case c >= '0' && c <= '9':
		goto yystate38
	}

yyrule1: 
	{
		return tEOF
	}
yyrule2: 
	{
		l.state = sInit
		return tLinebreak
		goto yystate0
	}
yyrule3: 
	{
		return tWhitespace
	}
yyrule4: 
	{
		l.state = sComment
		goto yystate0
	}
yyrule5: 
	{
		return l.consumeComment()
	}
yyrule6: 
	{
		l.state = sMeta1
		return tHelp
		goto yystate0
	}
yyrule7: 
	{
		l.state = sMeta1
		return tType
		goto yystate0
	}
yyrule8: 
	{
		l.state = sMeta2
		return tMName
		goto yystate0
	}
yyrule9: 
	{
		l.state = sInit
		return tText
		goto yystate0
	}
yyrule10: 
	{
		l.state = sValue
		return tMName
		goto yystate0
	}
yyrule11: 
	{
		l.state = sLabels
		return tBraceOpen
		goto yystate0
	}
yyrule12: 
	{
		return tLName
	}
yyrule13: 
	{
		l.state = sValue
		return tBraceClose
		goto yystate0
	}
yyrule14: 
	{
		l.state = sLValue
		return tEqual
		goto yystate0
	}
yyrule15: 
	{
		return tComma
	}
yyrule16: 
	{
		l.state = sLabels
		return tLValue
		goto yystate0
	}
yyrule17: 
	{
		l.state = sTimestamp
		return tValue
		goto yystate0
	}
yyrule18: 
	{
		return tTimestamp
	}
yyrule19: 
	{
		l.state = sInit
		return tLinebreak
		goto yystate0
	}
	panic("unreachable")

	goto yyabort 

yyabort: 
	
	
	
	if l.state == sComment {
		return l.consumeComment()
	}
	return tInvalid
}
func ( l * promlexer ) Lex ( ) token { if l . i >= len ( l . b ) { return tEOF } c := l . b [ l . i ] l . start = l . i yystate0 : switch yyt := l . state ; yyt { default : panic ( errors . Errorf ( `invalid start condition %d` , yyt ) ) case 0 : // start condition: INITIAL goto yystart1 case 1 : // start condition: sComment goto yystart8 case 2 : // start condition: sMeta1 goto yystart19 case 3 : // start condition: sMeta2 goto yystart21 case 4 : // start condition: sLabels goto yystart24 case 5 : // start condition: sLValue goto yystart29 case 6 : // start condition: sValue goto yystart33 case 7 : // start condition: sTimestamp goto yystart36 } goto yystate0 // silence unused label error goto yystate1 // silence unused label error yystate1 : c = l . next ( ) yystart1 : switch { default : goto yyabort case c == '#' : goto yystate5 case c == ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' : goto yystate7 case c == '\n' : goto yystate4 case c == '\t' || c == ' ' : goto yystate3 case c == '\x00' : goto yystate2 } yystate2 : c = l . next ( ) goto yyrule1 yystate3 : c = l . next ( ) switch { default : goto yyrule3 case c == '\t' || c == ' ' : goto yystate3 } yystate4 : c = l . next ( ) goto yyrule2 yystate5 : c = l . next ( ) switch { default : goto yyrule5 case c == '\t' || c == ' ' : goto yystate6 } yystate6 : c = l . next ( ) switch { default : goto yyrule4 case c == '\t' || c == ' ' : goto yystate6 } yystate7 : c = l . next ( ) switch { default : goto yyrule10 case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' : goto yystate7 } goto yystate8 // silence unused label error yystate8 : c = l . next ( ) yystart8 : switch { default : goto yyabort case c == 'H' : goto yystate9 case c == 'T' : goto yystate14 case c == '\t' || c == ' ' : goto yystate3 } yystate9 : c = l . next ( ) switch { default : goto yyabort case c == 'E' : goto yystate10 } yystate10 : c = l . next ( ) switch { default : goto yyabort case c == 'L' : goto yystate11 } yystate11 : c = l . next ( ) switch { default : goto yyabort case c == 'P' : goto yystate12 } yystate12 : c = l . next ( ) switch { default : goto yyabort case c == '\t' || c == ' ' : goto yystate13 } yystate13 : c = l . next ( ) switch { default : goto yyrule6 case c == '\t' || c == ' ' : goto yystate13 } yystate14 : c = l . next ( ) switch { default : goto yyabort case c == 'Y' : goto yystate15 } yystate15 : c = l . next ( ) switch { default : goto yyabort case c == 'P' : goto yystate16 } yystate16 : c = l . next ( ) switch { default : goto yyabort case c == 'E' : goto yystate17 } yystate17 : c = l . next ( ) switch { default : goto yyabort case c == '\t' || c == ' ' : goto yystate18 } yystate18 : c = l . next ( ) switch { default : goto yyrule7 case c == '\t' || c == ' ' : goto yystate18 } goto yystate19 // silence unused label error yystate19 : c = l . next ( ) yystart19 : switch { default : goto yyabort case c == ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' : goto yystate20 case c == '\t' || c == ' ' : goto yystate3 } yystate20 : c = l . next ( ) switch { default : goto yyrule8 case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' : goto yystate20 } goto yystate21 // silence unused label error yystate21 : c = l . next ( ) yystart21 : switch { default : goto yyrule9 case c == '\t' || c == ' ' : goto yystate23 case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'ÿ': goto yystate22 } yystate22 : c = l . next ( ) switch { default : goto yyrule9 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ': goto yystate22 } yystate23 : c = l . next ( ) switch { default : goto yyrule3 case c == '\t' || c == ' ' : goto yystate23 case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'ÿ': goto yystate22 } goto yystate24 // silence unused label error yystate24 : c = l . next ( ) yystart24 : switch { default : goto yyabort case c == ',' : goto yystate25 case c == '=' : goto yystate26 case c == '\t' || c == ' ' : goto yystate3 case c == '}' : goto yystate28 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' : goto yystate27 } yystate25 : c = l . next ( ) goto yyrule15 yystate26 : c = l . next ( ) goto yyrule14 yystate27 : c = l . next ( ) switch { default : goto yyrule12 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' : goto yystate27 } yystate28 : c = l . next ( ) goto yyrule13 goto yystate29 // silence unused label error yystate29 : c = l . next ( ) yystart29 : switch { default : goto yyabort case c == '"' : goto yystate30 case c == '\t' || c == ' ' : goto yystate3 } yystate30 : c = l . next ( ) switch { default : goto yyabort case c == '"' : goto yystate31 case c == '\\' : goto yystate32 case c >= '\x01' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate30 } yystate31 : c = l . next ( ) goto yyrule16 yystate32 : c = l . next ( ) switch { default : goto yyabort case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ': goto yystate30 } goto yystate33 // silence unused label error yystate33 : c = l . next ( ) yystart33 : switch { default : goto yyabort case c == '\t' || c == ' ' : goto yystate3 case c == '{' : goto yystate35 case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'z' || c >= '|' && c <= 'ÿ': goto yystate34 } yystate34 : c = l . next ( ) switch { default : goto yyrule17 case c >= '\x01' && c <= '\b' || c >= '\v' && c <= '\x1f' || c >= '!' && c <= 'z' || c >= '|' && c <= 'ÿ': goto yystate34 } yystate35 : c = l . next ( ) goto yyrule11 goto yystate36 // silence unused label error yystate36 : c = l . next ( ) yystart36 : switch { default : goto yyabort case c == '\n' : goto yystate37 case c == '\t' || c == ' ' : goto yystate3 case c >= '0' && c <= '9' : goto yystate38 } yystate37 : c = l . next ( ) goto yyrule19 yystate38 : c = l . next ( ) switch { default : goto yyrule18 case c >= '0' && c <= '9' : goto yystate38 } yyrule1 : // \0 { return tEOF } yyrule2 : // \n { l . state = sInit return tLinebreak goto yystate0 } yyrule3 : // [ \t]+ { return tWhitespace } yyrule4 : // #[ \t]+ { l . state = sComment goto yystate0 } yyrule5 : // # { return l . consumeComment ( ) } yyrule6 : // HELP[\t ]+ { l . state = sMeta1 return tHelp goto yystate0 } yyrule7 : // TYPE[\t ]+ { l . state = sMeta1 return tType goto yystate0 } yyrule8 : // {M}({M}|{D})* { l . state = sMeta2 return tMName goto yystate0 } yyrule9 : // {C}* { l . state = sInit return tText goto yystate0 } yyrule10 : // {M}({M}|{D})* { l . state = sValue return tMName goto yystate0 } yyrule11 : // \{ { l . state = sLabels return tBraceOpen goto yystate0 } yyrule12 : // {L}({L}|{D})* { return tLName } yyrule13 : // \} { l . state = sValue return tBraceClose goto yystate0 } yyrule14 : // = { l . state = sLValue return tEqual goto yystate0 } yyrule15 : // , { return tComma } yyrule16 : // \"(\\.|[^\\"])*\" { l . state = sLabels return tLValue goto yystate0 } yyrule17 : // [^{ \t\n]+ { l . state = sTimestamp return tValue goto yystate0 } yyrule18 : // {D}+ { return tTimestamp } yyrule19 : // \n { l . state = sInit return tLinebreak goto yystate0 } panic ( " " ) goto yyabort // silence unused label error yyabort : // no lexem recognized // Workaround to gobble up comments that started with a HELP or TYPE // prefix. We just consume all characters until we reach a newline. // This saves us from adding disproportionate complexity to the parser. if l . state == sComment { return l . consumeComment ( ) } return tInvalid }
// Lex is called by the parser generated by "go tool yacc" to obtain each
// token. The method is opened before the matching rules block and closed at
// the end of the file.
Lex is called by the parser generated by go tool yacc to obtain each token . The method is opened before the matching rules block and closed at the end of the file .