fep/aknfep/src/AknFepZhuyinAnalyserDb.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 19 Aug 2010 10:15:25 +0300
branchRCL_3
changeset 19 ac7e4d1d9209
parent 0 eb1f2e154e89
permissions -rw-r--r--
Revision: 201031 Kit: 201033

/*
* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0""
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:            Implementation of the vkb data manager
*
*/













#include "AknFepZhuyinAnalyserDb.h"
// constant define 

// Zhuyin DB data
const TUint16 KZhuyinBase = 0x3105;
const TInt16  KZhuyinElementCount = 37;
const TUint16 KZhuyinSpellsLength[] = 
    {
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 
    0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 
    0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
    0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 
    0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 0x2, 0x3, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
    0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
    0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
    0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
    0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
    0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
    0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 
    0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 
    0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 
    0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 
    0x1, 0x1, 0x1, 0x1, 0x1, 0x2, 0x2, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x2, 
    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x2, 
    0x2, 0x2
    };
const TUint16 KZhuyinSpellsLib[] =
    {
    0x3105, 0x311a, 
    0x3105, 0x311b, 
    0x3105, 0x311e, 
    0x3105, 0x311f, 
    0x3105, 0x3120, 
    0x3105, 0x3122, 
    0x3105, 0x3123, 
    0x3105, 0x3124, 
    0x3105, 0x3125, 
    0x3105, 0x3127, 
    0x3105, 0x3127, 0x311d, 
    0x3105, 0x3127, 0x3120, 
    0x3105, 0x3127, 0x3122, 
    0x3105, 0x3127, 0x3123, 
    0x3105, 0x3127, 0x3125, 
    0x3105, 0x3128, 
    0x3106, 0x311a, 
    0x3106, 0x311b, 
    0x3106, 0x311e, 
    0x3106, 0x311f, 
    0x3106, 0x3120, 
    0x3106, 0x3121, 
    0x3106, 0x3122, 
    0x3106, 0x3123, 
    0x3106, 0x3124, 
    0x3106, 0x3125, 
    0x3106, 0x3127, 
    0x3106, 0x3127, 0x311d, 
    0x3106, 0x3127, 0x3120, 
    0x3106, 0x3127, 0x3122, 
    0x3106, 0x3127, 0x3123, 
    0x3106, 0x3127, 0x3125, 
    0x3106, 0x3128, 
    0x3107, 0x311a, 
    0x3107, 0x311b, 
    0x3107, 0x311c, 
    0x3107, 0x311e, 
    0x3107, 0x311f, 
    0x3107, 0x3120, 
    0x3107, 0x3121, 
    0x3107, 0x3122, 
    0x3107, 0x3123, 
    0x3107, 0x3124, 
    0x3107, 0x3125, 
    0x3107, 0x3127, 
    0x3107, 0x3127, 0x311d, 
    0x3107, 0x3127, 0x3120, 
    0x3107, 0x3127, 0x3121, 
    0x3107, 0x3127, 0x3122, 
    0x3107, 0x3127, 0x3123, 
    0x3107, 0x3127, 0x3125, 
    0x3107, 0x3128, 
    0x3108, 0x311a, 
    0x3108, 0x311b, 
    0x3108, 0x311f, 
    0x3108, 0x3121, 
    0x3108, 0x3122, 
    0x3108, 0x3123, 
    0x3108, 0x3124, 
    0x3108, 0x3125, 
    0x3108, 0x3128, 
    0x3109, 0x311a, 
    0x3109, 0x311c, 
    0x3109, 0x311e, 
    0x3109, 0x311f, 
    0x3109, 0x3120, 
    0x3109, 0x3121, 
    0x3109, 0x3122, 
    0x3109, 0x3124, 
    0x3109, 0x3125, 
    0x3109, 0x3127, 
    0x3109, 0x3127, 0x311d, 
    0x3109, 0x3127, 0x3120, 
    0x3109, 0x3127, 0x3121, 
    0x3109, 0x3127, 0x3122, 
    0x3109, 0x3127, 0x3125, 
    0x3109, 0x3128, 
    0x3109, 0x3128, 0x311b, 
    0x3109, 0x3128, 0x311f, 
    0x3109, 0x3128, 0x3122, 
    0x3109, 0x3128, 0x3123, 
    0x3109, 0x3128, 0x3125, 
    0x310a, 0x311a, 
    0x310a, 0x311c, 
    0x310a, 0x311e, 
    0x310a, 0x3120, 
    0x310a, 0x3121, 
    0x310a, 0x3122, 
    0x310a, 0x3124, 
    0x310a, 0x3125, 
    0x310a, 0x3127, 
    0x310a, 0x3127, 0x311d, 
    0x310a, 0x3127, 0x3120, 
    0x310a, 0x3127, 0x3122, 
    0x310a, 0x3127, 0x3125, 
    0x310a, 0x3128, 
    0x310a, 0x3128, 0x311b, 
    0x310a, 0x3128, 0x311f, 
    0x310a, 0x3128, 0x3122, 
    0x310a, 0x3128, 0x3123, 
    0x310a, 0x3128, 0x3125, 
    0x310b, 0x311a, 
    0x310b, 0x311c, 
    0x310b, 0x311e, 
    0x310b, 0x311f, 
    0x310b, 0x3120, 
    0x310b, 0x3121, 
    0x310b, 0x3122, 
    0x310b, 0x3123, 
    0x310b, 0x3124, 
    0x310b, 0x3125, 
    0x310b, 0x3127, 
    0x310b, 0x3127, 0x311d, 
    0x310b, 0x3127, 0x3120, 
    0x310b, 0x3127, 0x3121, 
    0x310b, 0x3127, 0x3122, 
    0x310b, 0x3127, 0x3123, 
    0x310b, 0x3127, 0x3124, 
    0x310b, 0x3127, 0x3125, 
    0x310b, 0x3128, 
    0x310b, 0x3128, 0x311b, 
    0x310b, 0x3128, 0x3122, 
    0x310b, 0x3128, 0x3125, 
    0x310b, 0x3129, 
    0x310b, 0x3129, 0x311d, 
    0x310c, 0x311a, 
    0x310c, 0x311c, 
    0x310c, 0x311e, 
    0x310c, 0x311f, 
    0x310c, 0x3120, 
    0x310c, 0x3121, 
    0x310c, 0x3122, 
    0x310c, 0x3124, 
    0x310c, 0x3125, 
    0x310c, 0x3127, 
    0x310c, 0x3127, 0x311a, 
    0x310c, 0x3127, 0x311d, 
    0x310c, 0x3127, 0x3120, 
    0x310c, 0x3127, 0x3121, 
    0x310c, 0x3127, 0x3122, 
    0x310c, 0x3127, 0x3123, 
    0x310c, 0x3127, 0x3124, 
    0x310c, 0x3127, 0x3125, 
    0x310c, 0x3128, 
    0x310c, 0x3128, 0x311b, 
    0x310c, 0x3128, 0x3122, 
    0x310c, 0x3128, 0x3123, 
    0x310c, 0x3128, 0x3125, 
    0x310c, 0x3129, 
    0x310c, 0x3129, 0x311d, 
    0x310c, 0x3129, 0x3122, 
    0x310d, 0x311a, 
    0x310d, 0x311c, 
    0x310d, 0x311e, 
    0x310d, 0x311f, 
    0x310d, 0x3120, 
    0x310d, 0x3121, 
    0x310d, 0x3122, 
    0x310d, 0x3123, 
    0x310d, 0x3124, 
    0x310d, 0x3125, 
    0x310d, 0x3128, 
    0x310d, 0x3128, 0x311a, 
    0x310d, 0x3128, 0x311b, 
    0x310d, 0x3128, 0x311e, 
    0x310d, 0x3128, 0x311f, 
    0x310d, 0x3128, 0x3122, 
    0x310d, 0x3128, 0x3123, 
    0x310d, 0x3128, 0x3124, 
    0x310d, 0x3128, 0x3125, 
    0x310e, 0x311a, 
    0x310e, 0x311c, 
    0x310e, 0x311e, 
    0x310e, 0x3120, 
    0x310e, 0x3121, 
    0x310e, 0x3122, 
    0x310e, 0x3123, 
    0x310e, 0x3124, 
    0x310e, 0x3125, 
    0x310e, 0x3128, 
    0x310e, 0x3128, 0x311a, 
    0x310e, 0x3128, 0x311b, 
    0x310e, 0x3128, 0x311e, 
    0x310e, 0x3128, 0x311f, 
    0x310e, 0x3128, 0x3122, 
    0x310e, 0x3128, 0x3123, 
    0x310e, 0x3128, 0x3124, 
    0x310e, 0x3128, 0x3125, 
    0x310f, 0x311a, 
    0x310f, 0x311c, 
    0x310f, 0x311e, 
    0x310f, 0x311f, 
    0x310f, 0x3120, 
    0x310f, 0x3121, 
    0x310f, 0x3122, 
    0x310f, 0x3123, 
    0x310f, 0x3124, 
    0x310f, 0x3125, 
    0x310f, 0x3128, 
    0x310f, 0x3128, 0x311a, 
    0x310f, 0x3128, 0x311b, 
    0x310f, 0x3128, 0x311e, 
    0x310f, 0x3128, 0x311f, 
    0x310f, 0x3128, 0x3122, 
    0x310f, 0x3128, 0x3123, 
    0x310f, 0x3128, 0x3124, 
    0x310f, 0x3128, 0x3125, 
    0x3110, 0x3127, 
    0x3110, 0x3127, 0x311a, 
    0x3110, 0x3127, 0x311d, 
    0x3110, 0x3127, 0x3120, 
    0x3110, 0x3127, 0x3121, 
    0x3110, 0x3127, 0x3122, 
    0x3110, 0x3127, 0x3123, 
    0x3110, 0x3127, 0x3124, 
    0x3110, 0x3127, 0x3125, 
    0x3110, 0x3129, 
    0x3110, 0x3129, 0x311d, 
    0x3110, 0x3129, 0x3122, 
    0x3110, 0x3129, 0x3123, 
    0x3110, 0x3129, 0x3125, 
    0x3111, 0x3127, 
    0x3111, 0x3127, 0x311a, 
    0x3111, 0x3127, 0x311d, 
    0x3111, 0x3127, 0x3120, 
    0x3111, 0x3127, 0x3121, 
    0x3111, 0x3127, 0x3122, 
    0x3111, 0x3127, 0x3123, 
    0x3111, 0x3127, 0x3124, 
    0x3111, 0x3127, 0x3125, 
    0x3111, 0x3129, 
    0x3111, 0x3129, 0x311d, 
    0x3111, 0x3129, 0x3122, 
    0x3111, 0x3129, 0x3123, 
    0x3111, 0x3129, 0x3125, 
    0x3112, 0x3127, 
    0x3112, 0x3127, 0x311a, 
    0x3112, 0x3127, 0x311d, 
    0x3112, 0x3127, 0x3120, 
    0x3112, 0x3127, 0x3121, 
    0x3112, 0x3127, 0x3122, 
    0x3112, 0x3127, 0x3123, 
    0x3112, 0x3127, 0x3124, 
    0x3112, 0x3127, 0x3125, 
    0x3112, 0x3129, 
    0x3112, 0x3129, 0x311d, 
    0x3112, 0x3129, 0x3122, 
    0x3112, 0x3129, 0x3123, 
    0x3112, 0x3129, 0x3125, 
    0x3113, 
    0x3113, 0x311a, 
    0x3113, 0x311c, 
    0x3113, 0x311e, 
    0x3113, 0x311f, 
    0x3113, 0x3120, 
    0x3113, 0x3121, 
    0x3113, 0x3122, 
    0x3113, 0x3123, 
    0x3113, 0x3124, 
    0x3113, 0x3125, 
    0x3113, 0x3128, 
    0x3113, 0x3128, 0x311a, 
    0x3113, 0x3128, 0x311b, 
    0x3113, 0x3128, 0x311e, 
    0x3113, 0x3128, 0x311f, 
    0x3113, 0x3128, 0x3122, 
    0x3113, 0x3128, 0x3123, 
    0x3113, 0x3128, 0x3124, 
    0x3113, 0x3128, 0x3125, 
    0x3114, 
    0x3114, 0x311a, 
    0x3114, 0x311c, 
    0x3114, 0x311e, 
    0x3114, 0x3120, 
    0x3114, 0x3121, 
    0x3114, 0x3122, 
    0x3114, 0x3123, 
    0x3114, 0x3124, 
    0x3114, 0x3125, 
    0x3114, 0x3128, 
    0x3114, 0x3128, 0x311b, 
    0x3114, 0x3128, 0x311e, 
    0x3114, 0x3128, 0x311f, 
    0x3114, 0x3128, 0x3122, 
    0x3114, 0x3128, 0x3123, 
    0x3114, 0x3128, 0x3124, 
    0x3114, 0x3128, 0x3125, 
    0x3115, 
    0x3115, 0x311a, 
    0x3115, 0x311c, 
    0x3115, 0x311e, 
    0x3115, 0x311f, 
    0x3115, 0x3120, 
    0x3115, 0x3121, 
    0x3115, 0x3122, 
    0x3115, 0x3123, 
    0x3115, 0x3124, 
    0x3115, 0x3125, 
    0x3115, 0x3128, 
    0x3115, 0x3128, 0x311a, 
    0x3115, 0x3128, 0x311b, 
    0x3115, 0x3128, 0x311e, 
    0x3115, 0x3128, 0x311f, 
    0x3115, 0x3128, 0x3122, 
    0x3115, 0x3128, 0x3123, 
    0x3115, 0x3128, 0x3124, 
    0x3116, 
    0x3116, 0x311c, 
    0x3116, 0x3120, 
    0x3116, 0x3121, 
    0x3116, 0x3122, 
    0x3116, 0x3123, 
    0x3116, 0x3124, 
    0x3116, 0x3125, 
    0x3116, 0x3128, 
    0x3116, 0x3128, 0x311b, 
    0x3116, 0x3128, 0x311f, 
    0x3116, 0x3128, 0x3122, 
    0x3116, 0x3128, 0x3123, 
    0x3116, 0x3128, 0x3125, 
    0x3117, 
    0x3117, 0x311a, 
    0x3117, 0x311c, 
    0x3117, 0x311e, 
    0x3117, 0x311f, 
    0x3117, 0x3120, 
    0x3117, 0x3121, 
    0x3117, 0x3122, 
    0x3117, 0x3123, 
    0x3117, 0x3124, 
    0x3117, 0x3125, 
    0x3117, 0x3128, 
    0x3117, 0x3128, 0x311b, 
    0x3117, 0x3128, 0x311f, 
    0x3117, 0x3128, 0x3122, 
    0x3117, 0x3128, 0x3123, 
    0x3117, 0x3128, 0x3125, 
    0x3118, 
    0x3118, 0x311a, 
    0x3118, 0x311c, 
    0x3118, 0x311e, 
    0x3118, 0x3120, 
    0x3118, 0x3121, 
    0x3118, 0x3122, 
    0x3118, 0x3123, 
    0x3118, 0x3124, 
    0x3118, 0x3125, 
    0x3118, 0x3128, 
    0x3118, 0x3128, 0x311b, 
    0x3118, 0x3128, 0x311f, 
    0x3118, 0x3128, 0x3122, 
    0x3118, 0x3128, 0x3123, 
    0x3118, 0x3128, 0x3125, 
    0x3119, 
    0x3119, 0x311a, 
    0x3119, 0x311c, 
    0x3119, 0x311e, 
    0x3119, 0x3120, 
    0x3119, 0x3121, 
    0x3119, 0x3122, 
    0x3119, 0x3123, 
    0x3119, 0x3124, 
    0x3119, 0x3125, 
    0x3119, 0x3128, 
    0x3119, 0x3128, 0x311b, 
    0x3119, 0x3128, 0x311f, 
    0x3119, 0x3128, 0x3122, 
    0x3119, 0x3128, 0x3123, 
    0x3119, 0x3128, 0x3125, 
    0x311a, 
    0x311b, 
    0x311c, 
    0x311e, 
    0x311f, 
    0x3120, 
    0x3121, 
    0x3122, 
    0x3123, 
    0x3124, 
    0x3125, 
    0x3126, 
    0x3127, 
    0x3127, 0x311a, 
    0x3127, 0x311b, 
    0x3127, 0x311d, 
    0x3127, 0x311e, 
    0x3127, 0x3120, 
    0x3127, 0x3121, 
    0x3127, 0x3122, 
    0x3127, 0x3123, 
    0x3127, 0x3124, 
    0x3127, 0x3125, 
    0x3128, 
    0x3128, 0x311a, 
    0x3128, 0x311b, 
    0x3128, 0x311e, 
    0x3128, 0x311f, 
    0x3128, 0x3122, 
    0x3128, 0x3123, 
    0x3128, 0x3124, 
    0x3128, 0x3125, 
    0x3129, 
    0x3129, 0x311d, 
    0x3129, 0x3122, 
    0x3129, 0x3123, 
    0x3129, 0x3125
    };
    
