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 }