1 // © 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html 3 /******************************************************************** 4 * COPYRIGHT: 5 * Copyright (c) 1997-2016, International Business Machines Corporation and 6 * others. All Rights Reserved. 7 ********************************************************************/ 8 /* file name: cbiditst.h 9 * encoding: UTF-8 10 * tab size: 8 (not used) 11 * indentation:4 12 * 13 * created on: 1999sep22 14 * created by: Markus W. Scherer 15 */ 16 17 #ifndef CBIDITST_H 18 #define CBIDITST_H 19 20 #include "unicode/utypes.h" 21 #include "unicode/uchar.h" 22 #include "unicode/ubidi.h" 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 #define MAX_STRING_LENGTH 200 29 30 /* Comparing the description of the BiDi algorithm with this implementation 31 is easier with the same names for the BiDi types in the code as there. 32 See UCharDirection in uchar.h . 33 */ 34 #define L U_LEFT_TO_RIGHT 35 #define R U_RIGHT_TO_LEFT 36 #define EN U_EUROPEAN_NUMBER 37 #define ES U_EUROPEAN_NUMBER_SEPARATOR 38 #define ET U_EUROPEAN_NUMBER_TERMINATOR 39 #define AN U_ARABIC_NUMBER 40 #define CS U_COMMON_NUMBER_SEPARATOR 41 #define B U_BLOCK_SEPARATOR 42 #define S U_SEGMENT_SEPARATOR 43 #define WS U_WHITE_SPACE_NEUTRAL 44 #define ON U_OTHER_NEUTRAL 45 #define LRE U_LEFT_TO_RIGHT_EMBEDDING 46 #define LRO U_LEFT_TO_RIGHT_OVERRIDE 47 #define AL U_RIGHT_TO_LEFT_ARABIC 48 #define RLE U_RIGHT_TO_LEFT_EMBEDDING 49 #define RLO U_RIGHT_TO_LEFT_OVERRIDE 50 #define PDF U_POP_DIRECTIONAL_FORMAT 51 #define NSM U_DIR_NON_SPACING_MARK 52 #define BN U_BOUNDARY_NEUTRAL 53 #define FSI U_FIRST_STRONG_ISOLATE 54 #define LRI U_LEFT_TO_RIGHT_ISOLATE 55 #define RLI U_RIGHT_TO_LEFT_ISOLATE 56 #define PDI U_POP_DIRECTIONAL_ISOLATE 57 58 extern const char * const 59 dirPropNames[U_CHAR_DIRECTION_COUNT]; 60 61 extern UChar 62 charFromDirProp[U_CHAR_DIRECTION_COUNT]; 63 64 typedef struct { 65 const uint8_t *text; 66 int32_t length; 67 UBiDiLevel paraLevel; 68 int32_t lineStart, lineLimit; 69 UBiDiDirection direction; 70 UBiDiLevel resultLevel; 71 const UBiDiLevel *levels; 72 const uint8_t *visualMap; 73 } BiDiTestData; 74 75 extern const BiDiTestData 76 tests[]; 77 78 extern const int 79 bidiTestCount; 80 81 #ifdef __cplusplus 82 } 83 #endif 84 85 #endif 86