// Code generated by goyacc -o pkg/traceql/expr.y.go pkg/traceql/expr.y. DO NOT EDIT.

//line pkg/traceql/expr.y:2
package traceql

import __yyfmt__ "fmt"

//line pkg/traceql/expr.y:2

import (
	"time"
)

//line pkg/traceql/expr.y:11
type yySymType struct {
	yys               int
	root              RootExpr
	groupOperation    GroupOperation
	coalesceOperation CoalesceOperation
	selectOperation   SelectOperation
	selectArgs        []FieldExpression

	spansetExpression         SpansetExpression
	spansetPipelineExpression SpansetExpression
	wrappedSpansetPipeline    Pipeline
	spansetPipeline           Pipeline
	spansetFilter             SpansetFilter
	scalarFilter              ScalarFilter
	scalarFilterOperation     Operator

	scalarPipelineExpressionFilter ScalarFilter
	scalarPipelineExpression       ScalarExpression
	scalarExpression               ScalarExpression
	wrappedScalarPipeline          Pipeline
	scalarPipeline                 Pipeline
	aggregate                      Aggregate

	fieldExpression FieldExpression
	static          Static
	intrinsicField  Attribute
	attributeField  Attribute

	binOp          Operator
	staticInt      int
	staticStr      string
	staticFloat    float64
	staticDuration time.Duration
}

const IDENTIFIER = 57346
const STRING = 57347
const INTEGER = 57348
const FLOAT = 57349
const DURATION = 57350
const DOT = 57351
const OPEN_BRACE = 57352
const CLOSE_BRACE = 57353
const OPEN_PARENS = 57354
const CLOSE_PARENS = 57355
const COMMA = 57356
const NIL = 57357
const TRUE = 57358
const FALSE = 57359
const STATUS_ERROR = 57360
const STATUS_OK = 57361
const STATUS_UNSET = 57362
const KIND_UNSPECIFIED = 57363
const KIND_INTERNAL = 57364
const KIND_SERVER = 57365
const KIND_CLIENT = 57366
const KIND_PRODUCER = 57367
const KIND_CONSUMER = 57368
const IDURATION = 57369
const CHILDCOUNT = 57370
const NAME = 57371
const STATUS = 57372
const PARENT = 57373
const KIND = 57374
const PARENT_DOT = 57375
const RESOURCE_DOT = 57376
const SPAN_DOT = 57377
const COUNT = 57378
const AVG = 57379
const MAX = 57380
const MIN = 57381
const SUM = 57382
const BY = 57383
const COALESCE = 57384
const SELECT = 57385
const END_ATTRIBUTE = 57386
const PIPE = 57387
const AND = 57388
const OR = 57389
const EQ = 57390
const NEQ = 57391
const LT = 57392
const LTE = 57393
const GT = 57394
const GTE = 57395
const NRE = 57396
const RE = 57397
const DESC = 57398
const TILDE = 57399
const ADD = 57400
const SUB = 57401
const NOT = 57402
const MUL = 57403
const DIV = 57404
const MOD = 57405
const POW = 57406

var yyToknames = [...]string{
	"$end",
	"error",
	"$unk",
	"IDENTIFIER",
	"STRING",
	"INTEGER",
	"FLOAT",
	"DURATION",
	"DOT",
	"OPEN_BRACE",
	"CLOSE_BRACE",
	"OPEN_PARENS",
	"CLOSE_PARENS",
	"COMMA",
	"NIL",
	"TRUE",
	"FALSE",
	"STATUS_ERROR",
	"STATUS_OK",
	"STATUS_UNSET",
	"KIND_UNSPECIFIED",
	"KIND_INTERNAL",
	"KIND_SERVER",
	"KIND_CLIENT",
	"KIND_PRODUCER",
	"KIND_CONSUMER",
	"IDURATION",
	"CHILDCOUNT",
	"NAME",
	"STATUS",
	"PARENT",
	"KIND",
	"PARENT_DOT",
	"RESOURCE_DOT",
	"SPAN_DOT",
	"COUNT",
	"AVG",
	"MAX",
	"MIN",
	"SUM",
	"BY",
	"COALESCE",
	"SELECT",
	"END_ATTRIBUTE",
	"PIPE",
	"AND",
	"OR",
	"EQ",
	"NEQ",
	"LT",
	"LTE",
	"GT",
	"GTE",
	"NRE",
	"RE",
	"DESC",
	"TILDE",
	"ADD",
	"SUB",
	"NOT",
	"MUL",
	"DIV",
	"MOD",
	"POW",
}
var yyStatenames = [...]string{}

const yyEofCode = 1
const yyErrCode = 2
const yyInitialStackSize = 16

//line yacctab:1
var yyExca = [...]int{
	-1, 1,
	1, -1,
	-2, 0,
	-1, 191,
	13, 53,
	-2, 61,
}

const yyPrivate = 57344

const yyLast = 653

