-module(caffeine_lang). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/caffeine_lang.gleam"). -export([main/0]). -file("src/caffeine_lang.gleam", 5). -spec print_usage() -> nil. print_usage() -> gleam_stdlib:println(<<"Caffeine SLI/SLO compiler"/utf8>>), gleam_stdlib:println(<<""/utf8>>), gleam_stdlib:println(<<"Usage:"/utf8>>), gleam_stdlib:println( <<" caffeine compile "/utf8>> ), gleam_stdlib:println(<<""/utf8>>), gleam_stdlib:println(<<"Arguments:"/utf8>>), gleam_stdlib:println( <<" specification_directory Directory containing specification files"/utf8>> ), gleam_stdlib:println( <<" instantiation_directory Directory containing instantiation files"/utf8>> ), gleam_stdlib:println( <<" output_directory Directory to output compiled files"/utf8>> ). -file("src/caffeine_lang.gleam", 23). -spec main() -> nil. main() -> Args = erlang:element(4, argv:load()), case Args of [<<"compile"/utf8>>, Spec_dir, Inst_dir, Output_dir] -> caffeine_lang@compiler:compile(Spec_dir, Inst_dir, Output_dir); [<<"compile"/utf8>>] -> gleam_stdlib:println_error( <<"Error: compile command requires 3 arguments"/utf8>> ), print_usage(); [<<"compile"/utf8>> | _] -> gleam_stdlib:println_error( <<"Error: compile command requires exactly 3 arguments"/utf8>> ), print_usage(); [<<"--help"/utf8>>] -> print_usage(); [<<"-h"/utf8>>] -> print_usage(); [] -> print_usage(); _ -> gleam_stdlib:println_error(<<"Error: unknown command"/utf8>>), print_usage() end.