From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 07:54:39 +0200 Subject: Adding upstream version 4:24.2.0. Signed-off-by: Daniel Baumann --- offapi/com/sun/star/i18n/KParseTokens.idl | 187 ++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 offapi/com/sun/star/i18n/KParseTokens.idl (limited to 'offapi/com/sun/star/i18n/KParseTokens.idl') diff --git a/offapi/com/sun/star/i18n/KParseTokens.idl b/offapi/com/sun/star/i18n/KParseTokens.idl new file mode 100644 index 0000000000..f06b9861d6 --- /dev/null +++ b/offapi/com/sun/star/i18n/KParseTokens.idl @@ -0,0 +1,187 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module i18n { + + +/** + These constants specify the characters a name or identifier token to + be parsed can have. + +

They are passed to + XCharacterClassification::parseAnyToken() and + XCharacterClassification::parsePredefinedToken(). + They are also set in the ParseResult::StartFlags + and ParseResult::ContFlags.

+ */ + +published constants KParseTokens +{ + /// ASCII A-Z upper alpha + const long ASC_UPALPHA = 0x00000001; + + /// ASCII a-z lower alpha + const long ASC_LOALPHA = 0x00000002; + + /// ASCII 0-9 digit + const long ASC_DIGIT = 0x00000004; + + /// ASCII '_' underscore + const long ASC_UNDERSCORE = 0x00000008; + + /// ASCII '$' dollar + const long ASC_DOLLAR = 0x00000010; + + /// ASCII '.' dot/point + const long ASC_DOT = 0x00000020; + + /// ASCII ':' colon + const long ASC_COLON = 0x00000040; + + /// Special value to allow control characters (0x00 < char < 0x20) + const long ASC_CONTROL = 0x00000200; + + /** Special value to allow anything below 128 except control + characters. Not set in + ParseResult. */ + const long ASC_ANY_BUT_CONTROL = 0x00000400; + + /** Additional flag set in ParseResult::StartFlags + or ParseResult::ContFlags. Set if none of the + above ASC_... (except ASC_ANY_...) single values match an ASCII + character parsed. */ + const long ASC_OTHER = 0x00000800; + + /// Unicode (above 127) upper case letter + const long UNI_UPALPHA = 0x00001000; + + /// Unicode (above 127) lower case letter + const long UNI_LOALPHA = 0x00002000; + + /// Unicode (above 127) decimal digit number + const long UNI_DIGIT = 0x00004000; + + /// Unicode (above 127) title case letter + const long UNI_TITLE_ALPHA = 0x00008000; + + /// Unicode (above 127) modifier letter + const long UNI_MODIFIER_LETTER = 0x00010000; + + /// Unicode (above 127) other letter + const long UNI_OTHER_LETTER = 0x00020000; + + /// Unicode (above 127) letter number + const long UNI_LETTER_NUMBER = 0x00040000; + + /// Unicode (above 127) other number + const long UNI_OTHER_NUMBER = 0x00080000; + + /** If this bit is set in nContCharFlags parameters, the + locale's group separator characters in numbers are accepted and + ignored/skipped. Else a group separator in a number ends the + current token. A leading group separator is never accepted. If + an accepted group separator was encountered in a number + (ParseResult::TokenType is KParseType::ASC_NUMBER or + KParseType::UNI_NUMBER) this bit is also set in + ParseResult::ContFlags. + +

NOTE: absence of this bit in + nContCharFlags changes the default behaviour that in + prior releases accepted numbers with group separators but lead + to unexpected results when parsing formula expressions where the + user entered a (wrong) separator that happened to be the group + separator instead of an intended decimal separator. Usually + inline numbers in a formula expression do not contain group + separators. + + @since LibreOffice 6.2 + */ + const long GROUP_SEPARATOR_IN_NUMBER = 0x08000000; + + /** If this bit is set in nContCharFlags parameters and a + string enclosed in double quotes is parsed and two consecutive + double quotes are encountered, the string is ended. If this bit + is not set, the two double quotes are parsed as one escaped + double quote and string parsing continues. The bit is ignored in + nStartCharFlags parameters. + +

Example:
+ "abc""def" --> bit not set => abc"def
+ "abc""def" --> bit set => abc

+ */ + const long TWO_DOUBLE_QUOTES_BREAK_STRING = 0x10000000; + + /** Additional flag set in ParseResult::StartFlags + or ParseResult::ContFlags. Set if none of the + above UNI_... single values match a Unicode character parsed. */ + const long UNI_OTHER = 0x20000000; + + /** Only valid for nStartCharFlags parameter to + CharacterClassification::parseAnyToken() and + CharacterClassification::parsePredefinedToken(), + ignored on nContCharFlags parameter. + Not set in ParseResult. */ + const long IGNORE_LEADING_WS = 0x40000000; + + + // useful combinations + + /// ASCII a-zA-Z lower or upper alpha + const long ASC_ALPHA = ASC_UPALPHA | ASC_LOALPHA; + + /// ASCII a-zA-Z0-9 alphanumeric + const long ASC_ALNUM = ASC_ALPHA | ASC_DIGIT; + + /// Unicode (above 127) lower or upper or title case alpha + const long UNI_ALPHA = UNI_UPALPHA | UNI_LOALPHA | UNI_TITLE_ALPHA; + + /// Unicode (above 127) alphanumeric + const long UNI_ALNUM = UNI_ALPHA | UNI_DIGIT; + + /// Unicode (above 127) alpha or letter + const long UNI_LETTER = UNI_ALPHA | UNI_MODIFIER_LETTER | + UNI_OTHER_LETTER; + + /// Unicode (above 127) number + const long UNI_NUMBER = UNI_DIGIT | UNI_LETTER_NUMBER | + UNI_OTHER_NUMBER; + + /// any (ASCII or Unicode) alpha + const long ANY_ALPHA = ASC_ALPHA | UNI_ALPHA; + + /// any (ASCII or Unicode) digit + const long ANY_DIGIT = ASC_DIGIT | UNI_DIGIT; + + /// any (ASCII or Unicode) alphanumeric + const long ANY_ALNUM = ASC_ALNUM | UNI_ALNUM; + + /// any (ASCII or Unicode) letter + const long ANY_LETTER = ASC_ALPHA | UNI_LETTER; + + /// any (ASCII or Unicode) number + const long ANY_NUMBER = ASC_DIGIT | UNI_NUMBER; + + /// any (ASCII or Unicode) letter or number + const long ANY_LETTER_OR_NUMBER = ANY_LETTER | ANY_NUMBER; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3