github.com/vipernet-xyz/tm@v0.34.24/libs/pubsub/query/query.peg (about)

     1  package query
     2  
     3  type QueryParser Peg {
     4  }
     5  
     6  e <- '\"' condition ( ' '+ and ' '+ condition )* '\"' !.
     7  
     8  condition <- tag ' '* (le ' '* (number / time / date)
     9                        / ge ' '* (number / time / date)
    10                        / l ' '* (number / time / date)
    11                        / g ' '* (number / time / date)
    12                        / equal ' '* (number / time / date / value)
    13                        / contains ' '* value
    14                        / exists
    15                        )
    16  
    17  tag <- < (![ \t\n\r\\()"'=><] .)+ >
    18  value <- < '\'' (!["'] .)* '\''>
    19  number <- < ('0'
    20             / [1-9] digit* ('.' digit*)?) >
    21  digit <- [0-9]
    22  time <- "TIME " < year '-' month '-' day 'T' digit digit ':' digit digit ':' digit digit (('-' / '+') digit digit ':' digit digit / 'Z') >
    23  date <- "DATE " < year '-' month '-' day >
    24  year <- ('1' / '2') digit digit digit
    25  month <- ('0' / '1') digit
    26  day <- ('0' / '1' / '2' / '3') digit
    27  and <- "AND"
    28  
    29  equal <- "="
    30  contains <- "CONTAINS"
    31  exists <- "EXISTS"
    32  le <- "<="
    33  ge <- ">="
    34  l <- "<"
    35  g <- ">"