diff --git a/promql/generated_parser.y b/promql/generated_parser.y index aae970d799..e456f91dad 100644 --- a/promql/generated_parser.y +++ b/promql/generated_parser.y @@ -18,6 +18,7 @@ import ( "math" "sort" "strconv" + "time" "github.com/prometheus/prometheus/pkg/labels" "github.com/prometheus/prometheus/pkg/value" @@ -35,202 +36,264 @@ import ( series []sequenceValue uint uint64 float float64 + string string + duration time.Duration } -%token ERROR -%token EOF -%token COMMENT -%token IDENTIFIER -%token METRIC_IDENTIFIER -%token LEFT_PAREN -%token RIGHT_PAREN -%token LEFT_BRACE -%token RIGHT_BRACE -%token LEFT_BRACKET -%token RIGHT_BRACKET -%token COMMA -%token ASSIGN -%token COLON -%token SEMICOLON -%token STRING -%token NUMBER -%token DURATION -%token BLANK -%token TIMES -%token SPACE +%token +ASSIGN +BLANK +COLON +COMMA +COMMENT +DURATION +EOF +ERROR +IDENTIFIER +LEFT_BRACE +LEFT_BRACKET +LEFT_PAREN +METRIC_IDENTIFIER +NUMBER +RIGHT_BRACE +RIGHT_BRACKET +RIGHT_PAREN +SEMICOLON +SPACE +STRING +TIMES -%token operatorsStart // Operators. -%token SUB -%token ADD -%token MUL -%token MOD -%token DIV -%token LAND -%token LOR -%token LUNLESS -%token EQL -%token NEQ -%token LTE -%token LSS -%token GTE -%token GTR -%token EQL_REGEX -%token NEQ_REGEX -%token POW +%token operatorsStart +%token +ADD +DIV +EQL +EQL_REGEX +GTE +GTR +LAND +LOR +LSS +LTE +LUNLESS +MOD +MUL +NEQ +NEQ_REGEX +POW +SUB %token operatorsEnd -%token aggregatorsStart // Aggregators. -%token AVG -%token COUNT -%token SUM -%token MIN -%token MAX -%token STDDEV -%token STDVAR -%token TOPK -%token BOTTOMK -%token COUNT_VALUES -%token QUANTILE +%token aggregatorsStart +%token +AVG +BOTTOMK +COUNT +COUNT_VALUES +MAX +MIN +QUANTILE +STDDEV +STDVAR +SUM +TOPK %token aggregatorsEnd -%token keywordsStart // Keywords. -%token OFFSET -%token BY -%token WITHOUT -%token ON -%token IGNORING -%token GROUP_LEFT -%token GROUP_RIGHT -%token BOOL - +%token keywordsStart +%token +BOOL +BY +GROUP_LEFT +GROUP_RIGHT +IGNORING +OFFSET +ON +WITHOUT %token keywordsEnd -%token startSymbolsStart // Start symbols for the generated parser. -%token START_LABELS -%token START_METRIC -%token START_GROUPING_LABELS -%token START_SERIES_DESCRIPTION +%token startSymbolsStart +%token +START_METRIC +START_SERIES_DESCRIPTION +START_EXPRESSION +START_METRIC_SELECTOR %token startSymbolsEnd -%type label_matchers label_match_list + +// Type definitions for grammar rules. +%type label_match_list label_matchers %type label_matcher -%type match_op metric_identifier grouping_label maybe_label +%type aggregate_op grouping_label match_op maybe_label metric_identifier unary_op -%type label_set_list label_set metric -%type