docs: def main():
      """Used for development and testing."""
  
      expr_list = [
          "max(-_.千幸福的笑脸{घोड़ा=馬,  "
          "dn2=dv2,千幸福的笑脸घ=千幸福的笑脸घ}) gte 100 "
          "times 3 && "
          "(min(ເຮືອນ{dn3=dv3,家=дом}) < 10 or sum(biz{dn5=dv5}) >99 and "
          "count(fizzle) lt 0or count(baz) > 1)".decode('utf8'),
  
          "max(foo{hostname=mini-mon,千=千}, 120) > 100 and (max(bar)>100 "
          " or max(biz)>100)".decode('utf8'),
  
          "max(foo)>=100",
  
          "test_metric{this=that, that =  this} < 1",
  
          "max  (  3test_metric5  {  this  =  that  })  lt  5 times    3",
  
          "3test_metric5 lt 3",
  
          "ntp.offset > 1 or ntp.offset < -5",
  
          "max(3test_metric5{it's this=that's it}) lt 5 times 3",
  
          "count(log.error{test=1}, deterministic) > 1.0",
  
          "count(log.error{test=1}, deterministic, 120) > 1.0",
  
          "last(test_metric{hold=here}) < 13",
  
          "count(log.error{test=1}, deterministic, 130) > 1.0",
  
          "count(log.error{test=1}, deterministic) > 1.0 times 0",
      ]
  
      for expr in expr_list:
          print('orig expr: {}'.format(expr.encode('utf8')))
          sub_exprs = []
          try:
              alarm_expr_parser = AlarmExprParser(expr)
              sub_exprs = alarm_expr_parser.sub_expr_list
          except Exception as ex:
              print("Parse failed: {}".format(ex))
          for sub_expr in sub_exprs:
              print('sub expr: {}'.format(
                  sub_expr.fmtd_sub_expr_str.encode('utf8')))
              print('sub_expr dimensions: {}'.format(
                  sub_expr.dimensions_str.encode('utf8')))
              print('sub_expr deterministic: {}'.format(
                  sub_expr.deterministic))
              print('sub_expr period: {}'.format(
                  sub_expr.period))
              print("")
          print("")