exec pint parse 'max_over_time(rate(foo[5m])[1h+10m:5m+1m])'
cmp stdout stdout.txt
! stderr .

-- stdout.txt --
++ node: max_over_time(rate(foo[5m])[1h + 10m:5m + 1m])
  Call:
    * Type: vector
    * Func: max_over_time
    * Args: rate(foo[5m])[1h + 10m:5m + 1m]
      ++ node: rate(foo[5m])[1h + 10m:5m + 1m]
        Expressions:
          ++ node: rate(foo[5m])[1h + 10m:5m + 1m]
            SubqueryExpr:
              * Type: matrix
              * Expr: rate(foo[5m])
              * Step: 0s
              * StepExpr: 5m + 1m
                ++ node: 5m + 1m
                  DurationExpr:
                    * Type: scalar
                    * Op: +
                    * LHS: 5m
                    * RHS: 1m
                    * Wrapped: false
              * Range: 0s
              * RangeExpr: 1h + 10m
                ++ node: 1h + 10m
                  DurationExpr:
                    * Type: scalar
                    * Op: +
                    * LHS: 1h
                    * RHS: 10m
                    * Wrapped: false
              * Offset: 0s
                ++ node: rate(foo[5m])
                  Call:
                    * Type: vector
                    * Func: rate
                    * Args: foo[5m]
                      ++ node: foo[5m]
                        Expressions:
                          ++ node: foo[5m]
                            MatrixSelector:
                              * Type: matrix
                              * VectorSelector: foo
                              * Range: 5m0s
