/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: KParseType.idl,v $
 *
 *  $Revision: 1.4 $
 *
 *  last change: $Author: rt $ $Date: 2005/09/08 01:46:52 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library 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
 *    Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/
#ifndef __com_sun_star_i18n_KParseType_idl__
#define __com_sun_star_i18n_KParseType_idl__

//============================================================================

module com {  module sun {  module star {  module i18n {

//============================================================================

/**
    Constants to specify the type of a parsed token.

    <p> Set by
    <member>XCharacterClassification::parseAnyToken()</member> and
    <member>XCharacterClassification::parsePredefinedToken()</member> in
    <member>ParseResult::TokenType</member>. </p>
 */

published constants KParseType
{
    /// One single character like ! # ; : $ et al.
    const long ONE_SINGLE_CHAR      = 0x00000001;

    // For human .idl readers: <, >, <>, =, <=, >=
    /// A Boolean operator like &lt;, &gt;, &lt;&gt;, =, &lt;=, &gt;=
    const long BOOLEAN              = 0x00000002;

    /// A name matching the conditions passed.
    const long IDENTNAME            = 0x00000004;


    // Hint for human .idl readers: do not get confused about the double
    // quotation marks, they are needed for the unoidl compiler which otherwise
    // gets confused about the single quotation marks.
    /** "A single-quoted name matching the conditions passed ( 'na\'me' )."
        "Dequoted name in <member>ParseResult::DequotedNameOrString</member> ( na'me )." */
    const long SINGLE_QUOTE_NAME    = 0x00000008;

    /** A double-quoted string ( "str\"i""ng" ). Dequoted string in
        <member>ParseResult::DequotedNameOrString</member> ( str"i"ng ). */
    const long DOUBLE_QUOTE_STRING  = 0x00000010;

    /** A number where all digits are ASCII characters.
        Numerical value in <member>ParseResult::Value</member>. */
    const long ASC_NUMBER           = 0x00000020;

    /** A number where at least some digits are Unicode (and maybe
        ASCII) characters. Numerical value inKParseType
        <member>ParseResult::Value</member>. */
    const long UNI_NUMBER           = 0x00000040;

    /** Set (ored) if SINGLE_QUOTE_NAME or DOUBLE_QUOTE_STRING has no
        closing quote. */
    const long MISSING_QUOTE        = 0x40000000;


    // useful combinations

    /// Any ASCII or Unicode number
    const long ANY_NUMBER           = ASC_NUMBER | UNI_NUMBER;
};

//============================================================================
}; }; }; };
//============================================================================
#endif