var yyAct = [...]int{

	68, 6, 8, 5, 7, 189, 2, 18, 169, 64,
	223, 51, 130, 41, 28, 40, 156, 157, 227, 158,
	159, 160, 169, 158, 159, 160, 169, 13, 134, 72,
	110, 113, 109, 111, 226, 217, 129, 44, 122, 124,
	125, 126, 127, 170, 171, 161, 162, 163, 164, 165,
	166, 168, 167, 132, 216, 156, 157, 215, 158, 159,
	160, 169, 61, 62, 63, 64, 152, 154, 28, 214,
	172, 173, 174, 59, 60, 136, 61, 62, 63, 64,
	48, 49, 50, 51, 195, 196, 144, 146, 147, 148,
	149, 150, 151, 224, 181, 17, 129, 123, 46, 47,
	178, 48, 49, 50, 51, 133, 182, 183, 184, 185,
	161, 162, 163, 164, 165, 166, 168, 167, 186, 188,
	156, 157, 137, 158, 159, 160, 169, 186, 130, 117,
	179, 180, 110, 113, 109, 111, 108, 107, 191, 106,
	219, 222, 187, 193, 59, 60, 105, 61, 62, 63,
	64, 35, 104, 66, 65, 36, 38, 197, 198, 199,
	200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
	210, 211, 212, 187, 170, 171, 161, 162, 163, 164,
	165, 166, 168, 167, 218, 177, 156, 157, 176, 158,
	159, 160, 169, 175, 41, 74, 41, 225, 193, 170,
	171, 161, 162, 163, 164, 165, 166, 168, 167, 73,
	43, 156, 157, 16, 158, 159, 160, 169, 44, 4,
	44, 75, 76, 77, 81, 97, 12, 67, 69, 10,
	153, 80, 78, 79, 83, 82, 84, 85, 86, 87,
	88, 89, 90, 91, 92, 93, 94, 96, 95, 100,
	98, 99, 46, 47, 58, 48, 49, 50, 51, 30,
	101, 102, 103, 31, 33, 221, 45, 75, 76, 77,
	81, 97, 112, 1, 69, 70, 71, 80, 78, 79,
	83, 82, 84, 85, 86, 87, 88, 89, 90, 91,
	92, 93, 94, 96, 95, 100, 98, 99, 170, 171,
	161, 162, 163, 164, 165, 166, 168, 167, 220, 0,
	156, 157, 0, 158, 159, 160, 169, 0, 34, 37,
	0, 70, 71, 0, 35, 29, 32, 213, 36, 38,
	0, 30, 0, 0, 0, 31, 33, 0, 0, 0,
	0, 170, 171, 161, 162, 163, 164, 165, 166, 168,
	167, 194, 0, 156, 157, 0, 158, 159, 160, 169,
	170, 171, 161, 162, 163, 164, 165, 166, 168, 167,
	155, 0, 156, 157, 0, 158, 159, 160, 169, 0,
	0, 0, 0, 0, 170, 171, 161, 162, 163, 164,
	165, 166, 168, 167, 134, 0, 156, 157, 0, 158,
	159, 160, 169, 0, 0, 170, 171, 161, 162, 163,
	164, 165, 166, 168, 167, 0, 0, 156, 157, 0,
	158, 159, 160, 169, 0, 0, 0, 0, 0, 52,
	53, 54, 55, 56, 57, 0, 0, 0, 0, 59,
	60, 0, 61, 62, 63, 64, 52, 53, 54, 55,
	56, 57, 0, 0, 0, 0, 59, 60, 0, 61,
	62, 63, 64, 52, 53, 54, 55, 56, 57, 0,
	0, 0, 0, 46, 47, 0, 48, 49, 50, 51,
	19, 20, 21, 0, 17, 0, 114, 0, 19, 20,
	21, 0, 17, 0, 192, 0, 0, 19, 20, 21,
	0, 17, 0, 190, 0, 0, 0, 0, 0, 0,
	23, 26, 24, 25, 27, 14, 115, 15, 23, 26,
	24, 25, 27, 14, 0, 15, 0, 23, 26, 24,
	25, 27, 14, 22, 15, 0, 19, 20, 21, 0,
	17, 22, 9, 0, 0, 19, 20, 21, 0, 17,
	22, 114, 19, 20, 21, 0, 0, 131, 145, 0,
	128, 42, 11, 0, 0, 0, 23, 26, 24, 25,
	27, 14, 0, 15, 0, 23, 26, 24, 25, 27,
	0, 0, 23, 26, 24, 25, 27, 0, 0, 22,
	34, 37, 0, 29, 32, 0, 35, 0, 22, 30,
	36, 38, 0, 31, 33, 22, 0, 135, 138, 139,
	140, 141, 142, 143, 75, 76, 77, 81, 39, 3,
	0, 137, 0, 0, 80, 78, 79, 83, 82, 84,
	85, 86, 87, 88, 89, 90, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 116, 118,
	119, 120, 121,
}
var yyPact = [...]int{

	530, -1000, -31, 279, -1000, 272, -1000, -1000, -1000, 530,
	-1000, 415, -1000, 398, 142, 141, -1000, 216, -1000, -1000,
	-1000, -1000, 254, 140, 134, 127, 125, 124, 474, 117,
	117, 117, 117, 117, 85, 85, 85, 85, 85, 547,
	83, 544, 40, 92, 381, 609, 110, 110, 110, 110,
	110, 110, -1000, -1000, -1000, -1000, -1000, -1000, 546, 546,
	546, 546, 546, 546, 546, 262, 262, -1000, 359, 262,
	262, 262, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, 189, 184, 181,
	96, -1000, -1000, -1000, 81, 262, 262, 262, 262, 272,
	-1000, -1000, -1000, -1000, 539, 107, 207, 491, -1000, -1000,
	207, -1000, 99, 85, -1000, -1000, 99, -1000, -1000, -1000,
	474, -1000, -1000, -1000, -1000, 194, -1000, 482, 19, 19,
	-53, -53, -53, -53, 86, 546, 1, 1, -55, -55,
	-55, -55, 338, 71, 153, -1000, 262, 262, 262, 262,
	262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
	262, 262, 314, -38, -38, 25, 13, 10, -9, 180,
	136, -1000, 295, 252, 128, -3, 544, 15, 80, 23,
	491, -1000, 482, -33, -1000, -1000, 262, -38, -38, -56,
	-56, -56, -42, -42, -42, -42, -42, -42, -42, -42,
	-56, 62, 62, -1000, -1000, -1000, -1000, -1000, -10, -26,
	-1000, -1000, -1000, -1000, -1000, 153, -1000, -1000,
}
var yyPgo = [...]int{

	0, 273, 4, 272, 2, 230, 3, 618, 229, 5,
	226, 1, 254, 219, 561, 27, 213, 210, 7, 0,
	29, 209, 195,
}
var yyR1 = [...]int{

	0, 1, 1, 1, 7, 7, 7, 7, 7, 7,
	7, 8, 9, 9, 9, 9, 9, 9, 9, 9,
	9, 2, 3, 4, 5, 5, 6, 6, 6, 6,
	6, 6, 6, 10, 10, 11, 12, 12, 12, 12,
	12, 12, 13, 13, 14, 14, 14, 14, 14, 14,
	14, 14, 16, 17, 15, 15, 15, 15, 15, 15,
	15, 15, 15, 15, 15, 15, 15, 15, 18, 18,
	18, 18, 18, 19, 19, 19, 19, 19, 19, 19,
	19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
	19, 19, 19, 19, 19, 20, 20, 20, 20, 20,
	20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
	20, 21, 21, 21, 21, 21, 21, 22, 22, 22,
	22, 22, 22,
}
var yyR2 = [...]int{

	0, 1, 1, 1, 3, 3, 3, 3, 3, 3,
	1, 3, 1, 1, 1, 1, 3, 3, 3, 3,
	3, 4, 3, 4, 1, 3, 3, 3, 3, 3,
	3, 3, 1, 2, 3, 3, 1, 1, 1, 1,
	1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 1, 1, 1, 1, 2, 2, 2, 3, 4,
	4, 4, 4, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
	3, 4, 4,
}
var yyChk = [...]int{

	-1000, -1, -9, -7, -13, -6, -11, -2, -4, 12,
	-8, -14, -10, -15, 41, 43, -16, 10, -18, 6,
	7, 8, 59, 36, 38, 39, 37, 40, 45, 46,
	52, 56, 47, 57, 46, 52, 56, 47, 57, -7,
	-9, -6, -14, -17, -15, -12, 58, 59, 61, 62,
	63, 64, 48, 49, 50, 51, 52, 53, -12, 58,
	59, 61, 62, 63, 64, 12, 12, 11, -19, 12,
	59, 60, -20, -21, -22, 5, 6, 7, 16, 17,
	15, 8, 19, 18, 20, 21, 22, 23, 24, 25,
	26, 27, 28, 29, 30, 32, 31, 9, 34, 35,
	33, 6, 7, 8, 12, 12, 12, 12, 12, -6,
	-11, -2, -3, -4, 12, 42, -7, 12, -7, -7,
	-7, -7, -6, 12, -6, -6, -6, -6, 13, 13,
	45, 13, 13, 13, 13, -14, -20, 12, -14, -14,
	-14, -14, -14, -14, -15, 12, -15, -15, -15, -15,
	-15, -15, -19, -5, -19, 11, 58, 59, 61, 62,
	63, 48, 49, 50, 51, 52, 53, 55, 54, 64,
	46, 47, -19, -19, -19, 4, 4, 4, 4, 34,
	35, 13, -19, -19, -19, -19, -6, -15, 12, -9,
	12, -18, 12, -9, 13, 13, 14, -19, -19, -19,
	-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
	-19, -19, -19, 13, 44, 44, 44, 44, 4, 4,
	13, 13, 13, 13, 13, -19, 44, 44,
}
var yyDef = [...]int{

	0, -2, 1, 2, 3, 12, 13, 14, 15, 0,
	10, 0, 32, 0, 0, 0, 51, 0, 61, 62,
	63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 36, 37, 38, 39, 40, 41, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 33, 0, 0,
	0, 0, 92, 93, 94, 95, 96, 97, 98, 99,
	100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
	110, 111, 112, 113, 114, 115, 116, 0, 0, 0,
	0, 65, 66, 67, 0, 0, 0, 0, 0, 16,
	17, 18, 19, 20, 0, 0, 5, 0, 6, 7,
	8, 9, 27, 0, 28, 29, 30, 31, 4, 11,
	0, 26, 44, 52, 54, 42, 43, 0, 45, 46,
	47, 48, 49, 50, 35, 0, 55, 56, 57, 58,
	59, 60, 0, 0, 24, 34, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 90, 91, 0, 0, 0, 0, 0,
	0, 68, 0, 0, 0, 0, 0, 0, 0, 0,
	0, -2, 0, 0, 21, 23, 0, 74, 75, 76,
	77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
	87, 88, 89, 73, 117, 118, 119, 120, 0, 0,
	69, 70, 71, 72, 22, 25, 121, 122,
}
var yyTok1 = [...]int{

	1,
}
var yyTok2 = [...]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,
}
var yyTok3 = [...]int{
	0,
}

