-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_blueprints | keyword_expectations | keyword_for | 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_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_plus | symbol_pipe | symbol_equals | symbol_dot_dot | whitespace_newline | {whitespace_indent, integer()} | {comment_line, binary()} | {comment_section, binary()} | {identifier, binary()} | e_o_f. -file("src/caffeine_lang/frontend/token.gleam", 55). ?DOC(" Convert token to string for error messages.\n"). -spec to_string(token()) -> binary(). to_string(Tok) -> case Tok of keyword_blueprints -> <<"Blueprints"/utf8>>; keyword_expectations -> <<"Expectations"/utf8>>; keyword_for -> <<"for"/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_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_plus -> <<"+"/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>>; {identifier, Name} -> Name; e_o_f -> <<"end of file"/utf8>> end.