Files
weaseljson/src/tables.h

32 lines
759 B
C++

#pragma once
constexpr inline struct Tables {
constexpr Tables() {
whitespace[' '] = true;
whitespace['\n'] = true;
whitespace['\r'] = true;
whitespace['\t'] = true;
for (int i = 0; i < 0x20; ++i) {
invalidStringByte[i] = true;
}
invalidStringByte[0xc0] = true;
invalidStringByte[0xc1] = true;
for (int i = 0xf5; i <= 0xff; ++i) {
invalidStringByte[i] = true;
}
unescape['n'] = '\n';
unescape['r'] = '\r';
unescape['t'] = '\t';
unescape['"'] = '"';
unescape['b'] = '\b';
unescape['f'] = '\f';
unescape['\\'] = '\\';
unescape['/'] = '/';
}
alignas(16) bool whitespace[256]{};
alignas(16) bool invalidStringByte[256]{};
alignas(16) char unescape[256]{};
} tables;