var yyErrorMessages = [...]struct {
	state int
	token int
	msg   string
}{}

//line yaccpar:1

/*	parser for yacc output	*/

var (
	yyDebug        = 0
	yyErrorVerbose = false
)

type yyLexer interface {
	Lex(lval *yySymType) int
	Error(s string)
}

type yyParser interface {
	Parse(yyLexer) int
	Lookahead() int
}

type yyParserImpl struct {
	lval  yySymType
	stack [yyInitialStackSize]yySymType
	char  int
}

func (p *yyParserImpl) Lookahead() int {
	return p.char
}

func yyNewParser() yyParser {
	return &yyParserImpl{}
}

const yyFlag = -1000

func yyTokname(c int) string {
	if c >= 1 && c-1 < len(yyToknames) {
		if yyToknames[c-1] != "" {
			return yyToknames[c-1]
		}
	}
	return __yyfmt__.Sprintf("tok-%v", c)
}

func yyStatname(s int) string {
	if s >= 0 && s < len(yyStatenames) {
		if yyStatenames[s] != "" {
			return yyStatenames[s]
		}
	}
	return __yyfmt__.Sprintf("state-%v", s)
}

func yyErrorMessage(state, lookAhead int) string {
	const TOKSTART = 4

	if !yyErrorVerbose {
		return "syntax error"
	}

	for _, e := range yyErrorMessages {
		if e.state == state && e.token == lookAhead {
			return "syntax error: " + e.msg
		}
	}

	res := "syntax error: unexpected " + yyTokname(lookAhead)

	// To match Bison, suggest at most four expected tokens.
	expected := make([]int, 0, 4)

	// Look for shiftable tokens.
	base := yyPact[state]
	for tok := TOKSTART; tok-1 < len(yyToknames); tok++ {
		if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok {
			if len(expected) == cap(expected) {
				return res
			}
			expected = append(expected, tok)
		}
	}

	if yyDef[state] == -2 {
		i := 0
		for yyExca[i] != -1 || yyExca[i+1] != state {
			i += 2
		}

		// Look for tokens that we accept or reduce.
		for i += 2; yyExca[i] >= 0; i += 2 {
			tok := yyExca[i]
			if tok < TOKSTART || yyExca[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 yyExca[i+1] != 0 {
			return res
		}
	}

	for i, tok := range expected {
		if i == 0 {
			res += ", expecting "
		} else {
			res += " or "
		}
		res += yyTokname(tok)
	}
	return res
}

func yylex1(lex yyLexer, lval *yySymType) (char, token int) {
	token = 0
	char = lex.Lex(lval)
	if char <= 0 {
		token = yyTok1[0]
		goto out
	}
	if char < len(yyTok1) {
		token = yyTok1[char]
		goto out
	}
	if char >= yyPrivate {
		if char < yyPrivate+len(yyTok2) {
			token = yyTok2[char-yyPrivate]
			goto out
		}
	}
	for i := 0; i < len(yyTok3); i += 2 {
		token = yyTok3[i+0]
		if token == char {
			token = yyTok3[i+1]
			goto out
		}
	}

out:
	if token == 0 {
		token = yyTok2[1] /* unknown char */
	}
	if yyDebug >= 3 {
		__yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char))
	}
	return char, token
}