const TUint16 KZhuyinTypeTable[] = 
    {
    // 21 ESpellConsonant
    ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant,
    ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant,
    ESpellSpecialConsonnant, ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant,
    ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellSpecialConsonnant, ESpellSpecialConsonnant,
    ESpellSpecialConsonnant,
    //16 ESpellVowel
    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
    ESpellVowel

    };    

const TUint16 KZhuyinNoFirstElem[] =
    {
    //0x311D
    0x0020, 0x02CA, 0x02C7, 0x02CB, 0x02D9    
    };

// Pinyin DB data
const TUint16 KPinyinBase = L'a';
const TUint16  KPinyinElementCount = 26;
const TUint16 KPinyinSpellsLength[] = 
    {
    1,2,2,3,2,2,3,3,4,3,3,3,4,2,4,4,3,3,4,2,
    2,2,3,3,4,3,2,3,4,3,4,4,5,4,3,4,5,3,5,4,
    3,4,5,5,6,4,4,4,2,4,3,2,4,3,3,3,2,3,3,4,
    3,2,3,3,4,2,3,4,4,3,4,3,4,3,2,4,3,3,3,1,
    2,2,3,2,2,3,4,3,3,4,2,3,2,2,3,3,4,3,2,3,
    3,4,4,3,2,3,4,4,5,3,3,3,2,3,3,4,3,2,3,3,
    4,2,3,4,3,2,3,4,4,5,3,3,3,2,3,4,5,4,3,3,
    4,5,3,2,4,3,3,2,3,3,4,3,2,3,3,4,4,3,2,3,
    4,4,5,3,3,3,2,3,3,4,3,2,3,4,2,3,4,5,4,3,
    3,4,3,2,4,3,2,4,3,3,2,3,1,2,3,3,4,3,2,3,
    3,4,2,4,4,3,3,4,3,2,3,2,1,2,3,3,4,3,2,3,
    3,4,2,2,3,4,5,4,3,3,4,3,4,3,2,4,3,2,3,1,
    2,2,3,3,4,3,3,3,4,2,4,4,3,3,4,2,3,2,2,3,
    4,5,4,3,3,4,5,3,2,4,3,3,3,4,3,2,3,4,2,4,
    3,2,4,3,3,3,2,3,3,4,3,2,3,4,3,4,4,5,4,3,
    4,4,5,3,4,3,4,5,5,6,4,4,4,2,4,3,2,4,3,3,
    3,2,3,3,4,3,2,4,2,4,4,3,4,4,3,2,4,3,3,3,
    2,3,3,4,3,3,4,2,2,2,3,4,5,4,3,3,4,5,3,2,
    4,3,3,2,3,4,3,2,2,3,4,2,4,3,2,4,3,3,2,3,
    3,4,3,2,3,3,4,3,4,4,5,4,3,4,4,5,3,5,4,3,
    4,5,5,6,4,4,4,2,4,3,2,4,3,3,3
    };
