1/*
2 * Copyright 2008-2013, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef TERMINAL_CHAR_CLASSIFIER_H
6#define TERMINAL_CHAR_CLASSIFIER_H
7
8
9#include <vector>
10
11#include "UTF8Char.h"
12
13
14enum {
15	CHAR_TYPE_SPACE,
16	CHAR_TYPE_WORD_CHAR,
17	CHAR_TYPE_WORD_DELIMITER
18};
19
20
21struct UTF8Char;
22
23class TerminalCharClassifier {
24public:
25	virtual						~TerminalCharClassifier();
26
27	virtual	int					Classify(const UTF8Char& character) = 0;
28};
29
30
31class DefaultCharClassifier: public TerminalCharClassifier {
32public:
33								DefaultCharClassifier(
34									const char* additionalWordChars);
35
36	virtual	int					Classify(const UTF8Char& character);
37
38private:
39			std::vector<UTF8Char> fAdditionalWordChars;
40};
41
42
43#endif	// TERMINAL_CHAR_CLASSIFIER_H
44