Due to the 30000-character-limit I needed to split in two answers.
This is my first answer.
(The second answer is a continuation of the first answer).
If you wish to upvote, please upvote only one of the two answers. This prevents unfair reputation-gain. If you wish to downvote, dovnvote whichever answer(s) you like to downvote.
If you like, you can use a macro that processes a delimited argument for distingusihing the 64 cases a-z, A-Z, 0-9, ⟨argument empty⟩, ⟨argument none of the further⟩ from each other.
With the example below the macro \makeNum
takes two arguments, the first argument being the character to convert to number, the second argument denoting tokens to be delivered in case of error, i.e., in case the first argument not being one of a-z, A-Z, 0-9.
Forking/branching is done by means of a delimited argument so that no \if..
/\ifcase
...\or
...\else
...\fi
is invoked. This circumstance implies that weird things like \makeNum{\fi Problem!}{⟨error tokens⟩}
yield ⟨error tokens⟩
instead of unexpected/unpredictable behavior.
With the example below argument-delimiters are explicit character-tokens that at definition-time are read and tokenized under standard-catcode-régime. Therefore with \makeNum
's first argument, i.e., with the character-token to convert, you are bound to standard-catcode-régime, i.e., a-z and A-Z must be of category code 11(letter) and 0-9 must be of category code 12(other).
(The binding to standard-catcode-régime can be loosened, e.g., by
- defining a macro
\makeNuminner
similar to what is \makeNum
in the example below and
- a macro
\makeNumfork
similar to what is \makeNumfork
in the example below, but with these two macros character-tokens belonging to argument-delimiters being read and tokenized as (or via \edef
and \noexpand
and \string
being transformed to) character-tokens of category-code 12(other),
- and defining
\makeNum
to apply \string
to the 1st argument before passing it to \makeNuminner
...)
\errorcontextlines=10000
\documentclass{article}
\makeatletter
\@ifdefinable\gobbletoexclam{\long\def\gobbletoexclam#1!{}}%
\newcommand\makeNum[2]{%
% Test if #1 contains exclamation-mark:
\ifcat$\detokenize\expandafter{\gobbletoexclam#1!}$%
\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
{%
% #1 does not contain exclamation-mark:
\makeNumfork
!#1!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{#2}% argument empty
!!#1!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{0}%
!!a!#1!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{1}%
!!a!b!#1!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{2}%
!!a!b!c!#1!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{3}%
!!a!b!c!d!#1!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{4}%
!!a!b!c!d!e!#1!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{5}%
!!a!b!c!d!e!f!#1!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{6}%
!!a!b!c!d!e!f!g!#1!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{7}%
!!a!b!c!d!e!f!g!h!#1!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{8}%
!!a!b!c!d!e!f!g!h!i!#1!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{9}%
!!a!b!c!d!e!f!g!h!i!j!#1!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{10}%
!!a!b!c!d!e!f!g!h!i!j!k!#1!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{11}%
!!a!b!c!d!e!f!g!h!i!j!k!l!#1!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{12}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!#1!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{13}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!#1!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{14}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!#1!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{15}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!#1!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{16}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!#1!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{17}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!#1!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{18}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!#1!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{19}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!#1!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{20}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!#1!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{21}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!#1!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{22}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!#1!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{23}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!#1!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{24}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!#1!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{25}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!#1!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{0}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!#1!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{1}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!#1!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{2}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!#1!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{3}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!#1!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{4}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!#1!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{5}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!#1!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{6}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!#1!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{7}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!#1!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{8}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!#1!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{9}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!#1!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{10}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!#1!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{11}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!#1!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{12}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!#1!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{13}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!#1!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{14}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!#1!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{15}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!#1!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{16}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!#1!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{17}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!#1!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{18}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!#1!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{19}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!#1!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{20}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!#1!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{21}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!#1!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{22}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!#1!Y!Z!0!1!2!3!4!5!6!7!8!9!{23}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!#1!Z!0!1!2!3!4!5!6!7!8!9!{24}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!#1!0!1!2!3!4!5!6!7!8!9!{25}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!#1!1!2!3!4!5!6!7!8!9!{26}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!#1!2!3!4!5!6!7!8!9!{27}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!#1!3!4!5!6!7!8!9!{28}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!#1!4!5!6!7!8!9!{29}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!#1!5!6!7!8!9!{30}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!#1!6!7!8!9!{31}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!#1!7!8!9!{32}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!#1!8!9!{33}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!#1!9!{34}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!#1!{35}%
!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!0!1!2!3!4!5!6!7!8!9!{#2}% argument s.th. else without exclamtion-mark
!!!!%
}{%
% #1 does contain exclamation-mark -> argument s.th. else with exclamtion-mark:
#2%
}%
}%
\@ifdefinable\makeNumfork{%
\long\def\makeNumfork#1!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!%
A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z!%
0!1!2!3!4!5!6!7!8!9!#2#3!!!!{#2}%
}%
% An error-message-command:
\newcommand\makeNumerrordefault{%
%\PackageError{Package-Name}{Invalid argument for \string\makeNum}{Only values a-z, 0-9 are allowed!}%
\GenericError{(macro \string\makeNum)\@spaces \@spaces \@spaces \@spaces }%
{macro \string\makeNum Error: Invalid argument for \string\makeNum}%
{See the comments for explanation.}%
{Only values a-z, A-Z, 0-9 are allowed!}%
}%
\makeatother
\begin{document}
\vspace*{-3cm}%
\footnotesize
\noindent
\verb|\makeNum{a}{\makeNumerrordefault}| yields: \makeNum{a}{\makeNumerrordefault}\\
\verb|\makeNum{A}{\makeNumerrordefault}| yields: \makeNum{A}{\makeNumerrordefault}\\
\verb|\makeNum{b}{\makeNumerrordefault}| yields: \makeNum{b}{\makeNumerrordefault}\\
\verb|\makeNum{B}{\makeNumerrordefault}| yields: \makeNum{B}{\makeNumerrordefault}\\
\verb|\makeNum{c}{\makeNumerrordefault}| yields: \makeNum{c}{\makeNumerrordefault}\\
\verb|\makeNum{C}{\makeNumerrordefault}| yields: \makeNum{C}{\makeNumerrordefault}\\
\verb|\makeNum{d}{\makeNumerrordefault}| yields: \makeNum{d}{\makeNumerrordefault}\\
\verb|\makeNum{D}{\makeNumerrordefault}| yields: \makeNum{D}{\makeNumerrordefault}\\
\verb|\makeNum{e}{\makeNumerrordefault}| yields: \makeNum{e}{\makeNumerrordefault}\\
\verb|\makeNum{E}{\makeNumerrordefault}| yields: \makeNum{E}{\makeNumerrordefault}\\
\verb|\makeNum{f}{\makeNumerrordefault}| yields: \makeNum{f}{\makeNumerrordefault}\\
\verb|\makeNum{F}{\makeNumerrordefault}| yields: \makeNum{F}{\makeNumerrordefault}\\
\verb|\makeNum{g}{\makeNumerrordefault}| yields: \makeNum{g}{\makeNumerrordefault}\\
\verb|\makeNum{G}{\makeNumerrordefault}| yields: \makeNum{G}{\makeNumerrordefault}\\
\verb|\makeNum{h}{\makeNumerrordefault}| yields: \makeNum{h}{\makeNumerrordefault}\\
\verb|\makeNum{H}{\makeNumerrordefault}| yields: \makeNum{H}{\makeNumerrordefault}\\
\verb|\makeNum{i}{\makeNumerrordefault}| yields: \makeNum{i}{\makeNumerrordefault}\\
\verb|\makeNum{I}{\makeNumerrordefault}| yields: \makeNum{I}{\makeNumerrordefault}\\
\verb|\makeNum{j}{\makeNumerrordefault}| yields: \makeNum{j}{\makeNumerrordefault}\\
\verb|\makeNum{J}{\makeNumerrordefault}| yields: \makeNum{J}{\makeNumerrordefault}\\
\verb|\makeNum{k}{\makeNumerrordefault}| yields: \makeNum{k}{\makeNumerrordefault}\\
\verb|\makeNum{K}{\makeNumerrordefault}| yields: \makeNum{K}{\makeNumerrordefault}\\
\verb|\makeNum{l}{\makeNumerrordefault}| yields: \makeNum{l}{\makeNumerrordefault}\\
\verb|\makeNum{L}{\makeNumerrordefault}| yields: \makeNum{L}{\makeNumerrordefault}\\
\verb|\makeNum{m}{\makeNumerrordefault}| yields: \makeNum{m}{\makeNumerrordefault}\\
\verb|\makeNum{M}{\makeNumerrordefault}| yields: \makeNum{M}{\makeNumerrordefault}\\
\verb|\makeNum{n}{\makeNumerrordefault}| yields: \makeNum{n}{\makeNumerrordefault}\\
\verb|\makeNum{N}{\makeNumerrordefault}| yields: \makeNum{N}{\makeNumerrordefault}\\
\verb|\makeNum{o}{\makeNumerrordefault}| yields: \makeNum{o}{\makeNumerrordefault}\\
\verb|\makeNum{O}{\makeNumerrordefault}| yields: \makeNum{O}{\makeNumerrordefault}\\
\verb|\makeNum{p}{\makeNumerrordefault}| yields: \makeNum{p}{\makeNumerrordefault}\\
\verb|\makeNum{P}{\makeNumerrordefault}| yields: \makeNum{P}{\makeNumerrordefault}\\
\verb|\makeNum{q}{\makeNumerrordefault}| yields: \makeNum{q}{\makeNumerrordefault}\\
\verb|\makeNum{Q}{\makeNumerrordefault}| yields: \makeNum{Q}{\makeNumerrordefault}\\
\verb|\makeNum{r}{\makeNumerrordefault}| yields: \makeNum{r}{\makeNumerrordefault}\\
\verb|\makeNum{R}{\makeNumerrordefault}| yields: \makeNum{R}{\makeNumerrordefault}\\
\verb|\makeNum{s}{\makeNumerrordefault}| yields: \makeNum{s}{\makeNumerrordefault}\\
\verb|\makeNum{S}{\makeNumerrordefault}| yields: \makeNum{S}{\makeNumerrordefault}\\
\verb|\makeNum{t}{\makeNumerrordefault}| yields: \makeNum{t}{\makeNumerrordefault}\\
\verb|\makeNum{T}{\makeNumerrordefault}| yields: \makeNum{T}{\makeNumerrordefault}\\
\verb|\makeNum{u}{\makeNumerrordefault}| yields: \makeNum{u}{\makeNumerrordefault}\\
\verb|\makeNum{U}{\makeNumerrordefault}| yields: \makeNum{U}{\makeNumerrordefault}\\
\verb|\makeNum{v}{\makeNumerrordefault}| yields: \makeNum{v}{\makeNumerrordefault}\\
\verb|\makeNum{V}{\makeNumerrordefault}| yields: \makeNum{V}{\makeNumerrordefault}\\
\verb|\makeNum{w}{\makeNumerrordefault}| yields: \makeNum{w}{\makeNumerrordefault}\\
\verb|\makeNum{W}{\makeNumerrordefault}| yields: \makeNum{W}{\makeNumerrordefault}\\
\verb|\makeNum{x}{\makeNumerrordefault}| yields: \makeNum{x}{\makeNumerrordefault}\\
\verb|\makeNum{X}{\makeNumerrordefault}| yields: \makeNum{X}{\makeNumerrordefault}\\
\verb|\makeNum{y}{\makeNumerrordefault}| yields: \makeNum{y}{\makeNumerrordefault}\\
\verb|\makeNum{Y}{\makeNumerrordefault}| yields: \makeNum{Y}{\makeNumerrordefault}\\
\verb|\makeNum{z}{\makeNumerrordefault}| yields: \makeNum{z}{\makeNumerrordefault}\\
\verb|\makeNum{Z}{\makeNumerrordefault}| yields: \makeNum{Z}{\makeNumerrordefault}\\
\verb|\makeNum{0}{\makeNumerrordefault}| yields: \makeNum{0}{\makeNumerrordefault}\\
\verb|\makeNum{1}{\makeNumerrordefault}| yields: \makeNum{1}{\makeNumerrordefault}\\
\verb|\makeNum{2}{\makeNumerrordefault}| yields: \makeNum{2}{\makeNumerrordefault}\\
\verb|\makeNum{3}{\makeNumerrordefault}| yields: \makeNum{3}{\makeNumerrordefault}\\
\verb|\makeNum{4}{\makeNumerrordefault}| yields: \makeNum{4}{\makeNumerrordefault}\\
\verb|\makeNum{5}{\makeNumerrordefault}| yields: \makeNum{5}{\makeNumerrordefault}\\
\verb|\makeNum{6}{\makeNumerrordefault}| yields: \makeNum{6}{\makeNumerrordefault}\\
\verb|\makeNum{7}{\makeNumerrordefault}| yields: \makeNum{7}{\makeNumerrordefault}\\
\verb|\makeNum{8}{\makeNumerrordefault}| yields: \makeNum{8}{\makeNumerrordefault}\\
\verb|\makeNum{9}{\makeNumerrordefault}| yields: \makeNum{9}{\makeNumerrordefault}\\
% \makeNumerrordefault delivers an error-message. Instead we want the phrase "Error-Tokens".
% \verb|\makeNum{&}{\makeNumerrordefault}| yields: \makeNum{&}{\makeNumerrordefault}\\
\verb|\makeNum{&}{Error-Tokens.}| yields: \makeNum{&}{Error-Tokens.}\\
% \verb|\makeNum{What?}{\makeNumerrordefault}| yields: \makeNum{What?}{\makeNumerrordefault}\\
\verb|\makeNum{What?}{Error-Tokens.}| yields: \makeNum{What?}{Error-Tokens.}\\
% \verb|\makeNum{!a!b}{\makeNumerrordefault}| yields: \makeNum{!a!b}{\makeNumerrordefault}\\
\verb|\makeNum{!a!b}{Error-Tokens.}| yields: \makeNum{!a!b}{Error-Tokens.}
\end{document}

Due to the 30000-character-limit I needed to split in two answers.
This is my first answer.
(The second answer is a continuation of the first answer).