Packages
caffeine_lang
0.0.2
6.3.1
6.3.0
6.2.2
6.2.1
6.2.0
6.1.2
6.1.1
6.1.0
6.0.0
5.6.0
5.5.0
5.4.4
5.4.3
5.4.2
5.4.1
5.4.0
5.3.0
5.2.0
5.1.1
5.1.0
5.0.12
5.0.11
5.0.10
5.0.8
5.0.7
5.0.6
5.0.5
5.0.4
5.0.1
5.0.0
4.10.0
4.9.0
4.8.3
4.8.2
4.8.1
4.8.0
4.7.9
4.7.8
4.7.7
4.7.6
4.7.5
4.6.7
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.0
4.5.1
4.5.0
4.4.4
4.4.3
4.4.1
4.4.0
4.3.7
4.3.6
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.0.2
1.0.1
0.1.0
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.2
0.0.1
A compiler for generating reliability artifacts from service expectation definitions.
Current section
Files
Jump to
Current section
Files
src/caffeine_lang@compiler.erl
-module(caffeine_lang@compiler).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/compiler.gleam").
-export([compile/2]).
-file("src/caffeine_lang/compiler.gleam", 6).
-spec compile(binary(), binary()) -> nil.
compile(Specification_directory, Instantiation_directory) ->
gleam_stdlib:println(<<"1️⃣ Compiling..."/utf8>>),
gleam_stdlib:println(
<<"\tSpecification directory: "/utf8, Specification_directory/binary>>
),
gleam_stdlib:println(
<<"\tInstantiation directory: "/utf8, Instantiation_directory/binary>>
),
Organization_result = caffeine_lang@phase_2@linker@organization@linker:link_specification_and_instantiation(
Specification_directory,
Instantiation_directory
),
case Organization_result of
{ok, Organization} ->
gleam_stdlib:println(<<"2️⃣ Parsed and linked successfully!"/utf8>>),
Result = caffeine_lang@phase_3@semantic:perform_semantic_analysis(
Organization
),
case Result of
{ok, _} ->
gleam_stdlib:println(
<<"3️⃣ Semantic analysis successful!"/utf8>>
),
gleam_stdlib:println(<<"4️⃣ Generating..."/utf8>>),
_ = caffeine_lang@phase_5@smoke_test:generate(
Organization,
<<"test/artifacts/some_organization"/utf8>>
),
gleam_stdlib:println(<<"🎉Generated successfully!"/utf8>>);
{error, E} ->
case E of
{undefined_service_error, _} ->
gleam_stdlib:println_error(
<<"Undefined service error."/utf8>>
);
{undefined_sli_type_error, _} ->
gleam_stdlib:println_error(
<<"Undefined sli type error."/utf8>>
);
{invalid_slo_threshold_error, _} ->
gleam_stdlib:println_error(
<<"Invalid sli threshold error."/utf8>>
);
{duplicate_service_error, _} ->
gleam_stdlib:println_error(
<<"Duplicate service error."/utf8>>
)
end
end;
{error, E@1} ->
gleam_stdlib:println_error(E@1)
end.