const TUint16 KPinyinSpellsLib[] =
    {
    0x61, //a
    0x61, 0x69, //ai
    0x61, 0x6e, //an
    0x61, 0x6e, 0x67, //ang
    0x61, 0x6f, //ao
    0x62, 0x61, //ba
    0x62, 0x61, 0x69, //bai
    0x62, 0x61, 0x6e, //ban
    0x62, 0x61, 0x6e, 0x67, //bang
    0x62, 0x61, 0x6f, //bao
    0x62, 0x65, 0x69, //bei
    0x62, 0x65, 0x6e, //ben
    0x62, 0x65, 0x6e, 0x67, //beng
    0x62, 0x69, //bi
    0x62, 0x69, 0x61, 0x6e, //bian
    0x62, 0x69, 0x61, 0x6f, //biao
    0x62, 0x69, 0x65, //bie
    0x62, 0x69, 0x6e, //bin
    0x62, 0x69, 0x6e, 0x67, //bing
    0x62, 0x6f, //bo
    0x62, 0x75, //bu
    0x63, 0x61, //ca
    0x63, 0x61, 0x69, //cai
    0x63, 0x61, 0x6e, //can
    0x63, 0x61, 0x6e, 0x67, //cang
    0x63, 0x61, 0x6f, //cao
    0x63, 0x65, //ce
    0x63, 0x65, 0x6e, //cen
    0x63, 0x65, 0x6e, 0x67, //ceng
    0x63, 0x68, 0x61, //cha
    0x63, 0x68, 0x61, 0x69, //chai
    0x63, 0x68, 0x61, 0x6e, //chan
    0x63, 0x68, 0x61, 0x6e, 0x67, //chang
    0x63, 0x68, 0x61, 0x6f, //chao
    0x63, 0x68, 0x65, //che
    0x63, 0x68, 0x65, 0x6e, //chen
    0x63, 0x68, 0x65, 0x6e, 0x67, //cheng
    0x63, 0x68, 0x69, //chi
    0x63, 0x68, 0x6f, 0x6e, 0x67, //chong
    0x63, 0x68, 0x6f, 0x75, //chou
    0x63, 0x68, 0x75, //chu
    0x63, 0x68, 0x75, 0x61, //chua
    0x63, 0x68, 0x75, 0x61, 0x69, //chuai
    0x63, 0x68, 0x75, 0x61, 0x6e, //chuan
    0x63, 0x68, 0x75, 0x61, 0x6e, 0x67, //chuang
    0x63, 0x68, 0x75, 0x69, //chui
    0x63, 0x68, 0x75, 0x6e, //chun
    0x63, 0x68, 0x75, 0x6f, //chuo
    0x63, 0x69, //ci
    0x63, 0x6f, 0x6e, 0x67, //cong
    0x63, 0x6f, 0x75, //cou
    0x63, 0x75, //cu
    0x63, 0x75, 0x61, 0x6e, //cuan
    0x63, 0x75, 0x69, //cui
    0x63, 0x75, 0x6e, //cun
    0x63, 0x75, 0x6f, //cuo
    0x64, 0x61, //da
    0x64, 0x61, 0x69, //dai
    0x64, 0x61, 0x6e, //dan
    0x64, 0x61, 0x6e, 0x67, //dang
    0x64, 0x61, 0x6f, //dao
    0x64, 0x65, //de
    0x64, 0x65, 0x69, //dei
    0x64, 0x65, 0x6e, //den
    0x64, 0x65, 0x6e, 0x67, //deng
    0x64, 0x69, //di
    0x64, 0x69, 0x61, //dia
    0x64, 0x69, 0x61, 0x6e, //dian
    0x64, 0x69, 0x61, 0x6f, //diao
    0x64, 0x69, 0x65, //die
    0x64, 0x69, 0x6e, 0x67, //ding
    0x64, 0x69, 0x75, //diu
    0x64, 0x6f, 0x6e, 0x67, //dong
    0x64, 0x6f, 0x75, //dou
    0x64, 0x75, //du
    0x64, 0x75, 0x61, 0x6e, //duan
    0x64, 0x75, 0x69, //dui
    0x64, 0x75, 0x6e, //dun
    0x64, 0x75, 0x6f, //duo
    0x65, //e
    0x65, 0x69, //ei
    0x65, 0x6e, //en
    0x65, 0x6e, 0x67, //eng
    0x65, 0x72, //er
    0x66, 0x61, //fa
    0x66, 0x61, 0x6e, //fan
    0x66, 0x61, 0x6e, 0x67, //fang
    0x66, 0x65, 0x69, //fei
    0x66, 0x65, 0x6e, //fen
    0x66, 0x65, 0x6e, 0x67, //feng
    0x66, 0x6f, //fo
    0x66, 0x6f, 0x75, //fou
    0x66, 0x75, //fu
    0x67, 0x61, //ga
    0x67, 0x61, 0x69, //gai
    0x67, 0x61, 0x6e, //gan
    0x67, 0x61, 0x6e, 0x67, //gang
    0x67, 0x61, 0x6f, //gao
    0x67, 0x65, //ge
    0x67, 0x65, 0x69, //gei
    0x67, 0x65, 0x6e, //gen
    0x67, 0x65, 0x6e, 0x67, //geng
    0x67, 0x6f, 0x6e, 0x67, //gong
    0x67, 0x6f, 0x75, //gou
    0x67, 0x75, //gu
    0x67, 0x75, 0x61, //gua
    0x67, 0x75, 0x61, 0x69, //guai
    0x67, 0x75, 0x61, 0x6e, //guan
    0x67, 0x75, 0x61, 0x6e, 0x67, //guang
    0x67, 0x75, 0x69, //gui
    0x67, 0x75, 0x6e, //gun
    0x67, 0x75, 0x6f, //guo
    0x68, 0x61, //ha
    0x68, 0x61, 0x69, //hai
    0x68, 0x61, 0x6e, //han
    0x68, 0x61, 0x6e, 0x67, //hang
    0x68, 0x61, 0x6f, //hao
    0x68, 0x65, //he
    0x68, 0x65, 0x69, //hei
    0x68, 0x65, 0x6e, //hen
    0x68, 0x65, 0x6e, 0x67, //heng
    0x68, 0x6d, //hm
    0x68, 0x6e, 0x67, //hng
    0x68, 0x6f, 0x6e, 0x67, //hong
    0x68, 0x6f, 0x75, //hou
    0x68, 0x75, //hu
    0x68, 0x75, 0x61, //hua
    0x68, 0x75, 0x61, 0x69, //huai
    0x68, 0x75, 0x61, 0x6e, //huan
    0x68, 0x75, 0x61, 0x6e, 0x67, //huang
    0x68, 0x75, 0x69, //hui
    0x68, 0x75, 0x6e, //hun
    0x68, 0x75, 0x6f, //huo
    0x6a, 0x69, //ji
    0x6a, 0x69, 0x61, //jia
    0x6a, 0x69, 0x61, 0x6e, //jian
    0x6a, 0x69, 0x61, 0x6e, 0x67, //jiang
    0x6a, 0x69, 0x61, 0x6f, //jiao
    0x6a, 0x69, 0x65, //jie
    0x6a, 0x69, 0x6e, //jin
    0x6a, 0x69, 0x6e, 0x67, //jing
    0x6a, 0x69, 0x6f, 0x6e, 0x67, //jiong
    0x6a, 0x69, 0x75, //jiu
    0x6a, 0x75, //ju
    0x6a, 0x75, 0x61, 0x6e, //juan
    0x6a, 0x75, 0x65, //jue
    0x6a, 0x75, 0x6e, //jun
    0x6b, 0x61, //ka
    0x6b, 0x61, 0x69, //kai
    0x6b, 0x61, 0x6e, //kan
    0x6b, 0x61, 0x6e, 0x67, //kang
    0x6b, 0x61, 0x6f, //kao
    0x6b, 0x65, //ke
    0x6b, 0x65, 0x69, //kei
    0x6b, 0x65, 0x6e, //ken
    0x6b, 0x65, 0x6e, 0x67, //keng
    0x6b, 0x6f, 0x6e, 0x67, //kong
    0x6b, 0x6f, 0x75, //kou
    0x6b, 0x75, //ku
    0x6b, 0x75, 0x61, //kua
    0x6b, 0x75, 0x61, 0x69, //kuai
    0x6b, 0x75, 0x61, 0x6e, //kuan
    0x6b, 0x75, 0x61, 0x6e, 0x67, //kuang
    0x6b, 0x75, 0x69, //kui
    0x6b, 0x75, 0x6e, //kun
    0x6b, 0x75, 0x6f, //kuo
    0x6c, 0x61, //la
    0x6c, 0x61, 0x69, //lai
    0x6c, 0x61, 0x6e, //lan
    0x6c, 0x61, 0x6e, 0x67, //lang
    0x6c, 0x61, 0x6f, //lao
    0x6c, 0x65, //le
    0x6c, 0x65, 0x69, //lei
    0x6c, 0x65, 0x6e, 0x67, //leng
    0x6c, 0x69, //li
    0x6c, 0x69, 0x61, //lia
    0x6c, 0x69, 0x61, 0x6e, //lian
    0x6c, 0x69, 0x61, 0x6e, 0x67, //liang
    0x6c, 0x69, 0x61, 0x6f, //liao
    0x6c, 0x69, 0x65, //lie
    0x6c, 0x69, 0x6e, //lin
    0x6c, 0x69, 0x6e, 0x67, //ling
    0x6c, 0x69, 0x75, //liu
    0x6c, 0x6f, //lo
    0x6c, 0x6f, 0x6e, 0x67, //long
    0x6c, 0x6f, 0x75, //lou
    0x6c, 0x75, //lu
    0x6c, 0x75, 0x61, 0x6e, //luan
    0x6c, 0x75, 0x6e, //lun
    0x6c, 0x75, 0x6f, //luo
    0x6c, 0x76, //lv
    0x6c, 0x76, 0x65, //lve
    0x6d, //m
    0x6d, 0x61, //ma
    0x6d, 0x61, 0x69, //mai
    0x6d, 0x61, 0x6e, //man
    0x6d, 0x61, 0x6e, 0x67, //mang
    0x6d, 0x61, 0x6f, //mao
    0x6d, 0x65, //me
    0x6d, 0x65, 0x69, //mei
    0x6d, 0x65, 0x6e, //men
    0x6d, 0x65, 0x6e, 0x67, //meng
    0x6d, 0x69, //mi
    0x6d, 0x69, 0x61, 0x6e, //mian
    0x6d, 0x69, 0x61, 0x6f, //miao
    0x6d, 0x69, 0x65, //mie
    0x6d, 0x69, 0x6e, //min
    0x6d, 0x69, 0x6e, 0x67, //ming
    0x6d, 0x69, 0x75, //miu
    0x6d, 0x6f, //mo
    0x6d, 0x6f, 0x75, //mou
    0x6d, 0x75, //mu
    0x6e, //n
    0x6e, 0x61, //na
    0x6e, 0x61, 0x69, //nai
    0x6e, 0x61, 0x6e, //nan
    0x6e, 0x61, 0x6e, 0x67, //nang
    0x6e, 0x61, 0x6f, //nao
    0x6e, 0x65, //ne
    0x6e, 0x65, 0x69, //nei
    0x6e, 0x65, 0x6e, //nen
    0x6e, 0x65, 0x6e, 0x67, //neng
    0x6e, 0x67, //ng
    0x6e, 0x69, //ni
    0x6e, 0x69, 0x61, //nia
    0x6e, 0x69, 0x61, 0x6e, //nian
    0x6e, 0x69, 0x61, 0x6e, 0x67, //niang
    0x6e, 0x69, 0x61, 0x6f, //niao
    0x6e, 0x69, 0x65, //nie
    0x6e, 0x69, 0x6e, //nin
    0x6e, 0x69, 0x6e, 0x67, //ning
    0x6e, 0x69, 0x75, //niu
    0x6e, 0x6f, 0x6e, 0x67, //nong
    0x6e, 0x6f, 0x75, //nou
    0x6e, 0x75, //nu
    0x6e, 0x75, 0x61, 0x6e, //nuan
    0x6e, 0x75, 0x6f, //nuo
    0x6e, 0x76, //nv
    0x6e, 0x76, 0x65, //nve
    0x6f, //o
    0x6f, 0x75, //ou
    0x70, 0x61, //pa
    0x70, 0x61, 0x69, //pai
    0x70, 0x61, 0x6e, //pan
    0x70, 0x61, 0x6e, 0x67, //pang
    0x70, 0x61, 0x6f, //pao
    0x70, 0x65, 0x69, //pei
    0x70, 0x65, 0x6e, //pen
    0x70, 0x65, 0x6e, 0x67, //peng
    0x70, 0x69, //pi
    0x70, 0x69, 0x61, 0x6e, //pian
    0x70, 0x69, 0x61, 0x6f, //piao
    0x70, 0x69, 0x65, //pie
    0x70, 0x69, 0x6e, //pin
    0x70, 0x69, 0x6e, 0x67, //ping
    0x70, 0x6f, //po
    0x70, 0x6f, 0x75, //pou
    0x70, 0x75, //pu
    0x71, 0x69, //qi
    0x71, 0x69, 0x61, //qia
    0x71, 0x69, 0x61, 0x6e, //qian
    0x71, 0x69, 0x61, 0x6e, 0x67, //qiang
    0x71, 0x69, 0x61, 0x6f, //qiao
    0x71, 0x69, 0x65, //qie
    0x71, 0x69, 0x6e, //qin
    0x71, 0x69, 0x6e, 0x67, //qing
    0x71, 0x69, 0x6f, 0x6e, 0x67, //qiong
    0x71, 0x69, 0x75, //qiu
    0x71, 0x75, //qu
    0x71, 0x75, 0x61, 0x6e, //quan
    0x71, 0x75, 0x65, //que
    0x71, 0x75, 0x6e, //qun
    0x72, 0x61, 0x6e, //ran
    0x72, 0x61, 0x6e, 0x67, //rang
    0x72, 0x61, 0x6f, //rao
    0x72, 0x65, //re
    0x72, 0x65, 0x6e, //ren
    0x72, 0x65, 0x6e, 0x67, //reng
    0x72, 0x69, //ri
    0x72, 0x6f, 0x6e, 0x67, //rong
    0x72, 0x6f, 0x75, //rou
    0x72, 0x75, //ru
    0x72, 0x75, 0x61, 0x6e, //ruan
    0x72, 0x75, 0x69, //rui
    0x72, 0x75, 0x6e, //run
    0x72, 0x75, 0x6f, //ruo
    0x73, 0x61, //sa
    0x73, 0x61, 0x69, //sai
    0x73, 0x61, 0x6e, //san
    0x73, 0x61, 0x6e, 0x67, //sang
    0x73, 0x61, 0x6f, //sao
    0x73, 0x65, //se
    0x73, 0x65, 0x6e, //sen
    0x73, 0x65, 0x6e, 0x67, //seng
    0x73, 0x68, 0x61, //sha
    0x73, 0x68, 0x61, 0x69, //shai
    0x73, 0x68, 0x61, 0x6e, //shan
    0x73, 0x68, 0x61, 0x6e, 0x67, //shang
    0x73, 0x68, 0x61, 0x6f, //shao
    0x73, 0x68, 0x65, //she
    0x73, 0x68, 0x65, 0x69, //shei
    0x73, 0x68, 0x65, 0x6e, //shen
    0x73, 0x68, 0x65, 0x6e, 0x67, //sheng
    0x73, 0x68, 0x69, //shi
    0x73, 0x68, 0x6f, 0x75, //shou
    0x73, 0x68, 0x75, //shu
    0x73, 0x68, 0x75, 0x61, //shua
    0x73, 0x68, 0x75, 0x61, 0x69, //shuai
    0x73, 0x68, 0x75, 0x61, 0x6e, //shuan
    0x73, 0x68, 0x75, 0x61, 0x6e, 0x67, //shuang
    0x73, 0x68, 0x75, 0x69, //shui
    0x73, 0x68, 0x75, 0x6e, //shun
    0x73, 0x68, 0x75, 0x6f, //shuo
    0x73, 0x69, //si
    0x73, 0x6f, 0x6e, 0x67, //song
    0x73, 0x6f, 0x75, //sou
    0x73, 0x75, //su
    0x73, 0x75, 0x61, 0x6e, //suan
    0x73, 0x75, 0x69, //sui
    0x73, 0x75, 0x6e, //sun
    0x73, 0x75, 0x6f, //suo
    0x74, 0x61, //ta
    0x74, 0x61, 0x69, //tai
    0x74, 0x61, 0x6e, //tan
    0x74, 0x61, 0x6e, 0x67, //tang
    0x74, 0x61, 0x6f, //tao
    0x74, 0x65, //te
    0x74, 0x65, 0x6e, 0x67, //teng
    0x74, 0x69, //ti
    0x74, 0x69, 0x61, 0x6e, //tian
    0x74, 0x69, 0x61, 0x6f, //tiao
    0x74, 0x69, 0x65, //tie
    0x74, 0x69, 0x6e, 0x67, //ting
    0x74, 0x6f, 0x6e, 0x67, //tong
    0x74, 0x6f, 0x75, //tou
    0x74, 0x75, //tu
    0x74, 0x75, 0x61, 0x6e, //tuan
    0x74, 0x75, 0x69, //tui
    0x74, 0x75, 0x6e, //tun
    0x74, 0x75, 0x6f, //tuo
    0x77, 0x61, //wa
    0x77, 0x61, 0x69, //wai
    0x77, 0x61, 0x6e, //wan
    0x77, 0x61, 0x6e, 0x67, //wang
    0x77, 0x65, 0x69, //wei
    0x77, 0x65, 0x6e, //wen
    0x77, 0x65, 0x6e, 0x67, //weng
    0x77, 0x6f, //wo
    0x77, 0x75, //wu
    0x78, 0x69, //xi
    0x78, 0x69, 0x61, //xia
    0x78, 0x69, 0x61, 0x6e, //xian
    0x78, 0x69, 0x61, 0x6e, 0x67, //xiang
    0x78, 0x69, 0x61, 0x6f, //xiao
    0x78, 0x69, 0x65, //xie
    0x78, 0x69, 0x6e, //xin
    0x78, 0x69, 0x6e, 0x67, //xing
    0x78, 0x69, 0x6f, 0x6e, 0x67, //xiong
    0x78, 0x69, 0x75, //xiu
    0x78, 0x75, //xu
    0x78, 0x75, 0x61, 0x6e, //xuan
    0x78, 0x75, 0x65, //xue
    0x78, 0x75, 0x6e, //xun
    0x79, 0x61, //ya
    0x79, 0x61, 0x6e, //yan
    0x79, 0x61, 0x6e, 0x67, //yang
    0x79, 0x61, 0x6f, //yao
    0x79, 0x65, //ye
    0x79, 0x69, //yi
    0x79, 0x69, 0x6e, //yin
    0x79, 0x69, 0x6e, 0x67, //ying
    0x79, 0x6f, //yo
    0x79, 0x6f, 0x6e, 0x67, //yong
    0x79, 0x6f, 0x75, //you
    0x79, 0x75, //yu
    0x79, 0x75, 0x61, 0x6e, //yuan
    0x79, 0x75, 0x65, //yue
    0x79, 0x75, 0x6e, //yun
    0x7a, 0x61, //za
    0x7a, 0x61, 0x69, //zai
    0x7a, 0x61, 0x6e, //zan
    0x7a, 0x61, 0x6e, 0x67, //zang
    0x7a, 0x61, 0x6f, //zao
    0x7a, 0x65, //ze
    0x7a, 0x65, 0x69, //zei
    0x7a, 0x65, 0x6e, //zen
    0x7a, 0x65, 0x6e, 0x67, //zeng
    0x7a, 0x68, 0x61, //zha
    0x7a, 0x68, 0x61, 0x69, //zhai
    0x7a, 0x68, 0x61, 0x6e, //zhan
    0x7a, 0x68, 0x61, 0x6e, 0x67, //zhang
    0x7a, 0x68, 0x61, 0x6f, //zhao
    0x7a, 0x68, 0x65, //zhe
    0x7a, 0x68, 0x65, 0x69, //zhei
    0x7a, 0x68, 0x65, 0x6e, //zhen
    0x7a, 0x68, 0x65, 0x6e, 0x67, //zheng
    0x7a, 0x68, 0x69, //zhi
    0x7a, 0x68, 0x6f, 0x6e, 0x67, //zhong
    0x7a, 0x68, 0x6f, 0x75, //zhou
    0x7a, 0x68, 0x75, //zhu
    0x7a, 0x68, 0x75, 0x61, //zhua
    0x7a, 0x68, 0x75, 0x61, 0x69, //zhuai
    0x7a, 0x68, 0x75, 0x61, 0x6e, //zhuan
    0x7a, 0x68, 0x75, 0x61, 0x6e, 0x67, //zhuang
    0x7a, 0x68, 0x75, 0x69, //zhui
    0x7a, 0x68, 0x75, 0x6e, //zhun
    0x7a, 0x68, 0x75, 0x6f, //zhuo
    0x7a, 0x69, //zi
    0x7a, 0x6f, 0x6e, 0x67, //zong
    0x7a, 0x6f, 0x75, //zou
    0x7a, 0x75, //zu
    0x7a, 0x75, 0x61, 0x6e, //zuan
    0x7a, 0x75, 0x69, //zui
    0x7a, 0x75, 0x6e, //zun
    0x7a, 0x75, 0x6f //zuo
    };
    
