-module(caffeine_lang@analysis@semantic_analyzer). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/caffeine_lang/analysis/semantic_analyzer.gleam"). -export([resolve_indicators/1, resolve_intermediate_representations/1]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -file("src/caffeine_lang/analysis/semantic_analyzer.gleam", 33). ?DOC(false). -spec resolve_indicators( caffeine_lang@linker@ir:intermediate_representation(caffeine_lang@linker@ir:deps_validated()) ) -> {ok, caffeine_lang@linker@ir:intermediate_representation(caffeine_lang@linker@ir:resolved())} | {error, caffeine_lang@errors:compilation_error()}. resolve_indicators(Ir) -> case erlang:element(7, Ir) of {some, datadog} -> caffeine_lang@codegen@datadog:resolve_indicators(Ir); {some, honeycomb} -> {ok, caffeine_lang@linker@ir:promote(Ir)}; {some, dynatrace} -> {ok, caffeine_lang@linker@ir:promote(Ir)}; {some, new_relic} -> {ok, caffeine_lang@linker@ir:promote(Ir)}; none -> {error, caffeine_lang@errors:semantic_analysis_template_resolution_error( <<<<"expectation '"/utf8, (caffeine_lang@linker@ir:ir_to_identifier(Ir))/binary>>/binary, "' - no vendor resolved"/utf8>> )} end. -file("src/caffeine_lang/analysis/semantic_analyzer.gleam", 16). ?DOC(false). -spec resolve_intermediate_representations( list(caffeine_lang@linker@ir:intermediate_representation(caffeine_lang@linker@ir:deps_validated())) ) -> {ok, list(caffeine_lang@linker@ir:intermediate_representation(caffeine_lang@linker@ir:resolved()))} | {error, caffeine_lang@errors:compilation_error()}. resolve_intermediate_representations(Irs) -> _pipe = Irs, _pipe@1 = gleam@list:map( _pipe, fun(Ir) -> gleam@bool:guard( not gleam@list:contains(erlang:element(4, Ir), s_l_o), {ok, caffeine_lang@linker@ir:promote(Ir)}, fun() -> resolve_indicators(Ir) end ) end ), caffeine_lang@errors:from_results(_pipe@1).