Current section

Files

Jump to
caffeine_lang src caffeine_lang@frontend@token.erl
Raw

src/caffeine_lang@frontend@token.erl

-module(caffeine_lang@frontend@token).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/frontend/token.gleam").
-export([to_string/1]).
-export_type([positioned_token/0, token/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type positioned_token() :: {positioned_token, token(), integer(), integer()}.
-type token() :: keyword_success_rate |
keyword_time_slice |
keyword_assumes |
keyword_guarantees |
keyword_over |
keyword_window |
keyword_as |
keyword_measured |
keyword_by |
keyword_with |
keyword_below |
keyword_hard |
keyword_soft |
keyword_dependency |
keyword_on |
keyword_extends |
keyword_requires |
keyword_provides |
keyword_in |
keyword_x |
keyword_string |
keyword_integer |
keyword_float |
keyword_boolean |
keyword_list |
keyword_dict |
keyword_optional |
keyword_defaulted |
keyword_type |
keyword_u_r_l |
keyword_percentage |
{literal_string, binary()} |
{literal_integer, integer()} |
{literal_float, float()} |
{literal_percentage, float()} |
{literal_duration, float(), binary()} |
literal_true |
literal_false |
symbol_left_brace |
symbol_right_brace |
symbol_left_paren |
symbol_right_paren |
symbol_left_bracket |
symbol_right_bracket |
symbol_colon |
symbol_comma |
symbol_star |
symbol_pipe |
symbol_equals |
symbol_dot_dot |
whitespace_newline |
{whitespace_indent, integer()} |
{comment_line, binary()} |
{comment_section, binary()} |
{comment_doc, binary()} |
{identifier, binary()} |
e_o_f.
-file("src/caffeine_lang/frontend/token.gleam", 72).
?DOC(false).
-spec to_string(token()) -> binary().
to_string(Tok) ->
case Tok of
keyword_success_rate ->
<<"success_rate"/utf8>>;
keyword_time_slice ->
<<"time_slice"/utf8>>;
keyword_assumes ->
<<"Assumes"/utf8>>;
keyword_guarantees ->
<<"Guarantees"/utf8>>;
keyword_over ->
<<"over"/utf8>>;
keyword_window ->
<<"window"/utf8>>;
keyword_as ->
<<"as"/utf8>>;
keyword_measured ->
<<"measured"/utf8>>;
keyword_by ->
<<"by"/utf8>>;
keyword_with ->
<<"with"/utf8>>;
keyword_below ->
<<"below"/utf8>>;
keyword_hard ->
<<"hard"/utf8>>;
keyword_soft ->
<<"soft"/utf8>>;
keyword_dependency ->
<<"dependency"/utf8>>;
keyword_on ->
<<"on"/utf8>>;
keyword_extends ->
<<"extends"/utf8>>;
keyword_requires ->
<<"Requires"/utf8>>;
keyword_provides ->
<<"Provides"/utf8>>;
keyword_in ->
<<"in"/utf8>>;
keyword_x ->
<<"x"/utf8>>;
keyword_string ->
<<"String"/utf8>>;
keyword_integer ->
<<"Integer"/utf8>>;
keyword_float ->
<<"Float"/utf8>>;
keyword_boolean ->
<<"Boolean"/utf8>>;
keyword_list ->
<<"List"/utf8>>;
keyword_dict ->
<<"Dict"/utf8>>;
keyword_optional ->
<<"Optional"/utf8>>;
keyword_defaulted ->
<<"Defaulted"/utf8>>;
keyword_type ->
<<"Type"/utf8>>;
keyword_u_r_l ->
<<"URL"/utf8>>;
keyword_percentage ->
<<"Percentage"/utf8>>;
{literal_string, S} ->
<<<<"\""/utf8, S/binary>>/binary, "\""/utf8>>;
{literal_integer, _} ->
<<"integer"/utf8>>;
{literal_float, _} ->
<<"float"/utf8>>;
{literal_percentage, _} ->
<<"percentage"/utf8>>;
{literal_duration, _, _} ->
<<"duration"/utf8>>;
literal_true ->
<<"true"/utf8>>;
literal_false ->
<<"false"/utf8>>;
symbol_left_brace ->
<<"{"/utf8>>;
symbol_right_brace ->
<<"}"/utf8>>;
symbol_left_paren ->
<<"("/utf8>>;
symbol_right_paren ->
<<")"/utf8>>;
symbol_left_bracket ->
<<"["/utf8>>;
symbol_right_bracket ->
<<"]"/utf8>>;
symbol_colon ->
<<":"/utf8>>;
symbol_comma ->
<<","/utf8>>;
symbol_star ->
<<"*"/utf8>>;
symbol_pipe ->
<<"|"/utf8>>;
symbol_equals ->
<<"="/utf8>>;
symbol_dot_dot ->
<<".."/utf8>>;
whitespace_newline ->
<<"newline"/utf8>>;
{whitespace_indent, _} ->
<<"indent"/utf8>>;
{comment_line, _} ->
<<"comment"/utf8>>;
{comment_section, _} ->
<<"section comment"/utf8>>;
{comment_doc, _} ->
<<"doc comment"/utf8>>;
{identifier, Name} ->
Name;
e_o_f ->
<<"end of file"/utf8>>
end.