caffeine_query_language/parser

Types

Comparators for time slice expressions.

pub type Comparator {
  LessThan
  LessThanOrEqualTo
  GreaterThan
  GreaterThanOrEqualTo
}

Constructors

  • LessThan
  • LessThanOrEqualTo
  • GreaterThan
  • GreaterThanOrEqualTo

An expression in the CQL AST, either an operator expression or a primary.

pub type Exp {
  TimeSliceExpr(spec: TimeSliceExp)
  OperatorExpr(
    numerator: Exp,
    denominator: Exp,
    operator: Operator,
  )
  Primary(primary: Primary)
}

Constructors

Container for a parsed expression, used as the top-level parse result.

pub type ExpContainer {
  ExpContainer(exp: Exp)
}

Constructors

  • ExpContainer(exp: Exp)

Arithmetic operators supported in CQL expressions.

pub type Operator {
  Add
  Sub
  Mul
  Div
}

Constructors

  • Add
  • Sub
  • Mul
  • Div

A primary expression, either a word (identifier) or a parenthesized expression.

pub type Primary {
  PrimaryWord(word: Word)
  PrimaryExp(exp: Exp)
}

Constructors

  • PrimaryWord(word: Word)
  • PrimaryExp(exp: Exp)

A complete query containing a single expression.

pub type Query {
  Query(exp: Exp)
}

Constructors

  • Query(exp: Exp)

Time slice specification containing query, comparator, threshold, and interval.

pub type TimeSliceExp {
  TimeSliceExp(
    query: String,
    comparator: Comparator,
    threshold: Float,
    interval_seconds: Float,
  )
}

Constructors

  • TimeSliceExp(
      query: String,
      comparator: Comparator,
      threshold: Float,
      interval_seconds: Float,
    )

A word (identifier) in the expression.

pub type Word {
  Word(value: String)
}

Constructors

  • Word(value: String)

Values

pub fn parse_expr(input: String) -> Result(ExpContainer, String)

Parses a CQL expression string into an ExpContainer. Returns an error if the input cannot be parsed.

Search Document