31#ifndef FENNEC_INTERPRET_TOKENIZER_H
32#define FENNEC_INTERPRET_TOKENIZER_H
37#include <fennec/string/string.h>
59struct escape_sequence {
60 virtual size_t operator[](
const string& str,
size_t i) = 0;
64 using escseq = escape_sequence*;
65 using escmap = map<char, escape_sequence*>;
87 using token = pair<string, uint8_t>;
90 static constexpr uint8_t token_delimiter = num_token_types;
92 constexpr list<token> operator()(
const string& line) {
94 priority_queue<pair<size_t, uint8_t>> idx;
96 for (
char c : delimiter) {
98 while (i != line.size()) {
99 size_t n = line.find(c, i);
A header containing the definition for a linked list of values.
A header containing the definition for a mapping of keys to values.
::uint8_t uint8_t
Unsigned 8-bit integer.
Definition types.h:272