%
% This file is part of AtomVM.
%
% Copyright 2018 Davide Bettio <davide@uninstall.it>
%
% Licensed under the Apache License, Version 2.0 (the "License");
% you may not use this file except in compliance with the License.
% You may obtain a copy of the License at
%
%    http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS,
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
% See the License for the specific language governing permissions and
% limitations under the License.
%
% SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later
%

-module(lowercase).

-export([start/0, lowercase/1]).

start() ->
    (hd(lowercase("N")) - 109) +
        (hd(lowercase("Z")) - 121) * 2 +
        (hd(lowercase("A")) - 96) * 4 +
        (hd(lowercase("d")) - 99) * 8.

lowercase("A") ->
    "a";
lowercase("B") ->
    "b";
lowercase("C") ->
    "c";
lowercase("D") ->
    "d";
lowercase("E") ->
    "e";
lowercase("F") ->
    "f";
lowercase("G") ->
    "g";
lowercase("H") ->
    "h";
lowercase("I") ->
    "i";
lowercase("J") ->
    "j";
lowercase("K") ->
    "k";
lowercase("L") ->
    "l";
lowercase("M") ->
    "m";
lowercase("N") ->
    "n";
lowercase("O") ->
    "o";
lowercase("P") ->
    "p";
lowercase("Q") ->
    "q";
lowercase("R") ->
    "r";
lowercase("S") ->
    "s";
lowercase("T") ->
    "t";
lowercase("U") ->
    "u";
lowercase("V") ->
    "v";
lowercase("W") ->
    "w";
lowercase("X") ->
    "x";
lowercase("Y") ->
    "y";
lowercase("Z") ->
    "z";
lowercase(Any) ->
    Any.
