mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-27 06:29:42 -08:00
8fdfa8abea
i) Uses the more idiomatic Wrap and Wrapf methods for creating nested errors. ii) Fixes some incorrect usages of fmt.Errorf where the error messages don't have any formatting directives. iii) Does away with the use of fmt package for errors in favour of pkg/errors Signed-off-by: tariqibrahim <tariq181290@gmail.com>
551 lines
8.7 KiB
Go
551 lines
8.7 KiB
Go
// CAUTION: Generated file - DO NOT EDIT.
|
|
|
|
// Copyright 2017 The Prometheus Authors
|
|
// Licensed 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.
|
|
|
|
package textparse
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
const (
|
|
sInit = iota
|
|
sComment
|
|
sMeta1
|
|
sMeta2
|
|
sLabels
|
|
sLValue
|
|
sValue
|
|
sTimestamp
|
|
)
|
|
|
|
// 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.
|
|
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) consumeComment() token {
|
|
for c := l.cur(); ; c = l.next() {
|
|
switch c {
|
|
case 0:
|
|
return tEOF
|
|
case '\n':
|
|
l.state = sInit
|
|
return tComment
|
|
}
|
|
}
|
|
}
|