func yyParse(yylex yyLexer) int {
	return yyNewParser().Parse(yylex)
}

func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int {
	var yyn int
	var yyVAL yySymType
	var yyDollar []yySymType
	_ = yyDollar // silence set and not used
	yyS := yyrcvr.stack[:]

	Nerrs := 0   /* number of errors */
	Errflag := 0 /* error recovery flag */
	yystate := 0
	yyrcvr.char = -1
	yytoken := -1 // yyrcvr.char translated into internal numbering
	defer func() {
		// Make sure we report no lookahead when not parsing.
		yystate = -1
		yyrcvr.char = -1
		yytoken = -1
	}()
	yyp := -1
	goto yystack

ret0:
	return 0

ret1:
	return 1

yystack:
	/* put a state and value onto the stack */
	if yyDebug >= 4 {
		__yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate))
	}

	yyp++
	if yyp >= len(yyS) {
		nyys := make([]yySymType, len(yyS)*2)
		copy(nyys, yyS)
		yyS = nyys
	}
	yyS[yyp] = yyVAL
	yyS[yyp].yys = yystate

yynewstate:
	yyn = yyPact[yystate]
	if yyn <= yyFlag {
		goto yydefault /* simple state */
	}
	if yyrcvr.char < 0 {
		yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
	}
	yyn += yytoken
	if yyn < 0 || yyn >= yyLast {
		goto yydefault
	}
	yyn = yyAct[yyn]
	if yyChk[yyn] == yytoken { /* valid shift */
		yyrcvr.char = -1
		yytoken = -1
		yyVAL = yyrcvr.lval
		yystate = yyn
		if Errflag > 0 {
			Errflag--
		}
		goto yystack
	}

