github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/logql/syntax/expr.y.go (about)

     1  // Code generated by goyacc -p expr -o pkg/logql/syntax/expr.y.go pkg/logql/syntax/expr.y. DO NOT EDIT.
     2  
     3  package syntax
     4  
     5  import __yyfmt__ "fmt"
     6  
     7  
     8  import (
     9  	"github.com/grafana/loki/pkg/logql/log"
    10  	"github.com/prometheus/prometheus/model/labels"
    11  	"time"
    12  )
    13  
    14  type exprSymType struct {
    15  	yys                   int
    16  	Expr                  Expr
    17  	Filter                labels.MatchType
    18  	Grouping              *Grouping
    19  	Labels                []string
    20  	LogExpr               LogSelectorExpr
    21  	LogRangeExpr          *LogRange
    22  	Matcher               *labels.Matcher
    23  	Matchers              []*labels.Matcher
    24  	RangeAggregationExpr  SampleExpr
    25  	RangeOp               string
    26  	ConvOp                string
    27  	Selector              []*labels.Matcher
    28  	VectorAggregationExpr SampleExpr
    29  	MetricExpr            SampleExpr
    30  	VectorOp              string
    31  	FilterOp              string
    32  	BinOpExpr             SampleExpr
    33  	LabelReplaceExpr      SampleExpr
    34  	binOp                 string
    35  	bytes                 uint64
    36  	str                   string
    37  	duration              time.Duration
    38  	LiteralExpr           *LiteralExpr
    39  	BinOpModifier         *BinOpOptions
    40  	BoolModifier          *BinOpOptions
    41  	OnOrIgnoringModifier  *BinOpOptions
    42  	LabelParser           *LabelParserExpr
    43  	LineFilters           *LineFilterExpr
    44  	LineFilter            *LineFilterExpr
    45  	PipelineExpr          MultiStageExpr
    46  	PipelineStage         StageExpr
    47  	BytesFilter           log.LabelFilterer
    48  	NumberFilter          log.LabelFilterer
    49  	DurationFilter        log.LabelFilterer
    50  	LabelFilter           log.LabelFilterer
    51  	UnitFilter            log.LabelFilterer
    52  	IPLabelFilter         log.LabelFilterer
    53  	LineFormatExpr        *LineFmtExpr
    54  	LabelFormatExpr       *LabelFmtExpr
    55  	LabelFormat           log.LabelFmt
    56  	LabelsFormat          []log.LabelFmt
    57  	JSONExpressionParser  *JSONExpressionParser
    58  	JSONExpression        log.JSONExpression
    59  	JSONExpressionList    []log.JSONExpression
    60  	UnwrapExpr            *UnwrapExpr
    61  	OffsetExpr            *OffsetExpr
    62  }
    63  
    64  const BYTES = 57346
    65  const IDENTIFIER = 57347
    66  const STRING = 57348
    67  const NUMBER = 57349
    68  const DURATION = 57350
    69  const RANGE = 57351
    70  const MATCHERS = 57352
    71  const LABELS = 57353
    72  const EQ = 57354
    73  const RE = 57355
    74  const NRE = 57356
    75  const OPEN_BRACE = 57357
    76  const CLOSE_BRACE = 57358
    77  const OPEN_BRACKET = 57359
    78  const CLOSE_BRACKET = 57360
    79  const COMMA = 57361
    80  const DOT = 57362
    81  const PIPE_MATCH = 57363
    82  const PIPE_EXACT = 57364
    83  const OPEN_PARENTHESIS = 57365
    84  const CLOSE_PARENTHESIS = 57366
    85  const BY = 57367
    86  const WITHOUT = 57368
    87  const COUNT_OVER_TIME = 57369
    88  const RATE = 57370
    89  const RATE_COUNTER = 57371
    90  const SUM = 57372
    91  const AVG = 57373
    92  const MAX = 57374
    93  const MIN = 57375
    94  const COUNT = 57376
    95  const STDDEV = 57377
    96  const STDVAR = 57378
    97  const BOTTOMK = 57379
    98  const TOPK = 57380
    99  const BYTES_OVER_TIME = 57381
   100  const BYTES_RATE = 57382
   101  const BOOL = 57383
   102  const JSON = 57384
   103  const REGEXP = 57385
   104  const LOGFMT = 57386
   105  const PIPE = 57387
   106  const LINE_FMT = 57388
   107  const LABEL_FMT = 57389
   108  const UNWRAP = 57390
   109  const AVG_OVER_TIME = 57391
   110  const SUM_OVER_TIME = 57392
   111  const MIN_OVER_TIME = 57393
   112  const MAX_OVER_TIME = 57394
   113  const STDVAR_OVER_TIME = 57395
   114  const STDDEV_OVER_TIME = 57396
   115  const QUANTILE_OVER_TIME = 57397
   116  const BYTES_CONV = 57398
   117  const DURATION_CONV = 57399
   118  const DURATION_SECONDS_CONV = 57400
   119  const FIRST_OVER_TIME = 57401
   120  const LAST_OVER_TIME = 57402
   121  const ABSENT_OVER_TIME = 57403
   122  const LABEL_REPLACE = 57404
   123  const UNPACK = 57405
   124  const OFFSET = 57406
   125  const PATTERN = 57407
   126  const IP = 57408
   127  const ON = 57409
   128  const IGNORING = 57410
   129  const GROUP_LEFT = 57411
   130  const GROUP_RIGHT = 57412
   131  const OR = 57413
   132  const AND = 57414
   133  const UNLESS = 57415
   134  const CMP_EQ = 57416
   135  const NEQ = 57417
   136  const LT = 57418
   137  const LTE = 57419
   138  const GT = 57420
   139  const GTE = 57421
   140  const ADD = 57422
   141  const SUB = 57423
   142  const MUL = 57424
   143  const DIV = 57425
   144  const MOD = 57426
   145  const POW = 57427
   146  
   147  var exprToknames = [...]string{
   148  	"$end",
   149  	"error",
   150  	"$unk",
   151  	"BYTES",
   152  	"IDENTIFIER",
   153  	"STRING",
   154  	"NUMBER",
   155  	"DURATION",
   156  	"RANGE",
   157  	"MATCHERS",
   158  	"LABELS",
   159  	"EQ",
   160  	"RE",
   161  	"NRE",
   162  	"OPEN_BRACE",
   163  	"CLOSE_BRACE",
   164  	"OPEN_BRACKET",
   165  	"CLOSE_BRACKET",
   166  	"COMMA",
   167  	"DOT",
   168  	"PIPE_MATCH",
   169  	"PIPE_EXACT",
   170  	"OPEN_PARENTHESIS",
   171  	"CLOSE_PARENTHESIS",
   172  	"BY",
   173  	"WITHOUT",
   174  	"COUNT_OVER_TIME",
   175  	"RATE",
   176  	"RATE_COUNTER",
   177  	"SUM",
   178  	"AVG",
   179  	"MAX",
   180  	"MIN",
   181  	"COUNT",
   182  	"STDDEV",
   183  	"STDVAR",
   184  	"BOTTOMK",
   185  	"TOPK",
   186  	"BYTES_OVER_TIME",
   187  	"BYTES_RATE",
   188  	"BOOL",
   189  	"JSON",
   190  	"REGEXP",
   191  	"LOGFMT",
   192  	"PIPE",
   193  	"LINE_FMT",
   194  	"LABEL_FMT",
   195  	"UNWRAP",
   196  	"AVG_OVER_TIME",
   197  	"SUM_OVER_TIME",
   198  	"MIN_OVER_TIME",
   199  	"MAX_OVER_TIME",
   200  	"STDVAR_OVER_TIME",
   201  	"STDDEV_OVER_TIME",
   202  	"QUANTILE_OVER_TIME",
   203  	"BYTES_CONV",
   204  	"DURATION_CONV",
   205  	"DURATION_SECONDS_CONV",
   206  	"FIRST_OVER_TIME",
   207  	"LAST_OVER_TIME",
   208  	"ABSENT_OVER_TIME",
   209  	"LABEL_REPLACE",
   210  	"UNPACK",
   211  	"OFFSET",
   212  	"PATTERN",
   213  	"IP",
   214  	"ON",
   215  	"IGNORING",
   216  	"GROUP_LEFT",
   217  	"GROUP_RIGHT",
   218  	"OR",
   219  	"AND",
   220  	"UNLESS",
   221  	"CMP_EQ",
   222  	"NEQ",
   223  	"LT",
   224  	"LTE",
   225  	"GT",
   226  	"GTE",
   227  	"ADD",
   228  	"SUB",
   229  	"MUL",
   230  	"DIV",
   231  	"MOD",
   232  	"POW",
   233  }
   234  var exprStatenames = [...]string{}
   235  
   236  const exprEofCode = 1
   237  const exprErrCode = 2
   238  const exprInitialStackSize = 16
   239  
   240  
   241  var exprExca = [...]int{
   242  	-1, 1,
   243  	1, -1,
   244  	-2, 0,
   245  }
   246  
   247  const exprPrivate = 57344
   248  
   249  const exprLast = 535
   250  
   251  var exprAct = [...]int{
   252  
   253  	249, 196, 77, 4, 177, 59, 165, 5, 170, 205,
   254  	68, 113, 51, 58, 123, 136, 70, 2, 46, 47,
   255  	48, 49, 50, 51, 73, 43, 44, 45, 52, 53,
   256  	56, 57, 54, 55, 46, 47, 48, 49, 50, 51,
   257  	44, 45, 52, 53, 56, 57, 54, 55, 46, 47,
   258  	48, 49, 50, 51, 48, 49, 50, 51, 252, 132,
   259  	134, 135, 66, 321, 101, 179, 134, 135, 105, 64,
   260  	65, 149, 150, 229, 125, 189, 230, 228, 147, 148,
   261  	140, 257, 252, 138, 295, 254, 145, 52, 53, 56,
   262  	57, 54, 55, 46, 47, 48, 49, 50, 51, 324,
   263  	146, 62, 295, 253, 151, 152, 153, 154, 155, 156,
   264  	157, 158, 159, 160, 161, 162, 163, 164, 302, 321,
   265  	254, 255, 133, 67, 174, 86, 66, 185, 180, 183,
   266  	184, 181, 182, 64, 65, 227, 303, 66, 254, 254,
   267  	78, 79, 187, 341, 64, 65, 203, 199, 195, 336,
   268  	329, 266, 197, 66, 208, 200, 312, 198, 66, 255,
   269  	64, 65, 102, 258, 66, 64, 65, 328, 198, 66,
   270  	326, 64, 65, 215, 216, 217, 64, 65, 305, 225,
   271  	195, 188, 226, 224, 198, 66, 296, 67, 76, 198,
   272  	78, 79, 64, 65, 120, 198, 247, 250, 67, 256,
   273  	61, 259, 138, 101, 262, 105, 263, 253, 252, 251,
   274  	248, 286, 117, 260, 67, 120, 198, 120, 120, 67,
   275  	264, 270, 272, 275, 277, 67, 280, 278, 192, 167,
   276  	67, 167, 167, 117, 220, 117, 117, 298, 299, 300,
   277  	266, 223, 266, 254, 266, 311, 67, 310, 207, 309,
   278  	287, 288, 207, 290, 292, 207, 294, 101, 120, 207,
   279  	266, 293, 304, 289, 201, 268, 101, 276, 120, 306,
   280  	266, 274, 167, 207, 273, 267, 117, 192, 271, 207,
   281  	12, 168, 166, 168, 166, 166, 117, 318, 139, 285,
   282  	315, 316, 209, 192, 127, 101, 317, 126, 206, 261,
   283  	284, 214, 319, 320, 137, 108, 110, 109, 325, 118,
   284  	119, 257, 12, 213, 131, 193, 120, 15, 212, 211,
   285  	139, 331, 186, 332, 333, 12, 111, 144, 112, 143,
   286  	142, 82, 75, 6, 117, 337, 339, 19, 20, 21,
   287  	34, 35, 37, 38, 36, 39, 40, 41, 42, 22,
   288  	23, 335, 308, 108, 110, 109, 265, 118, 119, 24,
   289  	25, 26, 27, 28, 29, 30, 129, 221, 218, 31,
   290  	32, 33, 18, 204, 111, 210, 112, 202, 194, 222,
   291  	128, 12, 219, 130, 244, 334, 323, 245, 243, 6,
   292  	16, 17, 322, 19, 20, 21, 34, 35, 37, 38,
   293  	36, 39, 40, 41, 42, 22, 23, 241, 301, 238,
   294  	242, 240, 239, 237, 291, 24, 25, 26, 27, 28,
   295  	29, 30, 282, 283, 340, 31, 32, 33, 18, 141,
   296  	235, 81, 232, 236, 234, 233, 231, 12, 80, 338,
   297  	83, 3, 327, 314, 313, 6, 16, 17, 69, 19,
   298  	20, 21, 34, 35, 37, 38, 36, 39, 40, 41,
   299  	42, 22, 23, 281, 279, 269, 178, 114, 246, 191,
   300  	190, 24, 25, 26, 27, 28, 29, 30, 189, 188,
   301  	175, 31, 32, 33, 18, 87, 88, 89, 90, 91,
   302  	92, 93, 94, 95, 96, 97, 98, 99, 100, 173,
   303  	172, 72, 16, 17, 74, 330, 307, 171, 74, 178,
   304  	115, 169, 104, 176, 107, 106, 60, 121, 116, 122,
   305  	103, 85, 84, 11, 10, 9, 124, 14, 8, 297,
   306  	13, 7, 71, 63, 1,
   307  }
   308  var exprPact = [...]int{
   309  
   310  	310, -1000, -46, -1000, -1000, 155, 310, -1000, -1000, -1000,
   311  	-1000, -1000, 499, 309, 165, -1000, 431, 424, 308, -1000,
   312  	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
   313  	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
   314  	-1000, -1000, -1000, 84, 84, 84, 84, 84, 84, 84,
   315  	84, 84, 84, 84, 84, 84, 84, 84, 155, -1000,
   316  	48, 311, -1000, 8, -1000, -1000, -1000, -1000, 273, 270,
   317  	-46, 364, 298, -1000, 47, 297, 422, 307, 306, 304,
   318  	-1000, -1000, 310, 310, 11, 2, -1000, 310, 310, 310,
   319  	310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
   320  	310, -1000, -1000, -1000, -1000, 212, -1000, -1000, 502, -1000,
   321  	494, -1000, 493, -1000, -1000, -1000, -1000, 189, 474, 504,
   322  	53, -1000, -1000, -1000, 299, -1000, -1000, -1000, -1000, -1000,
   323  	503, -1000, 473, 472, 464, 463, 291, 359, 171, 265,
   324  	240, 358, 366, 274, 268, 356, -32, 296, 295, 290,
   325  	278, 13, 13, -28, -28, -73, -73, -73, -73, -62,
   326  	-62, -62, -62, -62, -62, 212, 189, 189, 189, 349,
   327  	-1000, 370, -1000, -1000, 210, -1000, 348, -1000, 367, 175,
   328  	69, 428, 426, 405, 403, 380, 462, -1000, -1000, -1000,
   329  	-1000, -1000, -1000, 115, 265, 144, 198, 150, 263, 139,
   330  	275, 115, 310, 196, 337, 251, -1000, -1000, 241, -1000,
   331  	459, 254, 250, 247, 243, 253, 212, 213, 502, 458,
   332  	-1000, 461, 417, 277, -1000, -1000, -1000, 266, -1000, -1000,
   333  	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
   334  	-1000, -1000, -1000, -1000, -1000, -1000, 187, -1000, 226, 123,
   335  	40, 123, 406, -6, 189, -6, 93, 181, 399, 94,
   336  	112, -1000, -1000, 154, -1000, 310, 501, -1000, -1000, 333,
   337  	225, -1000, 223, -1000, -1000, 221, -1000, 132, -1000, -1000,
   338  	-1000, -1000, -1000, -1000, 438, 437, -1000, 115, 40, 123,
   339  	40, -1000, -1000, 212, -1000, -6, -1000, 264, -1000, -1000,
   340  	-1000, 18, 383, 377, 75, 115, 146, -1000, 436, -1000,
   341  	-1000, -1000, -1000, 143, 126, -1000, 40, -1000, 500, 74,
   342  	40, 33, -6, -6, 376, -1000, -1000, 332, -1000, -1000,
   343  	125, 40, -1000, -1000, -6, 433, -1000, -1000, 317, 418,
   344  	119, -1000,
   345  }
   346  var exprPgo = [...]int{
   347  
   348  	0, 534, 16, 533, 2, 9, 441, 3, 15, 11,
   349  	532, 531, 530, 529, 7, 528, 527, 526, 525, 524,
   350  	523, 440, 522, 521, 520, 13, 5, 519, 518, 517,
   351  	6, 516, 101, 515, 514, 4, 513, 512, 8, 511,
   352  	1, 510, 467, 0,
   353  }
   354  var exprR1 = [...]int{
   355  
   356  	0, 1, 2, 2, 7, 7, 7, 7, 7, 7,
   357  	6, 6, 6, 8, 8, 8, 8, 8, 8, 8,
   358  	8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
   359  	8, 8, 8, 8, 8, 8, 8, 8, 8, 40,
   360  	40, 40, 13, 13, 13, 11, 11, 11, 11, 15,
   361  	15, 15, 15, 15, 15, 20, 3, 3, 3, 3,
   362  	14, 14, 14, 10, 10, 9, 9, 9, 9, 25,
   363  	25, 26, 26, 26, 26, 26, 26, 17, 32, 32,
   364  	31, 31, 24, 24, 24, 24, 24, 37, 33, 35,
   365  	35, 36, 36, 36, 34, 30, 30, 30, 30, 30,
   366  	30, 30, 30, 30, 38, 38, 39, 39, 42, 42,
   367  	41, 41, 29, 29, 29, 29, 29, 29, 29, 27,
   368  	27, 27, 27, 27, 27, 27, 28, 28, 28, 28,
   369  	28, 28, 28, 18, 18, 18, 18, 18, 18, 18,
   370  	18, 18, 18, 18, 18, 18, 18, 18, 22, 22,
   371  	23, 23, 23, 23, 21, 21, 21, 21, 21, 21,
   372  	21, 21, 19, 19, 19, 16, 16, 16, 16, 16,
   373  	16, 16, 16, 16, 12, 12, 12, 12, 12, 12,
   374  	12, 12, 12, 12, 12, 12, 12, 12, 12, 43,
   375  	5, 5, 4, 4, 4, 4,
   376  }
   377  var exprR2 = [...]int{
   378  
   379  	0, 1, 1, 1, 1, 1, 1, 1, 1, 3,
   380  	1, 2, 3, 2, 3, 4, 5, 3, 4, 5,
   381  	6, 3, 4, 5, 6, 3, 4, 5, 6, 4,
   382  	5, 6, 7, 3, 4, 4, 5, 3, 2, 3,
   383  	6, 3, 1, 1, 1, 4, 6, 5, 7, 4,
   384  	5, 5, 6, 7, 7, 12, 1, 1, 1, 1,
   385  	3, 3, 3, 1, 3, 3, 3, 3, 3, 1,
   386  	2, 1, 2, 2, 2, 2, 2, 1, 2, 5,
   387  	1, 2, 1, 1, 2, 1, 2, 2, 2, 3,
   388  	3, 1, 3, 3, 2, 1, 1, 1, 1, 3,
   389  	2, 3, 3, 3, 3, 1, 1, 3, 6, 6,
   390  	1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
   391  	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
   392  	3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
   393  	4, 4, 4, 4, 4, 4, 4, 4, 0, 1,
   394  	5, 4, 5, 4, 1, 1, 2, 4, 5, 2,
   395  	4, 5, 1, 2, 2, 1, 1, 1, 1, 1,
   396  	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
   397  	1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
   398  	1, 3, 4, 4, 3, 3,
   399  }
   400  var exprChk = [...]int{
   401  
   402  	-1000, -1, -2, -6, -7, -14, 23, -11, -15, -18,
   403  	-19, -20, 15, -12, -16, 7, 80, 81, 62, 27,
   404  	28, 29, 39, 40, 49, 50, 51, 52, 53, 54,
   405  	55, 59, 60, 61, 30, 31, 34, 32, 33, 35,
   406  	36, 37, 38, 71, 72, 73, 80, 81, 82, 83,
   407  	84, 85, 74, 75, 78, 79, 76, 77, -25, -26,
   408  	-31, 45, -32, -3, 21, 22, 14, 75, -7, -6,
   409  	-2, -10, 2, -9, 5, 23, 23, -4, 25, 26,
   410  	7, 7, 23, -21, -22, -23, 41, -21, -21, -21,
   411  	-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
   412  	-21, -26, -32, -24, -37, -30, -33, -34, 42, 44,
   413  	43, 63, 65, -9, -42, -41, -28, 23, 46, 47,
   414  	5, -29, -27, 6, -17, 66, 24, 24, 16, 2,
   415  	19, 16, 12, 75, 13, 14, -8, 7, -14, 23,
   416  	-7, 7, 23, 23, 23, -7, -2, 67, 68, 69,
   417  	70, -2, -2, -2, -2, -2, -2, -2, -2, -2,
   418  	-2, -2, -2, -2, -2, -30, 72, 19, 71, -39,
   419  	-38, 5, 6, 6, -30, 6, -36, -35, 5, 12,
   420  	75, 78, 79, 76, 77, 74, 23, -9, 6, 6,
   421  	6, 6, 2, 24, 19, 9, -40, -25, 45, -14,
   422  	-8, 24, 19, -7, 7, -5, 24, 5, -5, 24,
   423  	19, 23, 23, 23, 23, -30, -30, -30, 19, 12,
   424  	24, 19, 12, 66, 8, 4, 7, 66, 8, 4,
   425  	7, 8, 4, 7, 8, 4, 7, 8, 4, 7,
   426  	8, 4, 7, 8, 4, 7, 6, -4, -8, -43,
   427  	-40, -25, 64, 9, 45, 9, -40, 48, 24, -40,
   428  	-25, 24, -4, -7, 24, 19, 19, 24, 24, 6,
   429  	-5, 24, -5, 24, 24, -5, 24, -5, -38, 6,
   430  	-35, 2, 5, 6, 23, 23, 24, 24, -40, -25,
   431  	-40, 8, -43, -30, -43, 9, 5, -13, 56, 57,
   432  	58, 9, 24, 24, -40, 24, -7, 5, 19, 24,
   433  	24, 24, 24, 6, 6, -4, -40, -43, 23, -43,
   434  	-40, 45, 9, 9, 24, -4, 24, 6, 24, 24,
   435  	5, -40, -43, -43, 9, 19, 24, -43, 6, 19,
   436  	6, 24,
   437  }
   438  var exprDef = [...]int{
   439  
   440  	0, -2, 1, 2, 3, 10, 0, 4, 5, 6,
   441  	7, 8, 0, 0, 0, 162, 0, 0, 0, 174,
   442  	175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
   443  	185, 186, 187, 188, 165, 166, 167, 168, 169, 170,
   444  	171, 172, 173, 148, 148, 148, 148, 148, 148, 148,
   445  	148, 148, 148, 148, 148, 148, 148, 148, 11, 69,
   446  	71, 0, 80, 0, 56, 57, 58, 59, 3, 2,
   447  	0, 0, 0, 63, 0, 0, 0, 0, 0, 0,
   448  	163, 164, 0, 0, 154, 155, 149, 0, 0, 0,
   449  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   450  	0, 70, 81, 72, 73, 74, 75, 76, 82, 83,
   451  	0, 85, 0, 95, 96, 97, 98, 0, 0, 0,
   452  	0, 110, 111, 78, 0, 77, 9, 12, 60, 61,
   453  	0, 62, 0, 0, 0, 0, 0, 0, 0, 0,
   454  	3, 162, 0, 0, 0, 3, 133, 0, 0, 156,
   455  	159, 134, 135, 136, 137, 138, 139, 140, 141, 142,
   456  	143, 144, 145, 146, 147, 100, 0, 0, 0, 87,
   457  	106, 105, 84, 86, 0, 88, 94, 91, 0, 0,
   458  	0, 0, 0, 0, 0, 0, 0, 64, 65, 66,
   459  	67, 68, 38, 45, 0, 13, 0, 0, 0, 0,
   460  	0, 49, 0, 3, 162, 0, 194, 190, 0, 195,
   461  	0, 0, 0, 0, 0, 101, 102, 103, 0, 0,
   462  	99, 0, 0, 0, 117, 124, 131, 0, 116, 123,
   463  	130, 112, 119, 126, 113, 120, 127, 114, 121, 128,
   464  	115, 122, 129, 118, 125, 132, 0, 47, 0, 14,
   465  	17, 33, 0, 21, 0, 25, 0, 0, 0, 0,
   466  	0, 37, 51, 3, 50, 0, 0, 192, 193, 0,
   467  	0, 151, 0, 153, 157, 0, 160, 0, 107, 104,
   468  	92, 93, 89, 90, 0, 0, 79, 46, 18, 34,
   469  	35, 189, 22, 41, 26, 29, 39, 0, 42, 43,
   470  	44, 15, 0, 0, 0, 52, 3, 191, 0, 150,
   471  	152, 158, 161, 0, 0, 48, 36, 30, 0, 16,
   472  	19, 0, 23, 27, 0, 53, 54, 0, 108, 109,
   473  	0, 20, 24, 28, 31, 0, 40, 32, 0, 0,
   474  	0, 55,
   475  }
   476  var exprTok1 = [...]int{
   477  
   478  	1,
   479  }
   480  var exprTok2 = [...]int{
   481  
   482  	2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
   483  	12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
   484  	22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
   485  	32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
   486  	42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
   487  	52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
   488  	62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
   489  	72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
   490  	82, 83, 84, 85,
   491  }
   492  var exprTok3 = [...]int{
   493  	0,
   494  }
   495  
   496  var exprErrorMessages = [...]struct {
   497  	state int
   498  	token int
   499  	msg   string
   500  }{}
   501  
   502  
   503  /*	parser for yacc output	*/
   504  
   505  var (
   506  	exprDebug        = 0
   507  	exprErrorVerbose = false
   508  )
   509  
   510  type exprLexer interface {
   511  	Lex(lval *exprSymType) int
   512  	Error(s string)
   513  }
   514  
   515  type exprParser interface {
   516  	Parse(exprLexer) int
   517  	Lookahead() int
   518  }
   519  
   520  type exprParserImpl struct {
   521  	lval  exprSymType
   522  	stack [exprInitialStackSize]exprSymType
   523  	char  int
   524  }
   525  
   526  func (p *exprParserImpl) Lookahead() int {
   527  	return p.char
   528  }
   529  
   530  func exprNewParser() exprParser {
   531  	return &exprParserImpl{}
   532  }
   533  
   534  const exprFlag = -1000
   535  
   536  func exprTokname(c int) string {
   537  	if c >= 1 && c-1 < len(exprToknames) {
   538  		if exprToknames[c-1] != "" {
   539  			return exprToknames[c-1]
   540  		}
   541  	}
   542  	return __yyfmt__.Sprintf("tok-%v", c)
   543  }
   544  
   545  func exprStatname(s int) string {
   546  	if s >= 0 && s < len(exprStatenames) {
   547  		if exprStatenames[s] != "" {
   548  			return exprStatenames[s]
   549  		}
   550  	}
   551  	return __yyfmt__.Sprintf("state-%v", s)
   552  }
   553  
   554  func exprErrorMessage(state, lookAhead int) string {
   555  	const TOKSTART = 4
   556  
   557  	if !exprErrorVerbose {
   558  		return "syntax error"
   559  	}
   560  
   561  	for _, e := range exprErrorMessages {
   562  		if e.state == state && e.token == lookAhead {
   563  			return "syntax error: " + e.msg
   564  		}
   565  	}
   566  
   567  	res := "syntax error: unexpected " + exprTokname(lookAhead)
   568  
   569  	// To match Bison, suggest at most four expected tokens.
   570  	expected := make([]int, 0, 4)
   571  
   572  	// Look for shiftable tokens.
   573  	base := exprPact[state]
   574  	for tok := TOKSTART; tok-1 < len(exprToknames); tok++ {
   575  		if n := base + tok; n >= 0 && n < exprLast && exprChk[exprAct[n]] == tok {
   576  			if len(expected) == cap(expected) {
   577  				return res
   578  			}
   579  			expected = append(expected, tok)
   580  		}
   581  	}
   582  
   583  	if exprDef[state] == -2 {
   584  		i := 0
   585  		for exprExca[i] != -1 || exprExca[i+1] != state {
   586  			i += 2
   587  		}
   588  
   589  		// Look for tokens that we accept or reduce.
   590  		for i += 2; exprExca[i] >= 0; i += 2 {
   591  			tok := exprExca[i]
   592  			if tok < TOKSTART || exprExca[i+1] == 0 {
   593  				continue
   594  			}
   595  			if len(expected) == cap(expected) {
   596  				return res
   597  			}
   598  			expected = append(expected, tok)
   599  		}
   600  
   601  		// If the default action is to accept or reduce, give up.
   602  		if exprExca[i+1] != 0 {
   603  			return res
   604  		}
   605  	}
   606  
   607  	for i, tok := range expected {
   608  		if i == 0 {
   609  			res += ", expecting "
   610  		} else {
   611  			res += " or "
   612  		}
   613  		res += exprTokname(tok)
   614  	}
   615  	return res
   616  }
   617  
   618  func exprlex1(lex exprLexer, lval *exprSymType) (char, token int) {
   619  	token = 0
   620  	char = lex.Lex(lval)
   621  	if char <= 0 {
   622  		token = exprTok1[0]
   623  		goto out
   624  	}
   625  	if char < len(exprTok1) {
   626  		token = exprTok1[char]
   627  		goto out
   628  	}
   629  	if char >= exprPrivate {
   630  		if char < exprPrivate+len(exprTok2) {
   631  			token = exprTok2[char-exprPrivate]
   632  			goto out
   633  		}
   634  	}
   635  	for i := 0; i < len(exprTok3); i += 2 {
   636  		token = exprTok3[i+0]
   637  		if token == char {
   638  			token = exprTok3[i+1]
   639  			goto out
   640  		}
   641  	}
   642  
   643  out:
   644  	if token == 0 {
   645  		token = exprTok2[1] /* unknown char */
   646  	}
   647  	if exprDebug >= 3 {
   648  		__yyfmt__.Printf("lex %s(%d)\n", exprTokname(token), uint(char))
   649  	}
   650  	return char, token
   651  }
   652  
   653  func exprParse(exprlex exprLexer) int {
   654  	return exprNewParser().Parse(exprlex)
   655  }
   656  
   657  func (exprrcvr *exprParserImpl) Parse(exprlex exprLexer) int {
   658  	var exprn int
   659  	var exprVAL exprSymType
   660  	var exprDollar []exprSymType
   661  	_ = exprDollar // silence set and not used
   662  	exprS := exprrcvr.stack[:]
   663  
   664  	Nerrs := 0   /* number of errors */
   665  	Errflag := 0 /* error recovery flag */
   666  	exprstate := 0
   667  	exprrcvr.char = -1
   668  	exprtoken := -1 // exprrcvr.char translated into internal numbering
   669  	defer func() {
   670  		// Make sure we report no lookahead when not parsing.
   671  		exprstate = -1
   672  		exprrcvr.char = -1
   673  		exprtoken = -1
   674  	}()
   675  	exprp := -1
   676  	goto exprstack
   677  
   678  ret0:
   679  	return 0
   680  
   681  ret1:
   682  	return 1
   683  
   684  exprstack:
   685  	/* put a state and value onto the stack */
   686  	if exprDebug >= 4 {
   687  		__yyfmt__.Printf("char %v in %v\n", exprTokname(exprtoken), exprStatname(exprstate))
   688  	}
   689  
   690  	exprp++
   691  	if exprp >= len(exprS) {
   692  		nyys := make([]exprSymType, len(exprS)*2)
   693  		copy(nyys, exprS)
   694  		exprS = nyys
   695  	}
   696  	exprS[exprp] = exprVAL
   697  	exprS[exprp].yys = exprstate
   698  
   699  exprnewstate:
   700  	exprn = exprPact[exprstate]
   701  	if exprn <= exprFlag {
   702  		goto exprdefault /* simple state */
   703  	}
   704  	if exprrcvr.char < 0 {
   705  		exprrcvr.char, exprtoken = exprlex1(exprlex, &exprrcvr.lval)
   706  	}
   707  	exprn += exprtoken
   708  	if exprn < 0 || exprn >= exprLast {
   709  		goto exprdefault
   710  	}
   711  	exprn = exprAct[exprn]
   712  	if exprChk[exprn] == exprtoken { /* valid shift */
   713  		exprrcvr.char = -1
   714  		exprtoken = -1
   715  		exprVAL = exprrcvr.lval
   716  		exprstate = exprn
   717  		if Errflag > 0 {
   718  			Errflag--
   719  		}
   720  		goto exprstack
   721  	}
   722  
   723  exprdefault:
   724  	/* default state action */
   725  	exprn = exprDef[exprstate]
   726  	if exprn == -2 {
   727  		if exprrcvr.char < 0 {
   728  			exprrcvr.char, exprtoken = exprlex1(exprlex, &exprrcvr.lval)
   729  		}
   730  
   731  		/* look through exception table */
   732  		xi := 0
   733  		for {
   734  			if exprExca[xi+0] == -1 && exprExca[xi+1] == exprstate {
   735  				break
   736  			}
   737  			xi += 2
   738  		}
   739  		for xi += 2; ; xi += 2 {
   740  			exprn = exprExca[xi+0]
   741  			if exprn < 0 || exprn == exprtoken {
   742  				break
   743  			}
   744  		}
   745  		exprn = exprExca[xi+1]
   746  		if exprn < 0 {
   747  			goto ret0
   748  		}
   749  	}
   750  	if exprn == 0 {
   751  		/* error ... attempt to resume parsing */
   752  		switch Errflag {
   753  		case 0: /* brand new error */
   754  			exprlex.Error(exprErrorMessage(exprstate, exprtoken))
   755  			Nerrs++
   756  			if exprDebug >= 1 {
   757  				__yyfmt__.Printf("%s", exprStatname(exprstate))
   758  				__yyfmt__.Printf(" saw %s\n", exprTokname(exprtoken))
   759  			}
   760  			fallthrough
   761  
   762  		case 1, 2: /* incompletely recovered error ... try again */
   763  			Errflag = 3
   764  
   765  			/* find a state where "error" is a legal shift action */
   766  			for exprp >= 0 {
   767  				exprn = exprPact[exprS[exprp].yys] + exprErrCode
   768  				if exprn >= 0 && exprn < exprLast {
   769  					exprstate = exprAct[exprn] /* simulate a shift of "error" */
   770  					if exprChk[exprstate] == exprErrCode {
   771  						goto exprstack
   772  					}
   773  				}
   774  
   775  				/* the current p has no shift on "error", pop stack */
   776  				if exprDebug >= 2 {
   777  					__yyfmt__.Printf("error recovery pops state %d\n", exprS[exprp].yys)
   778  				}
   779  				exprp--
   780  			}
   781  			/* there is no state on the stack with an error shift ... abort */
   782  			goto ret1
   783  
   784  		case 3: /* no shift yet; clobber input char */
   785  			if exprDebug >= 2 {
   786  				__yyfmt__.Printf("error recovery discards %s\n", exprTokname(exprtoken))
   787  			}
   788  			if exprtoken == exprEofCode {
   789  				goto ret1
   790  			}
   791  			exprrcvr.char = -1
   792  			exprtoken = -1
   793  			goto exprnewstate /* try again in the same state */
   794  		}
   795  	}
   796  
   797  	/* reduction by production exprn */
   798  	if exprDebug >= 2 {
   799  		__yyfmt__.Printf("reduce %v in:\n\t%v\n", exprn, exprStatname(exprstate))
   800  	}
   801  
   802  	exprnt := exprn
   803  	exprpt := exprp
   804  	_ = exprpt // guard against "declared and not used"
   805  
   806  	exprp -= exprR2[exprn]
   807  	// exprp is now the index of $0. Perform the default action. Iff the
   808  	// reduced production is ε, $1 is possibly out of range.
   809  	if exprp+1 >= len(exprS) {
   810  		nyys := make([]exprSymType, len(exprS)*2)
   811  		copy(nyys, exprS)
   812  		exprS = nyys
   813  	}
   814  	exprVAL = exprS[exprp+1]
   815  
   816  	/* consult goto table to find next state */
   817  	exprn = exprR1[exprn]
   818  	exprg := exprPgo[exprn]
   819  	exprj := exprg + exprS[exprp].yys + 1
   820  
   821  	if exprj >= exprLast {
   822  		exprstate = exprAct[exprg]
   823  	} else {
   824  		exprstate = exprAct[exprj]
   825  		if exprChk[exprstate] != -exprn {
   826  			exprstate = exprAct[exprg]
   827  		}
   828  	}
   829  	// dummy call; replaced with literal code
   830  	switch exprnt {
   831  
   832  	case 1:
   833  		exprDollar = exprS[exprpt-1 : exprpt+1]
   834  		{
   835  			exprlex.(*parser).expr = exprDollar[1].Expr
   836  		}
   837  	case 2:
   838  		exprDollar = exprS[exprpt-1 : exprpt+1]
   839  		{
   840  			exprVAL.Expr = exprDollar[1].LogExpr
   841  		}
   842  	case 3:
   843  		exprDollar = exprS[exprpt-1 : exprpt+1]
   844  		{
   845  			exprVAL.Expr = exprDollar[1].MetricExpr
   846  		}
   847  	case 4:
   848  		exprDollar = exprS[exprpt-1 : exprpt+1]
   849  		{
   850  			exprVAL.MetricExpr = exprDollar[1].RangeAggregationExpr
   851  		}
   852  	case 5:
   853  		exprDollar = exprS[exprpt-1 : exprpt+1]
   854  		{
   855  			exprVAL.MetricExpr = exprDollar[1].VectorAggregationExpr
   856  		}
   857  	case 6:
   858  		exprDollar = exprS[exprpt-1 : exprpt+1]
   859  		{
   860  			exprVAL.MetricExpr = exprDollar[1].BinOpExpr
   861  		}
   862  	case 7:
   863  		exprDollar = exprS[exprpt-1 : exprpt+1]
   864  		{
   865  			exprVAL.MetricExpr = exprDollar[1].LiteralExpr
   866  		}
   867  	case 8:
   868  		exprDollar = exprS[exprpt-1 : exprpt+1]
   869  		{
   870  			exprVAL.MetricExpr = exprDollar[1].LabelReplaceExpr
   871  		}
   872  	case 9:
   873  		exprDollar = exprS[exprpt-3 : exprpt+1]
   874  		{
   875  			exprVAL.MetricExpr = exprDollar[2].MetricExpr
   876  		}
   877  	case 10:
   878  		exprDollar = exprS[exprpt-1 : exprpt+1]
   879  		{
   880  			exprVAL.LogExpr = newMatcherExpr(exprDollar[1].Selector)
   881  		}
   882  	case 11:
   883  		exprDollar = exprS[exprpt-2 : exprpt+1]
   884  		{
   885  			exprVAL.LogExpr = newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].PipelineExpr)
   886  		}
   887  	case 12:
   888  		exprDollar = exprS[exprpt-3 : exprpt+1]
   889  		{
   890  			exprVAL.LogExpr = exprDollar[2].LogExpr
   891  		}
   892  	case 13:
   893  		exprDollar = exprS[exprpt-2 : exprpt+1]
   894  		{
   895  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].duration, nil, nil)
   896  		}
   897  	case 14:
   898  		exprDollar = exprS[exprpt-3 : exprpt+1]
   899  		{
   900  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].duration, nil, exprDollar[3].OffsetExpr)
   901  		}
   902  	case 15:
   903  		exprDollar = exprS[exprpt-4 : exprpt+1]
   904  		{
   905  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[2].Selector), exprDollar[4].duration, nil, nil)
   906  		}
   907  	case 16:
   908  		exprDollar = exprS[exprpt-5 : exprpt+1]
   909  		{
   910  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[2].Selector), exprDollar[4].duration, nil, exprDollar[5].OffsetExpr)
   911  		}
   912  	case 17:
   913  		exprDollar = exprS[exprpt-3 : exprpt+1]
   914  		{
   915  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].duration, exprDollar[3].UnwrapExpr, nil)
   916  		}
   917  	case 18:
   918  		exprDollar = exprS[exprpt-4 : exprpt+1]
   919  		{
   920  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].duration, exprDollar[4].UnwrapExpr, exprDollar[3].OffsetExpr)
   921  		}
   922  	case 19:
   923  		exprDollar = exprS[exprpt-5 : exprpt+1]
   924  		{
   925  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[2].Selector), exprDollar[4].duration, exprDollar[5].UnwrapExpr, nil)
   926  		}
   927  	case 20:
   928  		exprDollar = exprS[exprpt-6 : exprpt+1]
   929  		{
   930  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[2].Selector), exprDollar[4].duration, exprDollar[6].UnwrapExpr, exprDollar[5].OffsetExpr)
   931  		}
   932  	case 21:
   933  		exprDollar = exprS[exprpt-3 : exprpt+1]
   934  		{
   935  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[1].Selector), exprDollar[3].duration, exprDollar[2].UnwrapExpr, nil)
   936  		}
   937  	case 22:
   938  		exprDollar = exprS[exprpt-4 : exprpt+1]
   939  		{
   940  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[1].Selector), exprDollar[3].duration, exprDollar[2].UnwrapExpr, exprDollar[4].OffsetExpr)
   941  		}
   942  	case 23:
   943  		exprDollar = exprS[exprpt-5 : exprpt+1]
   944  		{
   945  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[2].Selector), exprDollar[5].duration, exprDollar[3].UnwrapExpr, nil)
   946  		}
   947  	case 24:
   948  		exprDollar = exprS[exprpt-6 : exprpt+1]
   949  		{
   950  			exprVAL.LogRangeExpr = newLogRange(newMatcherExpr(exprDollar[2].Selector), exprDollar[5].duration, exprDollar[3].UnwrapExpr, exprDollar[6].OffsetExpr)
   951  		}
   952  	case 25:
   953  		exprDollar = exprS[exprpt-3 : exprpt+1]
   954  		{
   955  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].PipelineExpr), exprDollar[3].duration, nil, nil)
   956  		}
   957  	case 26:
   958  		exprDollar = exprS[exprpt-4 : exprpt+1]
   959  		{
   960  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].PipelineExpr), exprDollar[3].duration, nil, exprDollar[4].OffsetExpr)
   961  		}
   962  	case 27:
   963  		exprDollar = exprS[exprpt-5 : exprpt+1]
   964  		{
   965  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[2].Selector), exprDollar[3].PipelineExpr), exprDollar[5].duration, nil, nil)
   966  		}
   967  	case 28:
   968  		exprDollar = exprS[exprpt-6 : exprpt+1]
   969  		{
   970  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[2].Selector), exprDollar[3].PipelineExpr), exprDollar[5].duration, nil, exprDollar[6].OffsetExpr)
   971  		}
   972  	case 29:
   973  		exprDollar = exprS[exprpt-4 : exprpt+1]
   974  		{
   975  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].PipelineExpr), exprDollar[4].duration, exprDollar[3].UnwrapExpr, nil)
   976  		}
   977  	case 30:
   978  		exprDollar = exprS[exprpt-5 : exprpt+1]
   979  		{
   980  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[2].PipelineExpr), exprDollar[4].duration, exprDollar[3].UnwrapExpr, exprDollar[5].OffsetExpr)
   981  		}
   982  	case 31:
   983  		exprDollar = exprS[exprpt-6 : exprpt+1]
   984  		{
   985  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[2].Selector), exprDollar[3].PipelineExpr), exprDollar[6].duration, exprDollar[4].UnwrapExpr, nil)
   986  		}
   987  	case 32:
   988  		exprDollar = exprS[exprpt-7 : exprpt+1]
   989  		{
   990  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[2].Selector), exprDollar[3].PipelineExpr), exprDollar[6].duration, exprDollar[4].UnwrapExpr, exprDollar[7].OffsetExpr)
   991  		}
   992  	case 33:
   993  		exprDollar = exprS[exprpt-3 : exprpt+1]
   994  		{
   995  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[3].PipelineExpr), exprDollar[2].duration, nil, nil)
   996  		}
   997  	case 34:
   998  		exprDollar = exprS[exprpt-4 : exprpt+1]
   999  		{
  1000  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[4].PipelineExpr), exprDollar[2].duration, nil, exprDollar[3].OffsetExpr)
  1001  		}
  1002  	case 35:
  1003  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1004  		{
  1005  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[3].PipelineExpr), exprDollar[2].duration, exprDollar[4].UnwrapExpr, nil)
  1006  		}
  1007  	case 36:
  1008  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1009  		{
  1010  			exprVAL.LogRangeExpr = newLogRange(newPipelineExpr(newMatcherExpr(exprDollar[1].Selector), exprDollar[4].PipelineExpr), exprDollar[2].duration, exprDollar[5].UnwrapExpr, exprDollar[3].OffsetExpr)
  1011  		}
  1012  	case 37:
  1013  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1014  		{
  1015  			exprVAL.LogRangeExpr = exprDollar[2].LogRangeExpr
  1016  		}
  1017  	case 39:
  1018  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1019  		{
  1020  			exprVAL.UnwrapExpr = newUnwrapExpr(exprDollar[3].str, "")
  1021  		}
  1022  	case 40:
  1023  		exprDollar = exprS[exprpt-6 : exprpt+1]
  1024  		{
  1025  			exprVAL.UnwrapExpr = newUnwrapExpr(exprDollar[5].str, exprDollar[3].ConvOp)
  1026  		}
  1027  	case 41:
  1028  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1029  		{
  1030  			exprVAL.UnwrapExpr = exprDollar[1].UnwrapExpr.addPostFilter(exprDollar[3].LabelFilter)
  1031  		}
  1032  	case 42:
  1033  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1034  		{
  1035  			exprVAL.ConvOp = OpConvBytes
  1036  		}
  1037  	case 43:
  1038  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1039  		{
  1040  			exprVAL.ConvOp = OpConvDuration
  1041  		}
  1042  	case 44:
  1043  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1044  		{
  1045  			exprVAL.ConvOp = OpConvDurationSeconds
  1046  		}
  1047  	case 45:
  1048  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1049  		{
  1050  			exprVAL.RangeAggregationExpr = newRangeAggregationExpr(exprDollar[3].LogRangeExpr, exprDollar[1].RangeOp, nil, nil)
  1051  		}
  1052  	case 46:
  1053  		exprDollar = exprS[exprpt-6 : exprpt+1]
  1054  		{
  1055  			exprVAL.RangeAggregationExpr = newRangeAggregationExpr(exprDollar[5].LogRangeExpr, exprDollar[1].RangeOp, nil, &exprDollar[3].str)
  1056  		}
  1057  	case 47:
  1058  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1059  		{
  1060  			exprVAL.RangeAggregationExpr = newRangeAggregationExpr(exprDollar[3].LogRangeExpr, exprDollar[1].RangeOp, exprDollar[5].Grouping, nil)
  1061  		}
  1062  	case 48:
  1063  		exprDollar = exprS[exprpt-7 : exprpt+1]
  1064  		{
  1065  			exprVAL.RangeAggregationExpr = newRangeAggregationExpr(exprDollar[5].LogRangeExpr, exprDollar[1].RangeOp, exprDollar[7].Grouping, &exprDollar[3].str)
  1066  		}
  1067  	case 49:
  1068  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1069  		{
  1070  			exprVAL.VectorAggregationExpr = mustNewVectorAggregationExpr(exprDollar[3].MetricExpr, exprDollar[1].VectorOp, nil, nil)
  1071  		}
  1072  	case 50:
  1073  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1074  		{
  1075  			exprVAL.VectorAggregationExpr = mustNewVectorAggregationExpr(exprDollar[4].MetricExpr, exprDollar[1].VectorOp, exprDollar[2].Grouping, nil)
  1076  		}
  1077  	case 51:
  1078  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1079  		{
  1080  			exprVAL.VectorAggregationExpr = mustNewVectorAggregationExpr(exprDollar[3].MetricExpr, exprDollar[1].VectorOp, exprDollar[5].Grouping, nil)
  1081  		}
  1082  	case 52:
  1083  		exprDollar = exprS[exprpt-6 : exprpt+1]
  1084  		{
  1085  			exprVAL.VectorAggregationExpr = mustNewVectorAggregationExpr(exprDollar[5].MetricExpr, exprDollar[1].VectorOp, nil, &exprDollar[3].str)
  1086  		}
  1087  	case 53:
  1088  		exprDollar = exprS[exprpt-7 : exprpt+1]
  1089  		{
  1090  			exprVAL.VectorAggregationExpr = mustNewVectorAggregationExpr(exprDollar[5].MetricExpr, exprDollar[1].VectorOp, exprDollar[7].Grouping, &exprDollar[3].str)
  1091  		}
  1092  	case 54:
  1093  		exprDollar = exprS[exprpt-7 : exprpt+1]
  1094  		{
  1095  			exprVAL.VectorAggregationExpr = mustNewVectorAggregationExpr(exprDollar[6].MetricExpr, exprDollar[1].VectorOp, exprDollar[2].Grouping, &exprDollar[4].str)
  1096  		}
  1097  	case 55:
  1098  		exprDollar = exprS[exprpt-12 : exprpt+1]
  1099  		{
  1100  			exprVAL.LabelReplaceExpr = mustNewLabelReplaceExpr(exprDollar[3].MetricExpr, exprDollar[5].str, exprDollar[7].str, exprDollar[9].str, exprDollar[11].str)
  1101  		}
  1102  	case 56:
  1103  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1104  		{
  1105  			exprVAL.Filter = labels.MatchRegexp
  1106  		}
  1107  	case 57:
  1108  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1109  		{
  1110  			exprVAL.Filter = labels.MatchEqual
  1111  		}
  1112  	case 58:
  1113  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1114  		{
  1115  			exprVAL.Filter = labels.MatchNotRegexp
  1116  		}
  1117  	case 59:
  1118  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1119  		{
  1120  			exprVAL.Filter = labels.MatchNotEqual
  1121  		}
  1122  	case 60:
  1123  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1124  		{
  1125  			exprVAL.Selector = exprDollar[2].Matchers
  1126  		}
  1127  	case 61:
  1128  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1129  		{
  1130  			exprVAL.Selector = exprDollar[2].Matchers
  1131  		}
  1132  	case 62:
  1133  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1134  		{
  1135  		}
  1136  	case 63:
  1137  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1138  		{
  1139  			exprVAL.Matchers = []*labels.Matcher{exprDollar[1].Matcher}
  1140  		}
  1141  	case 64:
  1142  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1143  		{
  1144  			exprVAL.Matchers = append(exprDollar[1].Matchers, exprDollar[3].Matcher)
  1145  		}
  1146  	case 65:
  1147  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1148  		{
  1149  			exprVAL.Matcher = mustNewMatcher(labels.MatchEqual, exprDollar[1].str, exprDollar[3].str)
  1150  		}
  1151  	case 66:
  1152  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1153  		{
  1154  			exprVAL.Matcher = mustNewMatcher(labels.MatchNotEqual, exprDollar[1].str, exprDollar[3].str)
  1155  		}
  1156  	case 67:
  1157  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1158  		{
  1159  			exprVAL.Matcher = mustNewMatcher(labels.MatchRegexp, exprDollar[1].str, exprDollar[3].str)
  1160  		}
  1161  	case 68:
  1162  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1163  		{
  1164  			exprVAL.Matcher = mustNewMatcher(labels.MatchNotRegexp, exprDollar[1].str, exprDollar[3].str)
  1165  		}
  1166  	case 69:
  1167  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1168  		{
  1169  			exprVAL.PipelineExpr = MultiStageExpr{exprDollar[1].PipelineStage}
  1170  		}
  1171  	case 70:
  1172  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1173  		{
  1174  			exprVAL.PipelineExpr = append(exprDollar[1].PipelineExpr, exprDollar[2].PipelineStage)
  1175  		}
  1176  	case 71:
  1177  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1178  		{
  1179  			exprVAL.PipelineStage = exprDollar[1].LineFilters
  1180  		}
  1181  	case 72:
  1182  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1183  		{
  1184  			exprVAL.PipelineStage = exprDollar[2].LabelParser
  1185  		}
  1186  	case 73:
  1187  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1188  		{
  1189  			exprVAL.PipelineStage = exprDollar[2].JSONExpressionParser
  1190  		}
  1191  	case 74:
  1192  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1193  		{
  1194  			exprVAL.PipelineStage = &LabelFilterExpr{LabelFilterer: exprDollar[2].LabelFilter}
  1195  		}
  1196  	case 75:
  1197  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1198  		{
  1199  			exprVAL.PipelineStage = exprDollar[2].LineFormatExpr
  1200  		}
  1201  	case 76:
  1202  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1203  		{
  1204  			exprVAL.PipelineStage = exprDollar[2].LabelFormatExpr
  1205  		}
  1206  	case 77:
  1207  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1208  		{
  1209  			exprVAL.FilterOp = OpFilterIP
  1210  		}
  1211  	case 78:
  1212  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1213  		{
  1214  			exprVAL.LineFilter = newLineFilterExpr(exprDollar[1].Filter, "", exprDollar[2].str)
  1215  		}
  1216  	case 79:
  1217  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1218  		{
  1219  			exprVAL.LineFilter = newLineFilterExpr(exprDollar[1].Filter, exprDollar[2].FilterOp, exprDollar[4].str)
  1220  		}
  1221  	case 80:
  1222  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1223  		{
  1224  			exprVAL.LineFilters = exprDollar[1].LineFilter
  1225  		}
  1226  	case 81:
  1227  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1228  		{
  1229  			exprVAL.LineFilters = newNestedLineFilterExpr(exprDollar[1].LineFilters, exprDollar[2].LineFilter)
  1230  		}
  1231  	case 82:
  1232  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1233  		{
  1234  			exprVAL.LabelParser = newLabelParserExpr(OpParserTypeJSON, "")
  1235  		}
  1236  	case 83:
  1237  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1238  		{
  1239  			exprVAL.LabelParser = newLabelParserExpr(OpParserTypeLogfmt, "")
  1240  		}
  1241  	case 84:
  1242  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1243  		{
  1244  			exprVAL.LabelParser = newLabelParserExpr(OpParserTypeRegexp, exprDollar[2].str)
  1245  		}
  1246  	case 85:
  1247  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1248  		{
  1249  			exprVAL.LabelParser = newLabelParserExpr(OpParserTypeUnpack, "")
  1250  		}
  1251  	case 86:
  1252  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1253  		{
  1254  			exprVAL.LabelParser = newLabelParserExpr(OpParserTypePattern, exprDollar[2].str)
  1255  		}
  1256  	case 87:
  1257  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1258  		{
  1259  			exprVAL.JSONExpressionParser = newJSONExpressionParser(exprDollar[2].JSONExpressionList)
  1260  		}
  1261  	case 88:
  1262  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1263  		{
  1264  			exprVAL.LineFormatExpr = newLineFmtExpr(exprDollar[2].str)
  1265  		}
  1266  	case 89:
  1267  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1268  		{
  1269  			exprVAL.LabelFormat = log.NewRenameLabelFmt(exprDollar[1].str, exprDollar[3].str)
  1270  		}
  1271  	case 90:
  1272  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1273  		{
  1274  			exprVAL.LabelFormat = log.NewTemplateLabelFmt(exprDollar[1].str, exprDollar[3].str)
  1275  		}
  1276  	case 91:
  1277  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1278  		{
  1279  			exprVAL.LabelsFormat = []log.LabelFmt{exprDollar[1].LabelFormat}
  1280  		}
  1281  	case 92:
  1282  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1283  		{
  1284  			exprVAL.LabelsFormat = append(exprDollar[1].LabelsFormat, exprDollar[3].LabelFormat)
  1285  		}
  1286  	case 94:
  1287  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1288  		{
  1289  			exprVAL.LabelFormatExpr = newLabelFmtExpr(exprDollar[2].LabelsFormat)
  1290  		}
  1291  	case 95:
  1292  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1293  		{
  1294  			exprVAL.LabelFilter = log.NewStringLabelFilter(exprDollar[1].Matcher)
  1295  		}
  1296  	case 96:
  1297  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1298  		{
  1299  			exprVAL.LabelFilter = exprDollar[1].IPLabelFilter
  1300  		}
  1301  	case 97:
  1302  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1303  		{
  1304  			exprVAL.LabelFilter = exprDollar[1].UnitFilter
  1305  		}
  1306  	case 98:
  1307  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1308  		{
  1309  			exprVAL.LabelFilter = exprDollar[1].NumberFilter
  1310  		}
  1311  	case 99:
  1312  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1313  		{
  1314  			exprVAL.LabelFilter = exprDollar[2].LabelFilter
  1315  		}
  1316  	case 100:
  1317  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1318  		{
  1319  			exprVAL.LabelFilter = log.NewAndLabelFilter(exprDollar[1].LabelFilter, exprDollar[2].LabelFilter)
  1320  		}
  1321  	case 101:
  1322  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1323  		{
  1324  			exprVAL.LabelFilter = log.NewAndLabelFilter(exprDollar[1].LabelFilter, exprDollar[3].LabelFilter)
  1325  		}
  1326  	case 102:
  1327  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1328  		{
  1329  			exprVAL.LabelFilter = log.NewAndLabelFilter(exprDollar[1].LabelFilter, exprDollar[3].LabelFilter)
  1330  		}
  1331  	case 103:
  1332  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1333  		{
  1334  			exprVAL.LabelFilter = log.NewOrLabelFilter(exprDollar[1].LabelFilter, exprDollar[3].LabelFilter)
  1335  		}
  1336  	case 104:
  1337  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1338  		{
  1339  			exprVAL.JSONExpression = log.NewJSONExpr(exprDollar[1].str, exprDollar[3].str)
  1340  		}
  1341  	case 105:
  1342  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1343  		{
  1344  			exprVAL.JSONExpression = log.NewJSONExpr(exprDollar[1].str, exprDollar[1].str)
  1345  		}
  1346  	case 106:
  1347  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1348  		{
  1349  			exprVAL.JSONExpressionList = []log.JSONExpression{exprDollar[1].JSONExpression}
  1350  		}
  1351  	case 107:
  1352  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1353  		{
  1354  			exprVAL.JSONExpressionList = append(exprDollar[1].JSONExpressionList, exprDollar[3].JSONExpression)
  1355  		}
  1356  	case 108:
  1357  		exprDollar = exprS[exprpt-6 : exprpt+1]
  1358  		{
  1359  			exprVAL.IPLabelFilter = log.NewIPLabelFilter(exprDollar[5].str, exprDollar[1].str, log.LabelFilterEqual)
  1360  		}
  1361  	case 109:
  1362  		exprDollar = exprS[exprpt-6 : exprpt+1]
  1363  		{
  1364  			exprVAL.IPLabelFilter = log.NewIPLabelFilter(exprDollar[5].str, exprDollar[1].str, log.LabelFilterNotEqual)
  1365  		}
  1366  	case 110:
  1367  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1368  		{
  1369  			exprVAL.UnitFilter = exprDollar[1].DurationFilter
  1370  		}
  1371  	case 111:
  1372  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1373  		{
  1374  			exprVAL.UnitFilter = exprDollar[1].BytesFilter
  1375  		}
  1376  	case 112:
  1377  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1378  		{
  1379  			exprVAL.DurationFilter = log.NewDurationLabelFilter(log.LabelFilterGreaterThan, exprDollar[1].str, exprDollar[3].duration)
  1380  		}
  1381  	case 113:
  1382  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1383  		{
  1384  			exprVAL.DurationFilter = log.NewDurationLabelFilter(log.LabelFilterGreaterThanOrEqual, exprDollar[1].str, exprDollar[3].duration)
  1385  		}
  1386  	case 114:
  1387  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1388  		{
  1389  			exprVAL.DurationFilter = log.NewDurationLabelFilter(log.LabelFilterLesserThan, exprDollar[1].str, exprDollar[3].duration)
  1390  		}
  1391  	case 115:
  1392  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1393  		{
  1394  			exprVAL.DurationFilter = log.NewDurationLabelFilter(log.LabelFilterLesserThanOrEqual, exprDollar[1].str, exprDollar[3].duration)
  1395  		}
  1396  	case 116:
  1397  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1398  		{
  1399  			exprVAL.DurationFilter = log.NewDurationLabelFilter(log.LabelFilterNotEqual, exprDollar[1].str, exprDollar[3].duration)
  1400  		}
  1401  	case 117:
  1402  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1403  		{
  1404  			exprVAL.DurationFilter = log.NewDurationLabelFilter(log.LabelFilterEqual, exprDollar[1].str, exprDollar[3].duration)
  1405  		}
  1406  	case 118:
  1407  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1408  		{
  1409  			exprVAL.DurationFilter = log.NewDurationLabelFilter(log.LabelFilterEqual, exprDollar[1].str, exprDollar[3].duration)
  1410  		}
  1411  	case 119:
  1412  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1413  		{
  1414  			exprVAL.BytesFilter = log.NewBytesLabelFilter(log.LabelFilterGreaterThan, exprDollar[1].str, exprDollar[3].bytes)
  1415  		}
  1416  	case 120:
  1417  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1418  		{
  1419  			exprVAL.BytesFilter = log.NewBytesLabelFilter(log.LabelFilterGreaterThanOrEqual, exprDollar[1].str, exprDollar[3].bytes)
  1420  		}
  1421  	case 121:
  1422  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1423  		{
  1424  			exprVAL.BytesFilter = log.NewBytesLabelFilter(log.LabelFilterLesserThan, exprDollar[1].str, exprDollar[3].bytes)
  1425  		}
  1426  	case 122:
  1427  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1428  		{
  1429  			exprVAL.BytesFilter = log.NewBytesLabelFilter(log.LabelFilterLesserThanOrEqual, exprDollar[1].str, exprDollar[3].bytes)
  1430  		}
  1431  	case 123:
  1432  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1433  		{
  1434  			exprVAL.BytesFilter = log.NewBytesLabelFilter(log.LabelFilterNotEqual, exprDollar[1].str, exprDollar[3].bytes)
  1435  		}
  1436  	case 124:
  1437  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1438  		{
  1439  			exprVAL.BytesFilter = log.NewBytesLabelFilter(log.LabelFilterEqual, exprDollar[1].str, exprDollar[3].bytes)
  1440  		}
  1441  	case 125:
  1442  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1443  		{
  1444  			exprVAL.BytesFilter = log.NewBytesLabelFilter(log.LabelFilterEqual, exprDollar[1].str, exprDollar[3].bytes)
  1445  		}
  1446  	case 126:
  1447  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1448  		{
  1449  			exprVAL.NumberFilter = log.NewNumericLabelFilter(log.LabelFilterGreaterThan, exprDollar[1].str, mustNewFloat(exprDollar[3].str))
  1450  		}
  1451  	case 127:
  1452  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1453  		{
  1454  			exprVAL.NumberFilter = log.NewNumericLabelFilter(log.LabelFilterGreaterThanOrEqual, exprDollar[1].str, mustNewFloat(exprDollar[3].str))
  1455  		}
  1456  	case 128:
  1457  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1458  		{
  1459  			exprVAL.NumberFilter = log.NewNumericLabelFilter(log.LabelFilterLesserThan, exprDollar[1].str, mustNewFloat(exprDollar[3].str))
  1460  		}
  1461  	case 129:
  1462  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1463  		{
  1464  			exprVAL.NumberFilter = log.NewNumericLabelFilter(log.LabelFilterLesserThanOrEqual, exprDollar[1].str, mustNewFloat(exprDollar[3].str))
  1465  		}
  1466  	case 130:
  1467  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1468  		{
  1469  			exprVAL.NumberFilter = log.NewNumericLabelFilter(log.LabelFilterNotEqual, exprDollar[1].str, mustNewFloat(exprDollar[3].str))
  1470  		}
  1471  	case 131:
  1472  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1473  		{
  1474  			exprVAL.NumberFilter = log.NewNumericLabelFilter(log.LabelFilterEqual, exprDollar[1].str, mustNewFloat(exprDollar[3].str))
  1475  		}
  1476  	case 132:
  1477  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1478  		{
  1479  			exprVAL.NumberFilter = log.NewNumericLabelFilter(log.LabelFilterEqual, exprDollar[1].str, mustNewFloat(exprDollar[3].str))
  1480  		}
  1481  	case 133:
  1482  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1483  		{
  1484  			exprVAL.BinOpExpr = mustNewBinOpExpr("or", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1485  		}
  1486  	case 134:
  1487  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1488  		{
  1489  			exprVAL.BinOpExpr = mustNewBinOpExpr("and", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1490  		}
  1491  	case 135:
  1492  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1493  		{
  1494  			exprVAL.BinOpExpr = mustNewBinOpExpr("unless", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1495  		}
  1496  	case 136:
  1497  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1498  		{
  1499  			exprVAL.BinOpExpr = mustNewBinOpExpr("+", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1500  		}
  1501  	case 137:
  1502  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1503  		{
  1504  			exprVAL.BinOpExpr = mustNewBinOpExpr("-", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1505  		}
  1506  	case 138:
  1507  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1508  		{
  1509  			exprVAL.BinOpExpr = mustNewBinOpExpr("*", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1510  		}
  1511  	case 139:
  1512  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1513  		{
  1514  			exprVAL.BinOpExpr = mustNewBinOpExpr("/", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1515  		}
  1516  	case 140:
  1517  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1518  		{
  1519  			exprVAL.BinOpExpr = mustNewBinOpExpr("%", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1520  		}
  1521  	case 141:
  1522  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1523  		{
  1524  			exprVAL.BinOpExpr = mustNewBinOpExpr("^", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1525  		}
  1526  	case 142:
  1527  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1528  		{
  1529  			exprVAL.BinOpExpr = mustNewBinOpExpr("==", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1530  		}
  1531  	case 143:
  1532  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1533  		{
  1534  			exprVAL.BinOpExpr = mustNewBinOpExpr("!=", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1535  		}
  1536  	case 144:
  1537  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1538  		{
  1539  			exprVAL.BinOpExpr = mustNewBinOpExpr(">", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1540  		}
  1541  	case 145:
  1542  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1543  		{
  1544  			exprVAL.BinOpExpr = mustNewBinOpExpr(">=", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1545  		}
  1546  	case 146:
  1547  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1548  		{
  1549  			exprVAL.BinOpExpr = mustNewBinOpExpr("<", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1550  		}
  1551  	case 147:
  1552  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1553  		{
  1554  			exprVAL.BinOpExpr = mustNewBinOpExpr("<=", exprDollar[3].BinOpModifier, exprDollar[1].Expr, exprDollar[4].Expr)
  1555  		}
  1556  	case 148:
  1557  		exprDollar = exprS[exprpt-0 : exprpt+1]
  1558  		{
  1559  			exprVAL.BoolModifier = &BinOpOptions{VectorMatching: &VectorMatching{Card: CardOneToOne}}
  1560  		}
  1561  	case 149:
  1562  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1563  		{
  1564  			exprVAL.BoolModifier = &BinOpOptions{VectorMatching: &VectorMatching{Card: CardOneToOne}, ReturnBool: true}
  1565  		}
  1566  	case 150:
  1567  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1568  		{
  1569  			exprVAL.OnOrIgnoringModifier = exprDollar[1].BoolModifier
  1570  			exprVAL.OnOrIgnoringModifier.VectorMatching.On = true
  1571  			exprVAL.OnOrIgnoringModifier.VectorMatching.MatchingLabels = exprDollar[4].Labels
  1572  		}
  1573  	case 151:
  1574  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1575  		{
  1576  			exprVAL.OnOrIgnoringModifier = exprDollar[1].BoolModifier
  1577  			exprVAL.OnOrIgnoringModifier.VectorMatching.On = true
  1578  		}
  1579  	case 152:
  1580  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1581  		{
  1582  			exprVAL.OnOrIgnoringModifier = exprDollar[1].BoolModifier
  1583  			exprVAL.OnOrIgnoringModifier.VectorMatching.MatchingLabels = exprDollar[4].Labels
  1584  		}
  1585  	case 153:
  1586  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1587  		{
  1588  			exprVAL.OnOrIgnoringModifier = exprDollar[1].BoolModifier
  1589  		}
  1590  	case 154:
  1591  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1592  		{
  1593  			exprVAL.BinOpModifier = exprDollar[1].BoolModifier
  1594  		}
  1595  	case 155:
  1596  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1597  		{
  1598  			exprVAL.BinOpModifier = exprDollar[1].OnOrIgnoringModifier
  1599  		}
  1600  	case 156:
  1601  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1602  		{
  1603  			exprVAL.BinOpModifier = exprDollar[1].OnOrIgnoringModifier
  1604  			exprVAL.BinOpModifier.VectorMatching.Card = CardManyToOne
  1605  		}
  1606  	case 157:
  1607  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1608  		{
  1609  			exprVAL.BinOpModifier = exprDollar[1].OnOrIgnoringModifier
  1610  			exprVAL.BinOpModifier.VectorMatching.Card = CardManyToOne
  1611  		}
  1612  	case 158:
  1613  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1614  		{
  1615  			exprVAL.BinOpModifier = exprDollar[1].OnOrIgnoringModifier
  1616  			exprVAL.BinOpModifier.VectorMatching.Card = CardManyToOne
  1617  			exprVAL.BinOpModifier.VectorMatching.Include = exprDollar[4].Labels
  1618  		}
  1619  	case 159:
  1620  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1621  		{
  1622  			exprVAL.BinOpModifier = exprDollar[1].OnOrIgnoringModifier
  1623  			exprVAL.BinOpModifier.VectorMatching.Card = CardOneToMany
  1624  		}
  1625  	case 160:
  1626  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1627  		{
  1628  			exprVAL.BinOpModifier = exprDollar[1].OnOrIgnoringModifier
  1629  			exprVAL.BinOpModifier.VectorMatching.Card = CardOneToMany
  1630  		}
  1631  	case 161:
  1632  		exprDollar = exprS[exprpt-5 : exprpt+1]
  1633  		{
  1634  			exprVAL.BinOpModifier = exprDollar[1].OnOrIgnoringModifier
  1635  			exprVAL.BinOpModifier.VectorMatching.Card = CardOneToMany
  1636  			exprVAL.BinOpModifier.VectorMatching.Include = exprDollar[4].Labels
  1637  		}
  1638  	case 162:
  1639  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1640  		{
  1641  			exprVAL.LiteralExpr = mustNewLiteralExpr(exprDollar[1].str, false)
  1642  		}
  1643  	case 163:
  1644  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1645  		{
  1646  			exprVAL.LiteralExpr = mustNewLiteralExpr(exprDollar[2].str, false)
  1647  		}
  1648  	case 164:
  1649  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1650  		{
  1651  			exprVAL.LiteralExpr = mustNewLiteralExpr(exprDollar[2].str, true)
  1652  		}
  1653  	case 165:
  1654  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1655  		{
  1656  			exprVAL.VectorOp = OpTypeSum
  1657  		}
  1658  	case 166:
  1659  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1660  		{
  1661  			exprVAL.VectorOp = OpTypeAvg
  1662  		}
  1663  	case 167:
  1664  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1665  		{
  1666  			exprVAL.VectorOp = OpTypeCount
  1667  		}
  1668  	case 168:
  1669  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1670  		{
  1671  			exprVAL.VectorOp = OpTypeMax
  1672  		}
  1673  	case 169:
  1674  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1675  		{
  1676  			exprVAL.VectorOp = OpTypeMin
  1677  		}
  1678  	case 170:
  1679  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1680  		{
  1681  			exprVAL.VectorOp = OpTypeStddev
  1682  		}
  1683  	case 171:
  1684  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1685  		{
  1686  			exprVAL.VectorOp = OpTypeStdvar
  1687  		}
  1688  	case 172:
  1689  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1690  		{
  1691  			exprVAL.VectorOp = OpTypeBottomK
  1692  		}
  1693  	case 173:
  1694  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1695  		{
  1696  			exprVAL.VectorOp = OpTypeTopK
  1697  		}
  1698  	case 174:
  1699  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1700  		{
  1701  			exprVAL.RangeOp = OpRangeTypeCount
  1702  		}
  1703  	case 175:
  1704  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1705  		{
  1706  			exprVAL.RangeOp = OpRangeTypeRate
  1707  		}
  1708  	case 176:
  1709  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1710  		{
  1711  			exprVAL.RangeOp = OpRangeTypeRateCounter
  1712  		}
  1713  	case 177:
  1714  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1715  		{
  1716  			exprVAL.RangeOp = OpRangeTypeBytes
  1717  		}
  1718  	case 178:
  1719  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1720  		{
  1721  			exprVAL.RangeOp = OpRangeTypeBytesRate
  1722  		}
  1723  	case 179:
  1724  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1725  		{
  1726  			exprVAL.RangeOp = OpRangeTypeAvg
  1727  		}
  1728  	case 180:
  1729  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1730  		{
  1731  			exprVAL.RangeOp = OpRangeTypeSum
  1732  		}
  1733  	case 181:
  1734  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1735  		{
  1736  			exprVAL.RangeOp = OpRangeTypeMin
  1737  		}
  1738  	case 182:
  1739  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1740  		{
  1741  			exprVAL.RangeOp = OpRangeTypeMax
  1742  		}
  1743  	case 183:
  1744  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1745  		{
  1746  			exprVAL.RangeOp = OpRangeTypeStdvar
  1747  		}
  1748  	case 184:
  1749  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1750  		{
  1751  			exprVAL.RangeOp = OpRangeTypeStddev
  1752  		}
  1753  	case 185:
  1754  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1755  		{
  1756  			exprVAL.RangeOp = OpRangeTypeQuantile
  1757  		}
  1758  	case 186:
  1759  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1760  		{
  1761  			exprVAL.RangeOp = OpRangeTypeFirst
  1762  		}
  1763  	case 187:
  1764  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1765  		{
  1766  			exprVAL.RangeOp = OpRangeTypeLast
  1767  		}
  1768  	case 188:
  1769  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1770  		{
  1771  			exprVAL.RangeOp = OpRangeTypeAbsent
  1772  		}
  1773  	case 189:
  1774  		exprDollar = exprS[exprpt-2 : exprpt+1]
  1775  		{
  1776  			exprVAL.OffsetExpr = newOffsetExpr(exprDollar[2].duration)
  1777  		}
  1778  	case 190:
  1779  		exprDollar = exprS[exprpt-1 : exprpt+1]
  1780  		{
  1781  			exprVAL.Labels = []string{exprDollar[1].str}
  1782  		}
  1783  	case 191:
  1784  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1785  		{
  1786  			exprVAL.Labels = append(exprDollar[1].Labels, exprDollar[3].str)
  1787  		}
  1788  	case 192:
  1789  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1790  		{
  1791  			exprVAL.Grouping = &Grouping{Without: false, Groups: exprDollar[3].Labels}
  1792  		}
  1793  	case 193:
  1794  		exprDollar = exprS[exprpt-4 : exprpt+1]
  1795  		{
  1796  			exprVAL.Grouping = &Grouping{Without: true, Groups: exprDollar[3].Labels}
  1797  		}
  1798  	case 194:
  1799  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1800  		{
  1801  			exprVAL.Grouping = &Grouping{Without: false, Groups: nil}
  1802  		}
  1803  	case 195:
  1804  		exprDollar = exprS[exprpt-3 : exprpt+1]
  1805  		{
  1806  			exprVAL.Grouping = &Grouping{Without: true, Groups: nil}
  1807  		}
  1808  	}
  1809  	goto exprstack /* stack new state and value */
  1810  }