const TUint16 KPinyinTypeTable[] = 
{
    //a, b, c, d, e, f
    ESpellVowel, ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant, ESpellVowel, ESpellConsonant,
    //g, h, i, j, k, l
    ESpellSpecialConsonnant, ESpellSpecialConsonnant, ESpellVowel, ESpellConsonant, ESpellConsonant, ESpellConsonant,
    //m, n, o, p, q, r
    ESpellConsonant, ESpellSpecialConsonnant, ESpellVowel, ESpellConsonant, ESpellConsonant, ESpellConsonant,
    //s, t, u, v, w, x
    ESpellSpecialConsonnant, ESpellConsonant, ESpellVowel, ESpellVowel, ESpellConsonant, ESpellConsonant,
    //y, z
    ESpellConsonant, ESpellSpecialConsonnant
};

const TUint16 KPinyinNoFirstElem[] =
    {
    0x69, 0x76, 0x75
    };
    
// -----------------------------------------------------------------------------
// CPinyinAnalyserDbFeed::NewL
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
CZhuyinAnalyserDbFeed* CZhuyinAnalyserDbFeed::NewL( TPinyinAnalyserDbType aType )
    {
    CZhuyinAnalyserDbFeed* self = new ( ELeave ) CZhuyinAnalyserDbFeed();
    CleanupStack::PushL(self);
    self->ConstructL( aType ); 
    CleanupStack::Pop();
    return self;    
    }
    
