1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// SafeC Standard Library — ASCII implementation (see ascii.h)
#pragma once
#include <std/encoding/ascii.h>
namespace std {
int ascii_is_valid_bytes([]const char s) {
unsigned long len = s.len;
unsigned long i = 0UL;
while (i < len) {
char c;
unsafe { c = s[i]; }
if ((int)c < 0 || (int)c > 127) { return 0; }
i = i + 1UL;
}
return 1;
}
int ascii_is_valid(const &char s) {
unsigned long i = 0UL;
while (1) {
char c;
unsafe { c = s[i]; }
if (c == (char)0) { return 1; }
if ((int)c < 0 || (int)c > 127) { return 0; }
i = i + 1UL;
}
}
int ascii_is_alpha(char c) {
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
}
int ascii_is_digit(char c) {
return c >= '0' && c <= '9';
}
int ascii_is_alnum(char c) {
return ascii_is_alpha(c) || ascii_is_digit(c);
}
int ascii_is_space(char c) {
return c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\f' || c == '\v';
}
int ascii_is_upper(char c) {
return c >= 'A' && c <= 'Z';
}
int ascii_is_lower(char c) {
return c >= 'a' && c <= 'z';
}
int ascii_is_print(char c) {
return (int)c >= 0x20 && (int)c <= 0x7E;
}
char ascii_to_upper(char c) {
if (ascii_is_lower(c)) { return (char)((int)c - 32); }
return c;
}
char ascii_to_lower(char c) {
if (ascii_is_upper(c)) { return (char)((int)c + 32); }
return c;
}
} // namespace std