================================================================================
metavariables - simple
================================================================================

$F($S[10m])

--------------------------------------------------------------------------------

(query
  (function_call
    (function_name)
    (function_args
      (range_vector_selector
        (metric_name)
        (range_selection)))))

================================================================================
metavariables - more
================================================================================

$SUM by ($L) ($RATE($SERIES))

--------------------------------------------------------------------------------

(query
  (function_call
    (function_name)
    (grouping
      (label_name))
    (function_args
      (function_call
        (function_name)
        (function_args
          (float_literal))))))

================================================================================
metavariables - duration
================================================================================

rate($SERIES[$DURATION])

--------------------------------------------------------------------------------

(query
  (function_call
    (function_name)
    (function_args
      (range_vector_selector
        (metric_name)
        (range_selection)))))

================================================================================
ellipsis - function args
================================================================================

rate(...)

--------------------------------------------------------------------------------

(query
  (function_call
    (function_name)
    (function_args
      (semgrep_ellipsis))))

================================================================================
ellipsis - aggregation grouping
================================================================================

sum by (..., a, ...) (...)

--------------------------------------------------------------------------------

(query
  (function_call
    (function_name)
    (grouping
      (semgrep_ellipsis)
      (label_name)
      (semgrep_ellipsis))
    (function_args
      (semgrep_ellipsis))))

================================================================================
ellipsis - label matcher
================================================================================

$METRIC{..., $LABEL=~$VALUE,...}

--------------------------------------------------------------------------------

(query
  (instant_vector_selector
    (metric_name)
    (label_selectors
      (semgrep_ellipsis)
      (label_matcher
        (label_name)
        (label_value))
      (semgrep_ellipsis))))

================================================================================
ellipsis - binary expression left
================================================================================

... + sum(some_metric)

--------------------------------------------------------------------------------

(query
  (binary_expression
    (semgrep_ellipsis)
    (function_call
      (function_name)
      (function_args
        (instant_vector_selector
          (metric_name))))))

================================================================================
ellipsis - binary expression right
================================================================================

some_metric / ...

--------------------------------------------------------------------------------

(query
  (binary_expression
    (instant_vector_selector
      (metric_name))
    (semgrep_ellipsis)))

================================================================================
ellipsis - binary expression both sides
================================================================================

... / ...

--------------------------------------------------------------------------------

(query
  (binary_expression
    (semgrep_ellipsis)
    (semgrep_ellipsis)))

================================================================================
ellipsis - empty series matcher
================================================================================

{...}

--------------------------------------------------------------------------------

(query
  (instant_vector_selector
    (label_selectors
      (semgrep_ellipsis))))

================================================================================
ellipsis - subquery
================================================================================

(...)[$D:$S]

--------------------------------------------------------------------------------

(query
  (subquery
    (semgrep_ellipsis)
    (subquery_range_selection)))

================================================================================
ellipsis - function args
================================================================================

sum(...)

--------------------------------------------------------------------------------

(query
  (function_call
    (function_name)
    (function_args
      (semgrep_ellipsis))))
