summaryrefslogtreecommitdiff
path: root/src/PYPinyinParser.h
blob: 0777ebaffe17de75f3abb7b7f65f2d90365642d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/* vim:set et ts=4 sts=4:
 *
 * ibus-pinyin - The Chinese PinYin engine for IBus
 *
 * Copyright (c) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
#ifndef __PY_PARSER_H_
#define __PY_PARSER_H_

#include <glib.h>
#include "PYString.h"
#include "PYPinyinArray.h"

namespace PY {

class PinyinParser {
public:
    static guint parse (const String &pinyin,      // pinyin string
                        gint          len,         // length of pinyin string
                        guint         option,      // option
                        PinyinArray  &result,      // store pinyin in result
                        guint         max);        // max length of the result
    static const Pinyin * isPinyin (gint sheng, gint yun, guint option);
    static guint parseBopomofo (const std::wstring  &bopomofo,
                                gint                 len,
                                guint                option,
                                PinyinArray         &result,
                                guint                max);
    static gboolean isBopomofoToneChar (const wchar_t ch);

};

};
#endif