Current section

Files

Jump to
caffeine_lang src caffeine_lang@cql@generator.erl
Raw

src/caffeine_lang@cql@generator.erl

-module(caffeine_lang@cql@generator).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/cql/generator.gleam").
-export([operator_to_datadog_query/1, denominator_exp_to_datadog_query/1, numerator_exp_to_datadog_query/1, operator_expr_to_datadog_query/3, generate_datadog_query/1, primary_to_datadog_query/1]).
-file("src/caffeine_lang/cql/generator.gleam", 53).
-spec operator_to_datadog_query(caffeine_lang@cql@parser:operator()) -> binary().
operator_to_datadog_query(Operator) ->
case Operator of
add ->
<<"+"/utf8>>;
sub ->
<<"-"/utf8>>;
mul ->
<<"*"/utf8>>;
'div' ->
<<"/"/utf8>>
end.
-file("src/caffeine_lang/cql/generator.gleam", 30).
-spec denominator_exp_to_datadog_query(caffeine_lang@cql@parser:exp()) -> binary().
denominator_exp_to_datadog_query(Exp) ->
numerator_exp_to_datadog_query(Exp).
-file("src/caffeine_lang/cql/generator.gleam", 22).
-spec numerator_exp_to_datadog_query(caffeine_lang@cql@parser:exp()) -> binary().
numerator_exp_to_datadog_query(Exp) ->
case Exp of
{primary, Primary} ->
primary_to_datadog_query(Primary);
{operator_expr, Numerator, Denominator, Operator} ->
operator_expr_to_datadog_query(Numerator, Denominator, Operator)
end.
-file("src/caffeine_lang/cql/generator.gleam", 41).
-spec operator_expr_to_datadog_query(
caffeine_lang@cql@parser:exp(),
caffeine_lang@cql@parser:exp(),
caffeine_lang@cql@parser:operator()
) -> binary().
operator_expr_to_datadog_query(Numerator, Denominator, Operator) ->
<<<<<<<<(numerator_exp_to_datadog_query(Numerator))/binary, " "/utf8>>/binary,
(operator_to_datadog_query(Operator))/binary>>/binary,
" "/utf8>>/binary,
(denominator_exp_to_datadog_query(Denominator))/binary>>.
-file("src/caffeine_lang/cql/generator.gleam", 7).
-spec generate_datadog_query(caffeine_lang@cql@resolver:primitives()) -> binary().
generate_datadog_query(Primitive) ->
case Primitive of
{good_over_total, Numerator, Denominator} ->
<<<<<<<<<<<<<<"query {\n"/utf8, " numerator = \""/utf8>>/binary,
(numerator_exp_to_datadog_query(Numerator))/binary>>/binary,
"\"\n"/utf8>>/binary,
" denominator = \""/utf8>>/binary,
(denominator_exp_to_datadog_query(Denominator))/binary>>/binary,
"\"\n"/utf8>>/binary,
" }\n"/utf8>>
end.
-file("src/caffeine_lang/cql/generator.gleam", 34).
-spec primary_to_datadog_query(caffeine_lang@cql@parser:primary()) -> binary().
primary_to_datadog_query(Primary) ->
case Primary of
{primary_word, Word} ->
erlang:element(2, Word);
{primary_exp, Exp} ->
numerator_exp_to_datadog_query(Exp)
end.