-module(caffeine_query_language@ast). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/caffeine_query_language/ast.gleam"). -export_type([cql_parsed/0, substituted/0, operator/0, comparator/0, time_slice_exp/0, exp/1, primary/1, word/0]). -type cql_parsed() :: any(). -type substituted() :: any(). -type operator() :: add | sub | mul | 'div'. -type comparator() :: less_than | less_than_or_equal_to | greater_than | greater_than_or_equal_to. -type time_slice_exp() :: {time_slice_exp, binary(), comparator(), float(), float()}. -type exp(HAX) :: {time_slice_expr, time_slice_exp()} | {operator_expr, exp(HAX), exp(HAX), operator()} | {primary, primary(HAX)}. -type primary(HAY) :: {primary_word, word()} | {primary_exp, exp(HAY)}. -type word() :: {word, binary()}.