yydefault:
	/* default state action */
	yyn = yyDef[yystate]
	if yyn == -2 {
		if yyrcvr.char < 0 {
			yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
		}

		/* look through exception table */
		xi := 0
		for {
			if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate {
				break
			}
			xi += 2
		}
		for xi += 2; ; xi += 2 {
			yyn = yyExca[xi+0]
			if yyn < 0 || yyn == yytoken {
				break
			}
		}
		yyn = yyExca[xi+1]
		if yyn < 0 {
			goto ret0
		}
	}
	if yyn == 0 {
		/* error ... attempt to resume parsing */
		switch Errflag {
		case 0: /* brand new error */
			yylex.Error(yyErrorMessage(yystate, yytoken))
			Nerrs++
			if yyDebug >= 1 {
				__yyfmt__.Printf("%s", yyStatname(yystate))
				__yyfmt__.Printf(" saw %s\n", yyTokname(yytoken))
			}
			fallthrough

		case 1, 2: /* incompletely recovered error ... try again */
			Errflag = 3

			/* find a state where "error" is a legal shift action */
			for yyp >= 0 {
				yyn = yyPact[yyS[yyp].yys] + yyErrCode
				if yyn >= 0 && yyn < yyLast {
					yystate = yyAct[yyn] /* simulate a shift of "error" */
					if yyChk[yystate] == yyErrCode {
						goto yystack
					}
				}

				/* the current p has no shift on "error", pop stack */
				if yyDebug >= 2 {
					__yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
				}
				yyp--
			}
			/* there is no state on the stack with an error shift ... abort */
			goto ret1

		case 3: /* no shift yet; clobber input char */
			if yyDebug >= 2 {
				__yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken))
			}
			if yytoken == yyEofCode {
				goto ret1
			}
			yyrcvr.char = -1
			yytoken = -1
			goto yynewstate /* try again in the same state */
		}
	}

	/* reduction by production yyn */
	if yyDebug >= 2 {
		__yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate))
	}

	yynt := yyn
	yypt := yyp
	_ = yypt // guard against "declared and not used"

	yyp -= yyR2[yyn]
	// yyp is now the index of $0. Perform the default action. Iff the
	// reduced production is ε, $1 is possibly out of range.
	if yyp+1 >= len(yyS) {
		nyys := make([]yySymType, len(yyS)*2)
		copy(nyys, yyS)
		yyS = nyys
	}
	yyVAL = yyS[yyp+1]

	/* consult goto table to find next state */
	yyn = yyR1[yyn]
	yyg := yyPgo[yyn]
	yyj := yyg + yyS[yyp].yys + 1

	if yyj >= yyLast {
		yystate = yyAct[yyg]
	} else {
		yystate = yyAct[yyj]
		if yyChk[yystate] != -yyn {
			yystate = yyAct[yyg]
		}
	}
	// dummy call; replaced with literal code
	switch yynt {

	case 1:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:98
		{
			yylex.(*lexer).expr = newRootExpr(yyDollar[1].spansetPipeline)
		}
	case 2:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:99
		{
			yylex.(*lexer).expr = newRootExpr(yyDollar[1].spansetPipelineExpression)
		}
	case 3:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:100
		{
			yylex.(*lexer).expr = newRootExpr(yyDollar[1].scalarPipelineExpressionFilter)
		}
	case 4:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:107
		{
			yyVAL.spansetPipelineExpression = yyDollar[2].spansetPipelineExpression
		}
	case 5:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:108
		{
			yyVAL.spansetPipelineExpression = newSpansetOperation(OpSpansetAnd, yyDollar[1].spansetPipelineExpression, yyDollar[3].spansetPipelineExpression)
		}
	case 6:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:109
		{
			yyVAL.spansetPipelineExpression = newSpansetOperation(OpSpansetChild, yyDollar[1].spansetPipelineExpression, yyDollar[3].spansetPipelineExpression)
		}
	case 7:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:110
		{
			yyVAL.spansetPipelineExpression = newSpansetOperation(OpSpansetDescendant, yyDollar[1].spansetPipelineExpression, yyDollar[3].spansetPipelineExpression)
		}
	case 8:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:111
		{
			yyVAL.spansetPipelineExpression = newSpansetOperation(OpSpansetUnion, yyDollar[1].spansetPipelineExpression, yyDollar[3].spansetPipelineExpression)
		}
	case 9:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:112
		{
			yyVAL.spansetPipelineExpression = newSpansetOperation(OpSpansetSibling, yyDollar[1].spansetPipelineExpression, yyDollar[3].spansetPipelineExpression)
		}
	case 10:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:113
		{
			yyVAL.spansetPipelineExpression = yyDollar[1].wrappedSpansetPipeline
		}
	case 11:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:117
		{
			yyVAL.wrappedSpansetPipeline = yyDollar[2].spansetPipeline
		}
	case 12:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:120
		{
			yyVAL.spansetPipeline = newPipeline(yyDollar[1].spansetExpression)
		}
	case 13:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:121
		{
			yyVAL.spansetPipeline = newPipeline(yyDollar[1].scalarFilter)
		}
	case 14:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:122
		{
			yyVAL.spansetPipeline = newPipeline(yyDollar[1].groupOperation)
		}
	case 15:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:123
		{
			yyVAL.spansetPipeline = newPipeline(yyDollar[1].selectOperation)
		}
	case 16:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:124
		{
			yyVAL.spansetPipeline = yyDollar[1].spansetPipeline.addItem(yyDollar[3].spansetExpression)
		}
	case 17:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:125
		{
			yyVAL.spansetPipeline = yyDollar[1].spansetPipeline.addItem(yyDollar[3].scalarFilter)
		}
	case 18:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:126
		{
			yyVAL.spansetPipeline = yyDollar[1].spansetPipeline.addItem(yyDollar[3].groupOperation)
		}
	case 19:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:127
		{
			yyVAL.spansetPipeline = yyDollar[1].spansetPipeline.addItem(yyDollar[3].coalesceOperation)
		}
	case 20:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:128
		{
			yyVAL.spansetPipeline = yyDollar[1].spansetPipeline.addItem(yyDollar[3].selectOperation)
		}
	case 21:
		yyDollar = yyS[yypt-4 : yypt+1]
//line pkg/traceql/expr.y:132
		{
			yyVAL.groupOperation = newGroupOperation(yyDollar[3].fieldExpression)
		}
	case 22:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:136
		{
			yyVAL.coalesceOperation = newCoalesceOperation()
		}
	case 23:
		yyDollar = yyS[yypt-4 : yypt+1]
//line pkg/traceql/expr.y:140
		{
			yyVAL.selectOperation = newSelectOperation(yyDollar[3].selectArgs)
		}
	case 24:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:144
		{
			yyVAL.selectArgs = []FieldExpression{yyDollar[1].fieldExpression}
		}
	case 25:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:145
		{
			yyVAL.selectArgs = append(yyDollar[1].selectArgs, yyDollar[3].fieldExpression)
		}
	case 26:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:149
		{
			yyVAL.spansetExpression = yyDollar[2].spansetExpression
		}
	case 27:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:150
		{
			yyVAL.spansetExpression = newSpansetOperation(OpSpansetAnd, yyDollar[1].spansetExpression, yyDollar[3].spansetExpression)
		}
	case 28:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:151
		{
			yyVAL.spansetExpression = newSpansetOperation(OpSpansetChild, yyDollar[1].spansetExpression, yyDollar[3].spansetExpression)
		}
	case 29:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:152
		{
			yyVAL.spansetExpression = newSpansetOperation(OpSpansetDescendant, yyDollar[1].spansetExpression, yyDollar[3].spansetExpression)
		}
	case 30:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:153
		{
			yyVAL.spansetExpression = newSpansetOperation(OpSpansetUnion, yyDollar[1].spansetExpression, yyDollar[3].spansetExpression)
		}
	case 31:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:154
		{
			yyVAL.spansetExpression = newSpansetOperation(OpSpansetSibling, yyDollar[1].spansetExpression, yyDollar[3].spansetExpression)
		}
	case 32:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:155
		{
			yyVAL.spansetExpression = yyDollar[1].spansetFilter
		}
	case 33:
		yyDollar = yyS[yypt-2 : yypt+1]
//line pkg/traceql/expr.y:159
		{
			yyVAL.spansetFilter = newSpansetFilter(NewStaticBool(true))
		}
	case 34:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:160
		{
			yyVAL.spansetFilter = newSpansetFilter(yyDollar[2].fieldExpression)
		}
	case 35:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:164
		{
			yyVAL.scalarFilter = newScalarFilter(yyDollar[2].scalarFilterOperation, yyDollar[1].scalarExpression, yyDollar[3].scalarExpression)
		}
	case 36:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:168
		{
			yyVAL.scalarFilterOperation = OpEqual
		}
	case 37:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:169
		{
			yyVAL.scalarFilterOperation = OpNotEqual
		}
	case 38:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:170
		{
			yyVAL.scalarFilterOperation = OpLess
		}
	case 39:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:171
		{
			yyVAL.scalarFilterOperation = OpLessEqual
		}
	case 40:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:172
		{
			yyVAL.scalarFilterOperation = OpGreater
		}
	case 41:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:173
		{
			yyVAL.scalarFilterOperation = OpGreaterEqual
		}
	case 42:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:180
		{
			yyVAL.scalarPipelineExpressionFilter = newScalarFilter(yyDollar[2].scalarFilterOperation, yyDollar[1].scalarPipelineExpression, yyDollar[3].scalarPipelineExpression)
		}
	case 43:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:181
		{
			yyVAL.scalarPipelineExpressionFilter = newScalarFilter(yyDollar[2].scalarFilterOperation, yyDollar[1].scalarPipelineExpression, yyDollar[3].static)
		}
	case 44:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:185
		{
			yyVAL.scalarPipelineExpression = yyDollar[2].scalarPipelineExpression
		}
	case 45:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:186
		{
			yyVAL.scalarPipelineExpression = newScalarOperation(OpAdd, yyDollar[1].scalarPipelineExpression, yyDollar[3].scalarPipelineExpression)
		}
	case 46:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:187
		{
			yyVAL.scalarPipelineExpression = newScalarOperation(OpSub, yyDollar[1].scalarPipelineExpression, yyDollar[3].scalarPipelineExpression)
		}
	case 47:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:188
		{
			yyVAL.scalarPipelineExpression = newScalarOperation(OpMult, yyDollar[1].scalarPipelineExpression, yyDollar[3].scalarPipelineExpression)
		}
	case 48:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:189
		{
			yyVAL.scalarPipelineExpression = newScalarOperation(OpDiv, yyDollar[1].scalarPipelineExpression, yyDollar[3].scalarPipelineExpression)
		}
	case 49:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:190
		{
			yyVAL.scalarPipelineExpression = newScalarOperation(OpMod, yyDollar[1].scalarPipelineExpression, yyDollar[3].scalarPipelineExpression)
		}
	case 50:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:191
		{
			yyVAL.scalarPipelineExpression = newScalarOperation(OpPower, yyDollar[1].scalarPipelineExpression, yyDollar[3].scalarPipelineExpression)
		}
	case 51:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:192
		{
			yyVAL.scalarPipelineExpression = yyDollar[1].wrappedScalarPipeline
		}
	case 52:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:196
		{
			yyVAL.wrappedScalarPipeline = yyDollar[2].scalarPipeline
		}
	case 53:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:200
		{
			yyVAL.scalarPipeline = yyDollar[1].spansetPipeline.addItem(yyDollar[3].aggregate)
		}
	case 54:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:204
		{
			yyVAL.scalarExpression = yyDollar[2].scalarExpression
		}
	case 55:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:205
		{
			yyVAL.scalarExpression = newScalarOperation(OpAdd, yyDollar[1].scalarExpression, yyDollar[3].scalarExpression)
		}
	case 56:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:206
		{
			yyVAL.scalarExpression = newScalarOperation(OpSub, yyDollar[1].scalarExpression, yyDollar[3].scalarExpression)
		}
	case 57:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:207
		{
			yyVAL.scalarExpression = newScalarOperation(OpMult, yyDollar[1].scalarExpression, yyDollar[3].scalarExpression)
		}
	case 58:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:208
		{
			yyVAL.scalarExpression = newScalarOperation(OpDiv, yyDollar[1].scalarExpression, yyDollar[3].scalarExpression)
		}
	case 59:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:209
		{
			yyVAL.scalarExpression = newScalarOperation(OpMod, yyDollar[1].scalarExpression, yyDollar[3].scalarExpression)
		}
	case 60:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:210
		{
			yyVAL.scalarExpression = newScalarOperation(OpPower, yyDollar[1].scalarExpression, yyDollar[3].scalarExpression)
		}
	case 61:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:211
		{
			yyVAL.scalarExpression = yyDollar[1].aggregate
		}
	case 62:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:212
		{
			yyVAL.scalarExpression = NewStaticInt(yyDollar[1].staticInt)
		}
	case 63:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:213
		{
			yyVAL.scalarExpression = NewStaticFloat(yyDollar[1].staticFloat)
		}
	case 64:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:214
		{
			yyVAL.scalarExpression = NewStaticDuration(yyDollar[1].staticDuration)
		}
	case 65:
		yyDollar = yyS[yypt-2 : yypt+1]
//line pkg/traceql/expr.y:215
		{
			yyVAL.scalarExpression = NewStaticInt(-yyDollar[2].staticInt)
		}
	case 66:
		yyDollar = yyS[yypt-2 : yypt+1]
//line pkg/traceql/expr.y:216
		{
			yyVAL.scalarExpression = NewStaticFloat(-yyDollar[2].staticFloat)
		}
	case 67:
		yyDollar = yyS[yypt-2 : yypt+1]
//line pkg/traceql/expr.y:217
		{
			yyVAL.scalarExpression = NewStaticDuration(-yyDollar[2].staticDuration)
		}
	case 68:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:221
		{
			yyVAL.aggregate = newAggregate(aggregateCount, nil)
		}
	case 69:
		yyDollar = yyS[yypt-4 : yypt+1]
//line pkg/traceql/expr.y:222
		{
			yyVAL.aggregate = newAggregate(aggregateMax, yyDollar[3].fieldExpression)
		}
	case 70:
		yyDollar = yyS[yypt-4 : yypt+1]
//line pkg/traceql/expr.y:223
		{
			yyVAL.aggregate = newAggregate(aggregateMin, yyDollar[3].fieldExpression)
		}
	case 71:
		yyDollar = yyS[yypt-4 : yypt+1]
//line pkg/traceql/expr.y:224
		{
			yyVAL.aggregate = newAggregate(aggregateAvg, yyDollar[3].fieldExpression)
		}
	case 72:
		yyDollar = yyS[yypt-4 : yypt+1]
//line pkg/traceql/expr.y:225
		{
			yyVAL.aggregate = newAggregate(aggregateSum, yyDollar[3].fieldExpression)
		}
	case 73:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:232
		{
			yyVAL.fieldExpression = yyDollar[2].fieldExpression
		}
	case 74:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:233
		{
			yyVAL.fieldExpression = newBinaryOperation(OpAdd, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 75:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:234
		{
			yyVAL.fieldExpression = newBinaryOperation(OpSub, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 76:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:235
		{
			yyVAL.fieldExpression = newBinaryOperation(OpMult, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 77:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:236
		{
			yyVAL.fieldExpression = newBinaryOperation(OpDiv, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 78:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:237
		{
			yyVAL.fieldExpression = newBinaryOperation(OpMod, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 79:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:238
		{
			yyVAL.fieldExpression = newBinaryOperation(OpEqual, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 80:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:239
		{
			yyVAL.fieldExpression = newBinaryOperation(OpNotEqual, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 81:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:240
		{
			yyVAL.fieldExpression = newBinaryOperation(OpLess, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 82:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:241
		{
			yyVAL.fieldExpression = newBinaryOperation(OpLessEqual, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 83:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:242
		{
			yyVAL.fieldExpression = newBinaryOperation(OpGreater, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 84:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:243
		{
			yyVAL.fieldExpression = newBinaryOperation(OpGreaterEqual, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 85:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:244
		{
			yyVAL.fieldExpression = newBinaryOperation(OpRegex, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 86:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:245
		{
			yyVAL.fieldExpression = newBinaryOperation(OpNotRegex, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 87:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:246
		{
			yyVAL.fieldExpression = newBinaryOperation(OpPower, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 88:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:247
		{
			yyVAL.fieldExpression = newBinaryOperation(OpAnd, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 89:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:248
		{
			yyVAL.fieldExpression = newBinaryOperation(OpOr, yyDollar[1].fieldExpression, yyDollar[3].fieldExpression)
		}
	case 90:
		yyDollar = yyS[yypt-2 : yypt+1]
//line pkg/traceql/expr.y:249
		{
			yyVAL.fieldExpression = newUnaryOperation(OpSub, yyDollar[2].fieldExpression)
		}
	case 91:
		yyDollar = yyS[yypt-2 : yypt+1]
//line pkg/traceql/expr.y:250
		{
			yyVAL.fieldExpression = newUnaryOperation(OpNot, yyDollar[2].fieldExpression)
		}
	case 92:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:251
		{
			yyVAL.fieldExpression = yyDollar[1].static
		}
	case 93:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:252
		{
			yyVAL.fieldExpression = yyDollar[1].intrinsicField
		}
	case 94:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:253
		{
			yyVAL.fieldExpression = yyDollar[1].attributeField
		}
	case 95:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:260
		{
			yyVAL.static = NewStaticString(yyDollar[1].staticStr)
		}
	case 96:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:261
		{
			yyVAL.static = NewStaticInt(yyDollar[1].staticInt)
		}
	case 97:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:262
		{
			yyVAL.static = NewStaticFloat(yyDollar[1].staticFloat)
		}
	case 98:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:263
		{
			yyVAL.static = NewStaticBool(true)
		}
	case 99:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:264
		{
			yyVAL.static = NewStaticBool(false)
		}
	case 100:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:265
		{
			yyVAL.static = NewStaticNil()
		}
	case 101:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:266
		{
			yyVAL.static = NewStaticDuration(yyDollar[1].staticDuration)
		}
	case 102:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:267
		{
			yyVAL.static = NewStaticStatus(StatusOk)
		}
	case 103:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:268
		{
			yyVAL.static = NewStaticStatus(StatusError)
		}
	case 104:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:269
		{
			yyVAL.static = NewStaticStatus(StatusUnset)
		}
	case 105:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:270
		{
			yyVAL.static = NewStaticKind(KindUnspecified)
		}
	case 106:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:271
		{
			yyVAL.static = NewStaticKind(KindInternal)
		}
	case 107:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:272
		{
			yyVAL.static = NewStaticKind(KindServer)
		}
	case 108:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:273
		{
			yyVAL.static = NewStaticKind(KindClient)
		}
	case 109:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:274
		{
			yyVAL.static = NewStaticKind(KindProducer)
		}
	case 110:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:275
		{
			yyVAL.static = NewStaticKind(KindConsumer)
		}
	case 111:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:279
		{
			yyVAL.intrinsicField = NewIntrinsic(IntrinsicDuration)
		}
	case 112:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:280
		{
			yyVAL.intrinsicField = NewIntrinsic(IntrinsicChildCount)
		}
	case 113:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:281
		{
			yyVAL.intrinsicField = NewIntrinsic(IntrinsicName)
		}
	case 114:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:282
		{
			yyVAL.intrinsicField = NewIntrinsic(IntrinsicStatus)
		}
	case 115:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:283
		{
			yyVAL.intrinsicField = NewIntrinsic(IntrinsicKind)
		}
	case 116:
		yyDollar = yyS[yypt-1 : yypt+1]
//line pkg/traceql/expr.y:284
		{
			yyVAL.intrinsicField = NewIntrinsic(IntrinsicParent)
		}
	case 117:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:288
		{
			yyVAL.attributeField = NewAttribute(yyDollar[2].staticStr)
		}
	case 118:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:289
		{
			yyVAL.attributeField = NewScopedAttribute(AttributeScopeResource, false, yyDollar[2].staticStr)
		}
	case 119:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:290
		{
			yyVAL.attributeField = NewScopedAttribute(AttributeScopeSpan, false, yyDollar[2].staticStr)
		}
	case 120:
		yyDollar = yyS[yypt-3 : yypt+1]
//line pkg/traceql/expr.y:291
		{
			yyVAL.attributeField = NewScopedAttribute(AttributeScopeNone, true, yyDollar[2].staticStr)
		}
	case 121:
		yyDollar = yyS[yypt-4 : yypt+1]
//line pkg/traceql/expr.y:292
		{
			yyVAL.attributeField = NewScopedAttribute(AttributeScopeResource, true, yyDollar[3].staticStr)
		}
	case 122:
		yyDollar = yyS[yypt-4 : yypt+1]
//line pkg/traceql/expr.y:293
		{
			yyVAL.attributeField = NewScopedAttribute(AttributeScopeSpan, true, yyDollar[3].staticStr)
		}
	}
	goto yystack /* stack new state and value */
}
