Reduct  v1.0.4-3-gdaf0d70
A functional and immutable language.
Loading...
Searching...
No Matches
char_impl.h
Go to the documentation of this file.
1#ifndef REDUCT_CHAR_IMPL_H
2#define REDUCT_CHAR_IMPL_H 1
3
4#include "char.h"
5
7 ['\a'] = {.flags = 0, .upper = '\a', .lower = '\a', .decodeEscape = 0, .encodeEscape = 'a'},
8 ['\b'] = {.flags = 0, .upper = '\b', .lower = '\b', .decodeEscape = 0, .encodeEscape = 'b'},
9 ['\033'] = {.flags = 0, .upper = '\033', .lower = '\033', .decodeEscape = 0, .encodeEscape = 'e'},
10 ['\f'] = {.flags = 0, .upper = '\f', .lower = '\f', .decodeEscape = 0, .encodeEscape = 'f'},
11 ['\v'] = {.flags = 0, .upper = '\v', .lower = '\v', .decodeEscape = 0, .encodeEscape = 'v'},
12 ['\\'] = {.flags = 0, .upper = '\\', .lower = '\\', .decodeEscape = '\\', .encodeEscape = '\\'},
13 ['\''] = {.flags = 0, .upper = '\'', .lower = '\'', .decodeEscape = '\'', .encodeEscape = '\''},
14 ['"'] = {.flags = 0, .upper = '"', .lower = '"', .decodeEscape = '"', .encodeEscape = '"'},
15 [' '] = {.flags = REDUCT_CHAR_WHITESPACE, .upper = ' ', .lower = ' '},
16 ['\t'] = {.flags = REDUCT_CHAR_WHITESPACE, .upper = '\t', .lower = '\t', .decodeEscape = 0, .encodeEscape = 't'},
17 ['\n'] = {.flags = REDUCT_CHAR_WHITESPACE, .upper = '\n', .lower = '\n', .decodeEscape = 0, .encodeEscape = 'n'},
18 ['\r'] = {.flags = REDUCT_CHAR_WHITESPACE, .upper = '\r', .lower = '\r', .decodeEscape = 0, .encodeEscape = 'r'},
19 ['!'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '!', .lower = '!'},
20 ['$'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '$', .lower = '$'},
21 ['%'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '%', .lower = '%'},
22 ['&'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '&', .lower = '&'},
23 ['*'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '*', .lower = '*'},
24 ['+'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '+', .lower = '+'},
25 [','] = {.flags = REDUCT_CHAR_SYMBOL, .upper = ',', .lower = ','},
26 ['-'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '-', .lower = '-'},
27 ['.'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '.', .lower = '.'},
28 ['/'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '/', .lower = '/'},
29 [':'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = ':', .lower = ':'},
30 [';'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = ';', .lower = ';'},
31 ['<'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '<', .lower = '<'},
32 ['='] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '=', .lower = '='},
33 ['>'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '>', .lower = '>'},
34 ['?'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '?', .lower = '?', .decodeEscape = '\?', .encodeEscape = '?'},
35 ['@'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '@', .lower = '@'},
36 ['^'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '^', .lower = '^'},
37 ['_'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '_', .lower = '_'},
38 ['`'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '`', .lower = '`'},
39 ['|'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '|', .lower = '|'},
40 ['~'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '~', .lower = '~'},
41 ['{'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '{', .lower = '{'},
42 ['}'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '}', .lower = '}'},
43 ['['] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '[', .lower = '['},
44 [']'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = ']', .lower = ']'},
45 ['#'] = {.flags = REDUCT_CHAR_SYMBOL, .upper = '#', .lower = '#'},
46 ['0'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '0', .lower = '0', .integer = 0},
47 ['1'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '1', .lower = '1', .integer = 1},
48 ['2'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '2', .lower = '2', .integer = 2},
49 ['3'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '3', .lower = '3', .integer = 3},
50 ['4'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '4', .lower = '4', .integer = 4},
51 ['5'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '5', .lower = '5', .integer = 5},
52 ['6'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '6', .lower = '6', .integer = 6},
53 ['7'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '7', .lower = '7', .integer = 7},
54 ['8'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '8', .lower = '8', .integer = 8},
55 ['9'] = {.flags = REDUCT_CHAR_DIGIT | REDUCT_CHAR_HEX_DIGIT, .upper = '9', .lower = '9', .integer = 9},
56 ['A'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT, .upper = 'A', .lower = 'a', .integer = 10},
57 ['B'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT, .upper = 'B', .lower = 'b', .integer = 11},
58 ['C'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT, .upper = 'C', .lower = 'c', .integer = 12},
59 ['D'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT, .upper = 'D', .lower = 'd', .integer = 13},
60 ['E'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT, .upper = 'E', .lower = 'e', .integer = 14},
61 ['F'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT, .upper = 'F', .lower = 'f', .integer = 15},
62 ['G'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'G', .lower = 'g'},
63 ['H'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'H', .lower = 'h'},
64 ['I'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'I', .lower = 'i'},
65 ['J'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'J', .lower = 'j'},
66 ['K'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'K', .lower = 'k'},
67 ['L'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'L', .lower = 'l'},
68 ['M'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'M', .lower = 'm'},
69 ['N'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'N', .lower = 'n'},
70 ['O'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'O', .lower = 'o'},
71 ['P'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'P', .lower = 'p'},
72 ['Q'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'Q', .lower = 'q'},
73 ['R'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'R', .lower = 'r'},
74 ['S'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'S', .lower = 's'},
75 ['T'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'T', .lower = 't'},
76 ['U'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'U', .lower = 'u'},
77 ['V'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'V', .lower = 'v'},
78 ['W'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'W', .lower = 'w'},
79 ['X'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'X', .lower = 'x'},
80 ['Y'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'Y', .lower = 'y'},
81 ['Z'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'Z', .lower = 'z'},
82 ['a'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT,
83 .upper = 'A',
84 .lower = 'a',
85 .decodeEscape = '\a',
86 .integer = 10},
87 ['b'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT,
88 .upper = 'B',
89 .lower = 'b',
90 .decodeEscape = '\b',
91 .integer = 11},
92 ['c'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT, .upper = 'C', .lower = 'c', .integer = 12},
93 ['d'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT, .upper = 'D', .lower = 'd', .integer = 13},
94 ['e'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT,
95 .upper = 'E',
96 .lower = 'e',
97 .decodeEscape = '\033',
98 .integer = 14},
99 ['f'] = {.flags = REDUCT_CHAR_LETTER | REDUCT_CHAR_HEX_DIGIT,
100 .upper = 'F',
101 .lower = 'f',
102 .decodeEscape = '\f',
103 .integer = 15},
104 ['g'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'G', .lower = 'g'},
105 ['h'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'H', .lower = 'h'},
106 ['i'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'I', .lower = 'i'},
107 ['j'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'J', .lower = 'j'},
108 ['k'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'K', .lower = 'k'},
109 ['l'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'L', .lower = 'l'},
110 ['m'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'M', .lower = 'm'},
111 ['n'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'N', .lower = 'n', .decodeEscape = '\n'},
112 ['o'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'O', .lower = 'o'},
113 ['p'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'P', .lower = 'p'},
114 ['q'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'Q', .lower = 'q'},
115 ['r'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'R', .lower = 'r', .decodeEscape = '\r'},
116 ['s'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'S', .lower = 's'},
117 ['t'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'T', .lower = 't', .decodeEscape = '\t'},
118 ['u'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'U', .lower = 'u'},
119 ['v'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'V', .lower = 'v', .decodeEscape = '\v'},
120 ['w'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'W', .lower = 'w'},
121 ['x'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'X', .lower = 'x'},
122 ['y'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'Y', .lower = 'y'},
123 ['z'] = {.flags = REDUCT_CHAR_LETTER, .upper = 'Z', .lower = 'z'},
124};
125
126#endif
Character handling.
reduct_char_info_t reductCharTable[256]
Global character lookup table.
Definition char_impl.h:6
@ REDUCT_CHAR_DIGIT
Is a decimal digit.
Definition char.h:23
@ REDUCT_CHAR_LETTER
Is a letter.
Definition char.h:22
@ REDUCT_CHAR_HEX_DIGIT
Is a hexidecimal digit.
Definition char.h:26
@ REDUCT_CHAR_SYMBOL
Is a symbol.
Definition char.h:24
@ REDUCT_CHAR_WHITESPACE
Is whitespace.
Definition char.h:25
reduct_char_flags_t flags
Character classification flags.
Definition char.h:35