forked from flashcat/categraf
1504 lines
35 KiB
Go
1504 lines
35 KiB
Go
// Code generated by goyacc -v y.output -o parser.go -p mtail parser.y. DO NOT EDIT.
|
|
|
|
//line parser.y:5
|
|
/* #nosec G104 generated code, errors reported do not make sense */
|
|
package parser
|
|
|
|
import __yyfmt__ "fmt"
|
|
|
|
//line parser.y:6
|
|
|
|
import (
|
|
"time"
|
|
|
|
"flashcat.cloud/categraf/inputs/mtail/internal/metrics"
|
|
"flashcat.cloud/categraf/inputs/mtail/internal/runtime/compiler/ast"
|
|
"flashcat.cloud/categraf/inputs/mtail/internal/runtime/compiler/position"
|
|
)
|
|
|
|
//line parser.y:19
|
|
type mtailSymType struct {
|
|
yys int
|
|
intVal int64
|
|
floatVal float64
|
|
floats []float64
|
|
op int
|
|
text string
|
|
texts []string
|
|
flag bool
|
|
n ast.Node
|
|
kind metrics.Kind
|
|
duration time.Duration
|
|
}
|
|
|
|
const INVALID = 57346
|
|
const COUNTER = 57347
|
|
const GAUGE = 57348
|
|
const TIMER = 57349
|
|
const TEXT = 57350
|
|
const HISTOGRAM = 57351
|
|
const AFTER = 57352
|
|
const AS = 57353
|
|
const BY = 57354
|
|
const CONST = 57355
|
|
const HIDDEN = 57356
|
|
const DEF = 57357
|
|
const DEL = 57358
|
|
const NEXT = 57359
|
|
const OTHERWISE = 57360
|
|
const ELSE = 57361
|
|
const STOP = 57362
|
|
const BUCKETS = 57363
|
|
const LIMIT = 57364
|
|
const BUILTIN = 57365
|
|
const REGEX = 57366
|
|
const STRING = 57367
|
|
const CAPREF = 57368
|
|
const CAPREF_NAMED = 57369
|
|
const ID = 57370
|
|
const DECO = 57371
|
|
const INTLITERAL = 57372
|
|
const FLOATLITERAL = 57373
|
|
const DURATIONLITERAL = 57374
|
|
const INC = 57375
|
|
const DEC = 57376
|
|
const DIV = 57377
|
|
const MOD = 57378
|
|
const MUL = 57379
|
|
const MINUS = 57380
|
|
const PLUS = 57381
|
|
const POW = 57382
|
|
const SHL = 57383
|
|
const SHR = 57384
|
|
const LT = 57385
|
|
const GT = 57386
|
|
const LE = 57387
|
|
const GE = 57388
|
|
const EQ = 57389
|
|
const NE = 57390
|
|
const BITAND = 57391
|
|
const XOR = 57392
|
|
const BITOR = 57393
|
|
const NOT = 57394
|
|
const AND = 57395
|
|
const OR = 57396
|
|
const ADD_ASSIGN = 57397
|
|
const ASSIGN = 57398
|
|
const MATCH = 57399
|
|
const NOT_MATCH = 57400
|
|
const LCURLY = 57401
|
|
const RCURLY = 57402
|
|
const LPAREN = 57403
|
|
const RPAREN = 57404
|
|
const LSQUARE = 57405
|
|
const RSQUARE = 57406
|
|
const COMMA = 57407
|
|
const NL = 57408
|
|
|
|
var mtailToknames = [...]string{
|
|
"$end",
|
|
"error",
|
|
"$unk",
|
|
"INVALID",
|
|
"COUNTER",
|
|
"GAUGE",
|
|
"TIMER",
|
|
"TEXT",
|
|
"HISTOGRAM",
|
|
"AFTER",
|
|
"AS",
|
|
"BY",
|
|
"CONST",
|
|
"HIDDEN",
|
|
"DEF",
|
|
"DEL",
|
|
"NEXT",
|
|
"OTHERWISE",
|
|
"ELSE",
|
|
"STOP",
|
|
"BUCKETS",
|
|
"LIMIT",
|
|
"BUILTIN",
|
|
"REGEX",
|
|
"STRING",
|
|
"CAPREF",
|
|
"CAPREF_NAMED",
|
|
"ID",
|
|
"DECO",
|
|
"INTLITERAL",
|
|
"FLOATLITERAL",
|
|
"DURATIONLITERAL",
|
|
"INC",
|
|
"DEC",
|
|
"DIV",
|
|
"MOD",
|
|
"MUL",
|
|
"MINUS",
|
|
"PLUS",
|
|
"POW",
|
|
"SHL",
|
|
"SHR",
|
|
"LT",
|
|
"GT",
|
|
"LE",
|
|
"GE",
|
|
"EQ",
|
|
"NE",
|
|
"BITAND",
|
|
"XOR",
|
|
"BITOR",
|
|
"NOT",
|
|
"AND",
|
|
"OR",
|
|
"ADD_ASSIGN",
|
|
"ASSIGN",
|
|
"MATCH",
|
|
"NOT_MATCH",
|
|
"LCURLY",
|
|
"RCURLY",
|
|
"LPAREN",
|
|
"RPAREN",
|
|
"LSQUARE",
|
|
"RSQUARE",
|
|
"COMMA",
|
|
"NL",
|
|
}
|
|
|
|
var mtailStatenames = [...]string{}
|
|
|
|
const mtailEofCode = 1
|
|
const mtailErrCode = 2
|
|
const mtailInitialStackSize = 16
|
|
|
|
//line parser.y:733
|
|
|
|
// tokenpos returns the position of the current token.
|
|
func tokenpos(mtaillex mtailLexer) position.Position {
|
|
return mtaillex.(*parser).t.Pos
|
|
}
|
|
|
|
// markedpos returns the position recorded from the most recent mark_pos
|
|
// production.
|
|
func markedpos(mtaillex mtailLexer) position.Position {
|
|
return mtaillex.(*parser).pos
|
|
}
|
|
|
|
// positionFromMark returns a position spanning from the last mark to the current position.
|
|
func positionFromMark(mtaillex mtailLexer) position.Position {
|
|
tp := tokenpos(mtaillex)
|
|
mp := markedpos(mtaillex)
|
|
return *position.Merge(&mp, &tp)
|
|
}
|
|
|
|
//line yacctab:1
|
|
var mtailExca = [...]int{
|
|
-1, 1,
|
|
1, -1,
|
|
-2, 0,
|
|
-1, 2,
|
|
1, 1,
|
|
5, 93,
|
|
6, 93,
|
|
7, 93,
|
|
8, 93,
|
|
9, 93,
|
|
-2, 124,
|
|
-1, 22,
|
|
66, 24,
|
|
-2, 68,
|
|
-1, 106,
|
|
5, 93,
|
|
6, 93,
|
|
7, 93,
|
|
8, 93,
|
|
9, 93,
|
|
-2, 124,
|
|
}
|
|
|
|
const mtailPrivate = 57344
|
|
|
|
const mtailLast = 249
|
|
|
|
var mtailAct = [...]int{
|
|
171, 88, 126, 28, 15, 91, 42, 44, 27, 30,
|
|
103, 127, 41, 24, 20, 86, 40, 167, 22, 128,
|
|
163, 182, 19, 26, 45, 29, 104, 25, 36, 34,
|
|
35, 43, 54, 38, 39, 87, 181, 85, 89, 125,
|
|
108, 46, 36, 34, 35, 43, 47, 38, 39, 90,
|
|
162, 163, 62, 63, 2, 31, 49, 87, 76, 77,
|
|
68, 130, 74, 73, 37, 138, 62, 63, 50, 112,
|
|
93, 94, 117, 97, 96, 118, 168, 50, 37, 119,
|
|
120, 70, 72, 71, 121, 122, 123, 66, 67, 124,
|
|
107, 129, 185, 184, 111, 79, 80, 81, 82, 83,
|
|
84, 169, 106, 131, 179, 135, 132, 175, 15, 133,
|
|
129, 43, 27, 110, 100, 101, 99, 134, 20, 102,
|
|
174, 135, 22, 173, 87, 129, 19, 160, 87, 151,
|
|
156, 142, 155, 157, 158, 87, 87, 87, 164, 166,
|
|
165, 161, 153, 159, 140, 154, 152, 136, 139, 178,
|
|
177, 13, 141, 116, 66, 67, 115, 49, 105, 109,
|
|
11, 23, 1, 176, 10, 129, 180, 12, 64, 145,
|
|
13, 65, 36, 34, 35, 43, 75, 38, 39, 11,
|
|
23, 98, 183, 10, 95, 69, 12, 92, 61, 78,
|
|
18, 36, 34, 35, 43, 170, 38, 39, 143, 31,
|
|
56, 57, 58, 59, 60, 172, 144, 137, 37, 36,
|
|
34, 35, 43, 16, 38, 39, 146, 55, 31, 33,
|
|
51, 53, 114, 48, 9, 8, 7, 37, 49, 113,
|
|
6, 32, 16, 21, 52, 17, 31, 148, 147, 5,
|
|
50, 14, 4, 3, 0, 37, 0, 149, 150,
|
|
}
|
|
|
|
var mtailPact = [...]int{
|
|
-1000, -1000, 166, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
|
-1000, 83, -1000, -1000, -13, 205, -1000, -34, 195, 13,
|
|
13, -1000, 54, -1000, 21, 32, -1000, 7, 1, -1000,
|
|
52, 184, -25, -1000, -1000, -1000, -1000, 184, -1000, -1000,
|
|
29, -1000, 35, -1000, 79, -40, 139, -1000, -13, -21,
|
|
-1000, 85, -13, 17, -1000, 128, -1000, -1000, -1000, -1000,
|
|
-1000, -40, -1000, -1000, -40, -1000, -1000, -1000, -40, -40,
|
|
-1000, -1000, -1000, -40, -40, -40, -1000, -1000, -40, -1000,
|
|
-1000, -1000, -1000, -1000, -1000, -1000, 54, -1000, 134, 184,
|
|
-1, -1000, -40, -1000, -1000, -40, -1000, -1000, -40, -1000,
|
|
-1000, -1000, -1000, -1000, -1000, -13, 147, -1000, 3, 120,
|
|
-13, -1000, 121, 226, -1000, -1000, -1000, 184, 184, 83,
|
|
184, 184, 184, 17, 184, -14, -1000, 13, -1000, 33,
|
|
-1000, 184, 184, 184, 21, 42, -1000, -1000, -1000, -45,
|
|
41, -1000, 69, -1000, -1000, -1000, -1000, 95, 82, 119,
|
|
74, 13, 32, -1000, -1000, -1000, 52, 13, 13, -1000,
|
|
-1000, 29, -1000, 184, 35, 79, -1000, -1000, -1000, -1000,
|
|
-29, -1000, -1000, -1000, -1000, -1000, -44, -1000, -1000, -1000,
|
|
-1000, 95, 62, -1000, -1000, -1000,
|
|
}
|
|
|
|
var mtailPgo = [...]int{
|
|
0, 54, 243, 39, 41, 242, 241, 239, 235, 3,
|
|
7, 6, 15, 5, 233, 9, 16, 27, 11, 231,
|
|
12, 13, 19, 230, 229, 226, 225, 25, 23, 224,
|
|
222, 219, 2, 217, 216, 206, 205, 0, 198, 195,
|
|
190, 189, 187, 185, 168, 184, 181, 176, 171, 169,
|
|
163, 162, 10, 1, 159,
|
|
}
|
|
|
|
var mtailR1 = [...]int{
|
|
0, 51, 1, 1, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 5, 5, 5, 6, 6, 6,
|
|
7, 7, 4, 8, 8, 14, 14, 18, 18, 18,
|
|
18, 44, 44, 17, 17, 43, 43, 43, 15, 15,
|
|
41, 41, 41, 41, 41, 41, 16, 16, 42, 42,
|
|
11, 11, 45, 45, 28, 28, 47, 47, 22, 21,
|
|
21, 21, 10, 10, 46, 46, 46, 46, 13, 13,
|
|
12, 12, 48, 48, 9, 9, 9, 9, 9, 9,
|
|
9, 9, 19, 19, 20, 31, 31, 3, 3, 32,
|
|
32, 27, 23, 40, 40, 24, 24, 24, 24, 24,
|
|
30, 30, 33, 33, 33, 33, 33, 38, 39, 39,
|
|
37, 35, 34, 49, 50, 50, 50, 50, 25, 26,
|
|
29, 29, 36, 36, 53, 54, 52, 52,
|
|
}
|
|
|
|
var mtailR2 = [...]int{
|
|
0, 1, 0, 2, 1, 1, 1, 1, 1, 1,
|
|
1, 4, 1, 1, 4, 2, 3, 1, 4, 1,
|
|
1, 2, 3, 1, 1, 4, 4, 1, 1, 4,
|
|
4, 1, 1, 1, 4, 1, 1, 1, 1, 4,
|
|
1, 1, 1, 1, 1, 1, 1, 4, 1, 1,
|
|
1, 4, 1, 1, 4, 4, 1, 1, 1, 1,
|
|
4, 4, 1, 4, 1, 1, 1, 1, 1, 2,
|
|
1, 2, 1, 1, 1, 1, 1, 1, 1, 3,
|
|
1, 1, 1, 4, 1, 4, 5, 1, 3, 1,
|
|
1, 5, 3, 0, 1, 2, 2, 2, 2, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 2, 1, 3,
|
|
1, 2, 2, 2, 1, 1, 3, 3, 4, 3,
|
|
5, 3, 1, 1, 0, 0, 0, 1,
|
|
}
|
|
|
|
var mtailChk = [...]int{
|
|
-1000, -51, -1, -2, -5, -7, -23, -25, -26, -29,
|
|
17, 13, 20, 4, -6, -53, 66, -8, -40, -22,
|
|
-18, -14, -12, 14, -21, -17, -28, -13, -9, -27,
|
|
-15, 52, -19, -31, 26, 27, 25, 61, 30, 31,
|
|
-16, -20, -11, 28, -10, -20, -4, 59, 18, 23,
|
|
35, 15, 29, 16, 66, -33, 5, 6, 7, 8,
|
|
9, -44, 53, 54, -44, -48, 33, 34, 39, -43,
|
|
49, 51, 50, 56, 55, -47, 57, 58, -41, 43,
|
|
44, 45, 46, 47, 48, -13, -12, -9, -53, 63,
|
|
-18, -13, -42, 41, 42, -45, 39, 38, -46, 37,
|
|
35, 36, 40, -52, 66, 19, -1, -4, 61, -54,
|
|
28, -4, -12, -24, -30, 28, 25, -52, -52, -52,
|
|
-52, -52, -52, -52, -52, -3, -32, -18, -22, -53,
|
|
62, -52, -52, -52, -21, -53, -4, 60, 62, -3,
|
|
24, -4, 10, -38, -35, -49, -34, 12, 11, 21,
|
|
22, -18, -17, -28, -27, -20, -15, -18, -18, -22,
|
|
-9, -16, 64, 65, -11, -10, -13, 62, 35, 32,
|
|
-39, -37, -36, 28, 25, 25, -50, 31, 30, 30,
|
|
-32, 65, 65, -37, 31, 30,
|
|
}
|
|
|
|
var mtailDef = [...]int{
|
|
2, -2, -2, 3, 4, 5, 6, 7, 8, 9,
|
|
10, 0, 12, 13, 0, 0, 20, 0, 0, 17,
|
|
19, 23, -2, 94, 58, 27, 28, 62, 70, 59,
|
|
33, 124, 74, 75, 76, 77, 78, 124, 80, 81,
|
|
38, 82, 46, 84, 50, 126, 15, 2, 0, 0,
|
|
125, 0, 0, 124, 21, 0, 102, 103, 104, 105,
|
|
106, 126, 31, 32, 126, 71, 72, 73, 126, 126,
|
|
35, 36, 37, 126, 126, 126, 56, 57, 126, 40,
|
|
41, 42, 43, 44, 45, 69, 68, 70, 0, 124,
|
|
0, 62, 126, 48, 49, 126, 52, 53, 126, 64,
|
|
65, 66, 67, 124, 127, 0, -2, 16, 124, 0,
|
|
0, 119, 121, 92, 99, 100, 101, 124, 124, 124,
|
|
124, 124, 124, 124, 124, 0, 87, 89, 90, 0,
|
|
79, 124, 124, 124, 11, 0, 14, 22, 85, 0,
|
|
0, 118, 0, 95, 96, 97, 98, 0, 0, 0,
|
|
0, 18, 29, 30, 60, 61, 34, 25, 26, 54,
|
|
55, 39, 83, 124, 47, 51, 63, 86, 91, 120,
|
|
107, 108, 110, 122, 123, 111, 113, 114, 115, 112,
|
|
88, 0, 0, 109, 116, 117,
|
|
}
|
|
|
|
var mtailTok1 = [...]int{
|
|
1,
|
|
}
|
|
|
|
var mtailTok2 = [...]int{
|
|
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
|
|
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
|
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
|
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
|
|
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
|
|
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
|
|
62, 63, 64, 65, 66,
|
|
}
|
|
|
|
var mtailTok3 = [...]int{
|
|
0,
|
|
}
|
|
|
|
var mtailErrorMessages = [...]struct {
|
|
state int
|
|
token int
|
|
msg string
|
|
}{
|
|
{109, 4, "unexpected end of file, expecting '/' to end regex"},
|
|
{15, 1, "unexpected end of file, expecting '}' to end block"},
|
|
{15, 1, "unexpected end of file, expecting '}' to end block"},
|
|
{15, 1, "unexpected end of file, expecting '}' to end block"},
|
|
{14, 63, "unexpected indexing of an expression"},
|
|
{14, 66, "statement with no effect, missing an assignment, `+' concatenation, or `{}' block?"},
|
|
}
|
|
|
|
//line yaccpar:1
|
|
|
|
/* parser for yacc output */
|
|
|
|
var (
|
|
mtailDebug = 0
|
|
mtailErrorVerbose = false
|
|
)
|
|
|
|
type mtailLexer interface {
|
|
Lex(lval *mtailSymType) int
|
|
Error(s string)
|
|
}
|
|
|
|
type mtailParser interface {
|
|
Parse(mtailLexer) int
|
|
Lookahead() int
|
|
}
|
|
|
|
type mtailParserImpl struct {
|
|
lval mtailSymType
|
|
stack [mtailInitialStackSize]mtailSymType
|
|
char int
|
|
}
|
|
|
|
func (p *mtailParserImpl) Lookahead() int {
|
|
return p.char
|
|
}
|
|
|
|
func mtailNewParser() mtailParser {
|
|
return &mtailParserImpl{}
|
|
}
|
|
|
|
const mtailFlag = -1000
|
|
|
|
func mtailTokname(c int) string {
|
|
if c >= 1 && c-1 < len(mtailToknames) {
|
|
if mtailToknames[c-1] != "" {
|
|
return mtailToknames[c-1]
|
|
}
|
|
}
|
|
return __yyfmt__.Sprintf("tok-%v", c)
|
|
}
|
|
|
|
func mtailStatname(s int) string {
|
|
if s >= 0 && s < len(mtailStatenames) {
|
|
if mtailStatenames[s] != "" {
|
|
return mtailStatenames[s]
|
|
}
|
|
}
|
|
return __yyfmt__.Sprintf("state-%v", s)
|
|
}
|
|
|
|
func mtailErrorMessage(state, lookAhead int) string {
|
|
const TOKSTART = 4
|
|
|
|
if !mtailErrorVerbose {
|
|
return "syntax error"
|
|
}
|
|
|
|
for _, e := range mtailErrorMessages {
|
|
if e.state == state && e.token == lookAhead {
|
|
return "syntax error: " + e.msg
|
|
}
|
|
}
|
|
|
|
res := "syntax error: unexpected " + mtailTokname(lookAhead)
|
|
|
|
// To match Bison, suggest at most four expected tokens.
|
|
expected := make([]int, 0, 4)
|
|
|
|
// Look for shiftable tokens.
|
|
base := mtailPact[state]
|
|
for tok := TOKSTART; tok-1 < len(mtailToknames); tok++ {
|
|
if n := base + tok; n >= 0 && n < mtailLast && mtailChk[mtailAct[n]] == tok {
|
|
if len(expected) == cap(expected) {
|
|
return res
|
|
}
|
|
expected = append(expected, tok)
|
|
}
|
|
}
|
|
|
|
if mtailDef[state] == -2 {
|
|
i := 0
|
|
for mtailExca[i] != -1 || mtailExca[i+1] != state {
|
|
i += 2
|
|
}
|
|
|
|
// Look for tokens that we accept or reduce.
|
|
for i += 2; mtailExca[i] >= 0; i += 2 {
|
|
tok := mtailExca[i]
|
|
if tok < TOKSTART || mtailExca[i+1] == 0 {
|
|
continue
|
|
}
|
|
if len(expected) == cap(expected) {
|
|
return res
|
|
}
|
|
expected = append(expected, tok)
|
|
}
|
|
|
|
// If the default action is to accept or reduce, give up.
|
|
if mtailExca[i+1] != 0 {
|
|
return res
|
|
}
|
|
}
|
|
|
|
for i, tok := range expected {
|
|
if i == 0 {
|
|
res += ", expecting "
|
|
} else {
|
|
res += " or "
|
|
}
|
|
res += mtailTokname(tok)
|
|
}
|
|
return res
|
|
}
|
|
|
|
func mtaillex1(lex mtailLexer, lval *mtailSymType) (char, token int) {
|
|
token = 0
|
|
char = lex.Lex(lval)
|
|
if char <= 0 {
|
|
token = mtailTok1[0]
|
|
goto out
|
|
}
|
|
if char < len(mtailTok1) {
|
|
token = mtailTok1[char]
|
|
goto out
|
|
}
|
|
if char >= mtailPrivate {
|
|
if char < mtailPrivate+len(mtailTok2) {
|
|
token = mtailTok2[char-mtailPrivate]
|
|
goto out
|
|
}
|
|
}
|
|
for i := 0; i < len(mtailTok3); i += 2 {
|
|
token = mtailTok3[i+0]
|
|
if token == char {
|
|
token = mtailTok3[i+1]
|
|
goto out
|
|
}
|
|
}
|
|
|
|
out:
|
|
if token == 0 {
|
|
token = mtailTok2[1] /* unknown char */
|
|
}
|
|
if mtailDebug >= 3 {
|
|
__yyfmt__.Printf("lex %s(%d)\n", mtailTokname(token), uint(char))
|
|
}
|
|
return char, token
|
|
}
|
|
|
|
func mtailParse(mtaillex mtailLexer) int {
|
|
return mtailNewParser().Parse(mtaillex)
|
|
}
|
|
|
|
func (mtailrcvr *mtailParserImpl) Parse(mtaillex mtailLexer) int {
|
|
var mtailn int
|
|
var mtailVAL mtailSymType
|
|
var mtailDollar []mtailSymType
|
|
_ = mtailDollar // silence set and not used
|
|
mtailS := mtailrcvr.stack[:]
|
|
|
|
Nerrs := 0 /* number of errors */
|
|
Errflag := 0 /* error recovery flag */
|
|
mtailstate := 0
|
|
mtailrcvr.char = -1
|
|
mtailtoken := -1 // mtailrcvr.char translated into internal numbering
|
|
defer func() {
|
|
// Make sure we report no lookahead when not parsing.
|
|
mtailstate = -1
|
|
mtailrcvr.char = -1
|
|
mtailtoken = -1
|
|
}()
|
|
mtailp := -1
|
|
goto mtailstack
|
|
|
|
ret0:
|
|
return 0
|
|
|
|
ret1:
|
|
return 1
|
|
|
|
mtailstack:
|
|
/* put a state and value onto the stack */
|
|
if mtailDebug >= 4 {
|
|
__yyfmt__.Printf("char %v in %v\n", mtailTokname(mtailtoken), mtailStatname(mtailstate))
|
|
}
|
|
|
|
mtailp++
|
|
if mtailp >= len(mtailS) {
|
|
nyys := make([]mtailSymType, len(mtailS)*2)
|
|
copy(nyys, mtailS)
|
|
mtailS = nyys
|
|
}
|
|
mtailS[mtailp] = mtailVAL
|
|
mtailS[mtailp].yys = mtailstate
|
|
|
|
mtailnewstate:
|
|
mtailn = mtailPact[mtailstate]
|
|
if mtailn <= mtailFlag {
|
|
goto mtaildefault /* simple state */
|
|
}
|
|
if mtailrcvr.char < 0 {
|
|
mtailrcvr.char, mtailtoken = mtaillex1(mtaillex, &mtailrcvr.lval)
|
|
}
|
|
mtailn += mtailtoken
|
|
if mtailn < 0 || mtailn >= mtailLast {
|
|
goto mtaildefault
|
|
}
|
|
mtailn = mtailAct[mtailn]
|
|
if mtailChk[mtailn] == mtailtoken { /* valid shift */
|
|
mtailrcvr.char = -1
|
|
mtailtoken = -1
|
|
mtailVAL = mtailrcvr.lval
|
|
mtailstate = mtailn
|
|
if Errflag > 0 {
|
|
Errflag--
|
|
}
|
|
goto mtailstack
|
|
}
|
|
|
|
mtaildefault:
|
|
/* default state action */
|
|
mtailn = mtailDef[mtailstate]
|
|
if mtailn == -2 {
|
|
if mtailrcvr.char < 0 {
|
|
mtailrcvr.char, mtailtoken = mtaillex1(mtaillex, &mtailrcvr.lval)
|
|
}
|
|
|
|
/* look through exception table */
|
|
xi := 0
|
|
for {
|
|
if mtailExca[xi+0] == -1 && mtailExca[xi+1] == mtailstate {
|
|
break
|
|
}
|
|
xi += 2
|
|
}
|
|
for xi += 2; ; xi += 2 {
|
|
mtailn = mtailExca[xi+0]
|
|
if mtailn < 0 || mtailn == mtailtoken {
|
|
break
|
|
}
|
|
}
|
|
mtailn = mtailExca[xi+1]
|
|
if mtailn < 0 {
|
|
goto ret0
|
|
}
|
|
}
|
|
if mtailn == 0 {
|
|
/* error ... attempt to resume parsing */
|
|
switch Errflag {
|
|
case 0: /* brand new error */
|
|
mtaillex.Error(mtailErrorMessage(mtailstate, mtailtoken))
|
|
Nerrs++
|
|
if mtailDebug >= 1 {
|
|
__yyfmt__.Printf("%s", mtailStatname(mtailstate))
|
|
__yyfmt__.Printf(" saw %s\n", mtailTokname(mtailtoken))
|
|
}
|
|
fallthrough
|
|
|
|
case 1, 2: /* incompletely recovered error ... try again */
|
|
Errflag = 3
|
|
|
|
/* find a state where "error" is a legal shift action */
|
|
for mtailp >= 0 {
|
|
mtailn = mtailPact[mtailS[mtailp].yys] + mtailErrCode
|
|
if mtailn >= 0 && mtailn < mtailLast {
|
|
mtailstate = mtailAct[mtailn] /* simulate a shift of "error" */
|
|
if mtailChk[mtailstate] == mtailErrCode {
|
|
goto mtailstack
|
|
}
|
|
}
|
|
|
|
/* the current p has no shift on "error", pop stack */
|
|
if mtailDebug >= 2 {
|
|
__yyfmt__.Printf("error recovery pops state %d\n", mtailS[mtailp].yys)
|
|
}
|
|
mtailp--
|
|
}
|
|
/* there is no state on the stack with an error shift ... abort */
|
|
goto ret1
|
|
|
|
case 3: /* no shift yet; clobber input char */
|
|
if mtailDebug >= 2 {
|
|
__yyfmt__.Printf("error recovery discards %s\n", mtailTokname(mtailtoken))
|
|
}
|
|
if mtailtoken == mtailEofCode {
|
|
goto ret1
|
|
}
|
|
mtailrcvr.char = -1
|
|
mtailtoken = -1
|
|
goto mtailnewstate /* try again in the same state */
|
|
}
|
|
}
|
|
|
|
/* reduction by production mtailn */
|
|
if mtailDebug >= 2 {
|
|
__yyfmt__.Printf("reduce %v in:\n\t%v\n", mtailn, mtailStatname(mtailstate))
|
|
}
|
|
|
|
mtailnt := mtailn
|
|
mtailpt := mtailp
|
|
_ = mtailpt // guard against "declared and not used"
|
|
|
|
mtailp -= mtailR2[mtailn]
|
|
// mtailp is now the index of $0. Perform the default action. Iff the
|
|
// reduced production is ε, $1 is possibly out of range.
|
|
if mtailp+1 >= len(mtailS) {
|
|
nyys := make([]mtailSymType, len(mtailS)*2)
|
|
copy(nyys, mtailS)
|
|
mtailS = nyys
|
|
}
|
|
mtailVAL = mtailS[mtailp+1]
|
|
|
|
/* consult goto table to find next state */
|
|
mtailn = mtailR1[mtailn]
|
|
mtailg := mtailPgo[mtailn]
|
|
mtailj := mtailg + mtailS[mtailp].yys + 1
|
|
|
|
if mtailj >= mtailLast {
|
|
mtailstate = mtailAct[mtailg]
|
|
} else {
|
|
mtailstate = mtailAct[mtailj]
|
|
if mtailChk[mtailstate] != -mtailn {
|
|
mtailstate = mtailAct[mtailg]
|
|
}
|
|
}
|
|
// dummy call; replaced with literal code
|
|
switch mtailnt {
|
|
|
|
case 1:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:93
|
|
{
|
|
mtaillex.(*parser).root = mtailDollar[1].n
|
|
}
|
|
case 2:
|
|
mtailDollar = mtailS[mtailpt-0 : mtailpt+1]
|
|
//line parser.y:101
|
|
{
|
|
mtailVAL.n = &ast.StmtList{}
|
|
}
|
|
case 3:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:105
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
if mtailDollar[2].n != nil {
|
|
mtailVAL.n.(*ast.StmtList).Children = append(mtailVAL.n.(*ast.StmtList).Children, mtailDollar[2].n)
|
|
}
|
|
}
|
|
case 4:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:116
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 5:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:118
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 6:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:120
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 7:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:122
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 8:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:124
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 9:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:126
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 10:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:128
|
|
{
|
|
mtailVAL.n = &ast.NextStmt{tokenpos(mtaillex)}
|
|
}
|
|
case 11:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:132
|
|
{
|
|
mtailVAL.n = &ast.PatternFragment{ID: mtailDollar[2].n, Expr: mtailDollar[4].n}
|
|
}
|
|
case 12:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:136
|
|
{
|
|
mtailVAL.n = &ast.StopStmt{tokenpos(mtaillex)}
|
|
}
|
|
case 13:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:140
|
|
{
|
|
mtailVAL.n = &ast.Error{tokenpos(mtaillex), mtailDollar[1].text}
|
|
}
|
|
case 14:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:148
|
|
{
|
|
mtailVAL.n = &ast.CondStmt{mtailDollar[1].n, mtailDollar[2].n, mtailDollar[4].n, nil}
|
|
}
|
|
case 15:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:152
|
|
{
|
|
if mtailDollar[1].n != nil {
|
|
mtailVAL.n = &ast.CondStmt{mtailDollar[1].n, mtailDollar[2].n, nil, nil}
|
|
} else {
|
|
mtailVAL.n = mtailDollar[2].n
|
|
}
|
|
}
|
|
case 16:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:160
|
|
{
|
|
o := &ast.OtherwiseStmt{positionFromMark(mtaillex)}
|
|
mtailVAL.n = &ast.CondStmt{o, mtailDollar[3].n, nil, nil}
|
|
}
|
|
case 17:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:168
|
|
{
|
|
mtailVAL.n = &ast.UnaryExpr{P: tokenpos(mtaillex), Expr: mtailDollar[1].n, Op: MATCH}
|
|
}
|
|
case 18:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:172
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{
|
|
LHS: &ast.UnaryExpr{P: tokenpos(mtaillex), Expr: mtailDollar[1].n, Op: MATCH},
|
|
RHS: mtailDollar[4].n,
|
|
Op: mtailDollar[2].op,
|
|
}
|
|
}
|
|
case 19:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:180
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 20:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:186
|
|
{
|
|
mtailVAL.n = nil
|
|
}
|
|
case 21:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:188
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 22:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:194
|
|
{
|
|
mtailVAL.n = mtailDollar[2].n
|
|
}
|
|
case 23:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:202
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 24:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:204
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 25:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:210
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 26:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:214
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 27:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:222
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 28:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:224
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 29:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:226
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 30:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:230
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 31:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:237
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 32:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:239
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 33:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:245
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 34:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:247
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 35:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:254
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 36:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:256
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 37:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:258
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 38:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:264
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 39:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:266
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 40:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:273
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 41:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:275
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 42:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:277
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 43:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:279
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 44:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:281
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 45:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:283
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 46:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:289
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 47:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:291
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 48:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:298
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 49:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:300
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 50:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:306
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 51:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:308
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 52:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:315
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 53:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:317
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 54:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:323
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 55:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:327
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 56:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:334
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 57:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:336
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 58:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:343
|
|
{
|
|
mtailVAL.n = &ast.PatternExpr{Expr: mtailDollar[1].n}
|
|
}
|
|
case 59:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:351
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 60:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:353
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: PLUS}
|
|
}
|
|
case 61:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:357
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: PLUS}
|
|
}
|
|
case 62:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:365
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 63:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:367
|
|
{
|
|
mtailVAL.n = &ast.BinaryExpr{LHS: mtailDollar[1].n, RHS: mtailDollar[4].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 64:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:374
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 65:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:376
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 66:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:378
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 67:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:380
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 68:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:386
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 69:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:388
|
|
{
|
|
mtailVAL.n = &ast.UnaryExpr{P: tokenpos(mtaillex), Expr: mtailDollar[2].n, Op: mtailDollar[1].op}
|
|
}
|
|
case 70:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:396
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 71:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:398
|
|
{
|
|
mtailVAL.n = &ast.UnaryExpr{P: tokenpos(mtaillex), Expr: mtailDollar[1].n, Op: mtailDollar[2].op}
|
|
}
|
|
case 72:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:405
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 73:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:407
|
|
{
|
|
mtailVAL.op = mtailDollar[1].op
|
|
}
|
|
case 74:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:413
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 75:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:415
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 76:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:417
|
|
{
|
|
mtailVAL.n = &ast.CaprefTerm{tokenpos(mtaillex), mtailDollar[1].text, false, nil}
|
|
}
|
|
case 77:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:421
|
|
{
|
|
mtailVAL.n = &ast.CaprefTerm{tokenpos(mtaillex), mtailDollar[1].text, true, nil}
|
|
}
|
|
case 78:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:425
|
|
{
|
|
mtailVAL.n = &ast.StringLit{tokenpos(mtaillex), mtailDollar[1].text}
|
|
}
|
|
case 79:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:429
|
|
{
|
|
mtailVAL.n = mtailDollar[2].n
|
|
}
|
|
case 80:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:433
|
|
{
|
|
mtailVAL.n = &ast.IntLit{tokenpos(mtaillex), mtailDollar[1].intVal}
|
|
}
|
|
case 81:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:437
|
|
{
|
|
mtailVAL.n = &ast.FloatLit{tokenpos(mtaillex), mtailDollar[1].floatVal}
|
|
}
|
|
case 82:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:445
|
|
{
|
|
// Build an empty IndexedExpr so that the recursive rule below doesn't need to handle the alternative.
|
|
mtailVAL.n = &ast.IndexedExpr{LHS: mtailDollar[1].n, Index: &ast.ExprList{}}
|
|
}
|
|
case 83:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:450
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
mtailVAL.n.(*ast.IndexedExpr).Index.(*ast.ExprList).Children = append(
|
|
mtailVAL.n.(*ast.IndexedExpr).Index.(*ast.ExprList).Children,
|
|
mtailDollar[3].n.(*ast.ExprList).Children...)
|
|
}
|
|
case 84:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:461
|
|
{
|
|
mtailVAL.n = &ast.IDTerm{tokenpos(mtaillex), mtailDollar[1].text, nil, false}
|
|
}
|
|
case 85:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:469
|
|
{
|
|
mtailVAL.n = &ast.BuiltinExpr{P: positionFromMark(mtaillex), Name: mtailDollar[2].text, Args: nil}
|
|
}
|
|
case 86:
|
|
mtailDollar = mtailS[mtailpt-5 : mtailpt+1]
|
|
//line parser.y:473
|
|
{
|
|
mtailVAL.n = &ast.BuiltinExpr{P: positionFromMark(mtaillex), Name: mtailDollar[2].text, Args: mtailDollar[4].n}
|
|
}
|
|
case 87:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:482
|
|
{
|
|
mtailVAL.n = &ast.ExprList{}
|
|
mtailVAL.n.(*ast.ExprList).Children = append(mtailVAL.n.(*ast.ExprList).Children, mtailDollar[1].n)
|
|
}
|
|
case 88:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:487
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
mtailVAL.n.(*ast.ExprList).Children = append(mtailVAL.n.(*ast.ExprList).Children, mtailDollar[3].n)
|
|
}
|
|
case 89:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:495
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 90:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:497
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 91:
|
|
mtailDollar = mtailS[mtailpt-5 : mtailpt+1]
|
|
//line parser.y:503
|
|
{
|
|
mtailVAL.n = &ast.PatternLit{P: positionFromMark(mtaillex), Pattern: mtailDollar[4].text}
|
|
}
|
|
case 92:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:511
|
|
{
|
|
mtailVAL.n = mtailDollar[3].n
|
|
d := mtailVAL.n.(*ast.VarDecl)
|
|
d.Kind = mtailDollar[2].kind
|
|
d.Hidden = mtailDollar[1].flag
|
|
}
|
|
case 93:
|
|
mtailDollar = mtailS[mtailpt-0 : mtailpt+1]
|
|
//line parser.y:522
|
|
{
|
|
mtailVAL.flag = false
|
|
}
|
|
case 94:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:526
|
|
{
|
|
mtailVAL.flag = true
|
|
}
|
|
case 95:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:534
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
mtailVAL.n.(*ast.VarDecl).Keys = mtailDollar[2].texts
|
|
}
|
|
case 96:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:539
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
mtailVAL.n.(*ast.VarDecl).ExportedName = mtailDollar[2].text
|
|
}
|
|
case 97:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:544
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
mtailVAL.n.(*ast.VarDecl).Buckets = mtailDollar[2].floats
|
|
}
|
|
case 98:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:549
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
mtailVAL.n.(*ast.VarDecl).Limit = mtailDollar[2].intVal
|
|
}
|
|
case 99:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:554
|
|
{
|
|
mtailVAL.n = mtailDollar[1].n
|
|
}
|
|
case 100:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:562
|
|
{
|
|
mtailVAL.n = &ast.VarDecl{P: tokenpos(mtaillex), Name: mtailDollar[1].text}
|
|
}
|
|
case 101:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:566
|
|
{
|
|
mtailVAL.n = &ast.VarDecl{P: tokenpos(mtaillex), Name: mtailDollar[1].text}
|
|
}
|
|
case 102:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:574
|
|
{
|
|
mtailVAL.kind = metrics.Counter
|
|
}
|
|
case 103:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:578
|
|
{
|
|
mtailVAL.kind = metrics.Gauge
|
|
}
|
|
case 104:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:582
|
|
{
|
|
mtailVAL.kind = metrics.Timer
|
|
}
|
|
case 105:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:586
|
|
{
|
|
mtailVAL.kind = metrics.Text
|
|
}
|
|
case 106:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:590
|
|
{
|
|
mtailVAL.kind = metrics.Histogram
|
|
}
|
|
case 107:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:598
|
|
{
|
|
mtailVAL.texts = mtailDollar[2].texts
|
|
}
|
|
case 108:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:605
|
|
{
|
|
mtailVAL.texts = make([]string, 0)
|
|
mtailVAL.texts = append(mtailVAL.texts, mtailDollar[1].text)
|
|
}
|
|
case 109:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:610
|
|
{
|
|
mtailVAL.texts = mtailDollar[1].texts
|
|
mtailVAL.texts = append(mtailVAL.texts, mtailDollar[3].text)
|
|
}
|
|
case 110:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:618
|
|
{
|
|
mtailVAL.text = mtailDollar[1].text
|
|
}
|
|
case 111:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:624
|
|
{
|
|
mtailVAL.text = mtailDollar[2].text
|
|
}
|
|
case 112:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:631
|
|
{
|
|
mtailVAL.intVal = mtailDollar[2].intVal
|
|
}
|
|
case 113:
|
|
mtailDollar = mtailS[mtailpt-2 : mtailpt+1]
|
|
//line parser.y:639
|
|
{
|
|
mtailVAL.floats = mtailDollar[2].floats
|
|
}
|
|
case 114:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:645
|
|
{
|
|
mtailVAL.floats = make([]float64, 0)
|
|
mtailVAL.floats = append(mtailVAL.floats, mtailDollar[1].floatVal)
|
|
}
|
|
case 115:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:650
|
|
{
|
|
mtailVAL.floats = make([]float64, 0)
|
|
mtailVAL.floats = append(mtailVAL.floats, float64(mtailDollar[1].intVal))
|
|
}
|
|
case 116:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:655
|
|
{
|
|
mtailVAL.floats = mtailDollar[1].floats
|
|
mtailVAL.floats = append(mtailVAL.floats, mtailDollar[3].floatVal)
|
|
}
|
|
case 117:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:660
|
|
{
|
|
mtailVAL.floats = mtailDollar[1].floats
|
|
mtailVAL.floats = append(mtailVAL.floats, float64(mtailDollar[3].intVal))
|
|
}
|
|
case 118:
|
|
mtailDollar = mtailS[mtailpt-4 : mtailpt+1]
|
|
//line parser.y:668
|
|
{
|
|
mtailVAL.n = &ast.DecoDecl{P: markedpos(mtaillex), Name: mtailDollar[3].text, Block: mtailDollar[4].n}
|
|
}
|
|
case 119:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:676
|
|
{
|
|
mtailVAL.n = &ast.DecoStmt{markedpos(mtaillex), mtailDollar[2].text, mtailDollar[3].n, nil, nil}
|
|
}
|
|
case 120:
|
|
mtailDollar = mtailS[mtailpt-5 : mtailpt+1]
|
|
//line parser.y:684
|
|
{
|
|
mtailVAL.n = &ast.DelStmt{P: positionFromMark(mtaillex), N: mtailDollar[3].n, Expiry: mtailDollar[5].duration}
|
|
}
|
|
case 121:
|
|
mtailDollar = mtailS[mtailpt-3 : mtailpt+1]
|
|
//line parser.y:688
|
|
{
|
|
mtailVAL.n = &ast.DelStmt{P: positionFromMark(mtaillex), N: mtailDollar[3].n}
|
|
}
|
|
case 122:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:695
|
|
{
|
|
mtailVAL.text = mtailDollar[1].text
|
|
}
|
|
case 123:
|
|
mtailDollar = mtailS[mtailpt-1 : mtailpt+1]
|
|
//line parser.y:699
|
|
{
|
|
mtailVAL.text = mtailDollar[1].text
|
|
}
|
|
case 124:
|
|
mtailDollar = mtailS[mtailpt-0 : mtailpt+1]
|
|
//line parser.y:709
|
|
{
|
|
// glog.V(2).Infof("position marked at %v", tokenpos(mtaillex))
|
|
mtaillex.(*parser).pos = tokenpos(mtaillex)
|
|
}
|
|
case 125:
|
|
mtailDollar = mtailS[mtailpt-0 : mtailpt+1]
|
|
//line parser.y:719
|
|
{
|
|
mtaillex.(*parser).inRegex()
|
|
}
|
|
}
|
|
goto mtailstack /* stack new state and value */
|
|
}
|