CZhuyinAnalyserDbFeed::~CZhuyinAnalyserDbFeed()
    {
    
    }
// -----------------------------------------------------------------------------
// CPinyinAnalyserDbFeed::~CPinyinAnalyserDbFeed
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
CZhuyinAnalyserDbFeed::CZhuyinAnalyserDbFeed()
    {
    }

// -----------------------------------------------------------------------------
// CPinyinAnalyserDbFeed::~CPinyinAnalyserDbFeed
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//    
void CZhuyinAnalyserDbFeed::ConstructL( TPinyinAnalyserDbType aType )
    {
    
    if ( aType == EPinyinAnalyserTypePinyin )
        {
        iSpellBuf.Set( KPinyinSpellsLib, sizeof( KPinyinSpellsLib ) / sizeof( KPinyinSpellsLib[0] ) );
        iSpellLenBuf.Set( KPinyinSpellsLength, sizeof( KPinyinSpellsLength ) / sizeof ( KPinyinSpellsLength[0] ) );
        iSpellElemBase = KPinyinBase;
        iSpellElemLen  = KPinyinElementCount;
        iSpellTypeBuf.Set( KPinyinTypeTable, sizeof( KPinyinTypeTable ) / sizeof ( KPinyinTypeTable[0] ) );
        iNoFirstElements.Set( KPinyinNoFirstElem, sizeof( KPinyinNoFirstElem) / sizeof( KPinyinNoFirstElem[0] ) );
        }
    else if ( aType == EPinyinAnalyserTypeZhuyin )
        {
        iSpellBuf.Set( KZhuyinSpellsLib, sizeof( KZhuyinSpellsLib ) / sizeof( KZhuyinSpellsLib[0] ) );
        iSpellLenBuf.Set( KZhuyinSpellsLength, sizeof( KZhuyinSpellsLength ) / sizeof ( KZhuyinSpellsLength[0] ) );
        iSpellElemBase = KZhuyinBase;
        iSpellElemLen  = KZhuyinElementCount;
        iSpellTypeBuf.Set( KZhuyinTypeTable, sizeof( KZhuyinTypeTable ) / sizeof ( KZhuyinTypeTable[0] ) );
        iNoFirstElements.Set( KZhuyinNoFirstElem, sizeof( KZhuyinNoFirstElem) / sizeof( KZhuyinNoFirstElem[0] ) );
        }
    else
        {
        ASSERT( 0 );    
        }
    
    }

TBool CZhuyinAnalyserDbFeed::IsToneMark( TUint16 acoseFirst, TUint16 aCodeSecond )
    {
    TBool first = EFalse;
    TBool seconde = EFalse;
    
    for ( TInt i = 0; i < iNoFirstElements.Length(); ++i )
        {
        if ( iNoFirstElements[i] == acoseFirst )
            {
            first = ETrue;
            }
        if ( iNoFirstElements[i] == aCodeSecond )
            {
            seconde = ETrue;
            }    
        }
    
    if ( first && seconde )
        {
        return ETrue;
        }
    else
        {
        return EFalse;
        }
    }