1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/********************************************************************
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * COPYRIGHT:
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Copyright (c) 1999-2002, International Business Machines Corporation and
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * others. All Rights Reserved.
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************/
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/translit.h"
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/normlzr.h"
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass UnaccentTransliterator : public Transliterator {
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru public:
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /**
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru     * Constructor
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru     */
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UnaccentTransliterator();
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /**
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru     * Destructor
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru     */
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    virtual ~UnaccentTransliterator();
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru protected:
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /**
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru     * Implement Transliterator API
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru     */
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    virtual void handleTransliterate(Replaceable& text,
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru                                     UTransPosition& index,
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru                                     UBool incremental) const;
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru private:
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /**
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru     * Unaccent a single character using normalizer.
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru     */
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UChar unaccent(UChar c) const;
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Normalizer normalizer;
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
42