libunibreak 8.0
Loading...
Searching...
No Matches
linebreakdef.h File Reference

Definitions of internal data structures, declarations of global variables, and function prototypes for the line breaking algorithm. More...

#include "unibreakdef.h"
Include dependency graph for linebreakdef.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  LineBreakProperties
 Struct for entries of line break properties. More...
struct  LineBreakAuxRange
 Struct for entries of auxiliary line breaking properties derived from the General_Category property. More...
struct  LineBreakPropertiesLang
 Struct for association of language-specific line breaking properties with language names. More...
struct  LineBreakContext
 Context representing internal state of the line breaking algorithm. More...

Enumerations

enum  LineBreakClass {
  LBP_Undefined , LBP_OP , LBP_CL , LBP_CP ,
  LBP_QU , LBP_GL , LBP_NS , LBP_EX ,
  LBP_SY , LBP_IS , LBP_PR , LBP_PO ,
  LBP_NU , LBP_AL , LBP_HL , LBP_ID ,
  LBP_IN , LBP_HY , LBP_BA , LBP_BB ,
  LBP_B2 , LBP_ZW , LBP_CM , LBP_WJ ,
  LBP_H2 , LBP_H3 , LBP_JL , LBP_JV ,
  LBP_JT , LBP_RI , LBP_EB , LBP_EM ,
  LBP_ZWJ , LBP_AK , LBP_AP , LBP_AS ,
  LBP_VF , LBP_VI , LBP_HH , LBP_CB ,
  LBP_AI , LBP_BK , LBP_CJ , LBP_CR ,
  LBP_LF , LBP_NL , LBP_SA , LBP_SG ,
  LBP_SP , LBP_XX
}
 Line break classes. More...
enum  Lb25State {
  LB25_NONE , LB25_PREFIX , LB25_PREFIXOP , LB25_NUM ,
  LB25_NUMCLOSE
}
 LB25 state for numeric expression context tracking. More...
enum  PendingRule {
  PENDING_NONE , PENDING_LB15B , PENDING_LB15C , PENDING_LB19A ,
  PENDING_LB28A4
}
 Identifies which lookahead rule currently has a tentative break pending resolution by the next character. More...
enum  BreakOutputType { LBOT_PER_CODE_UNIT , LBOT_PER_CODE_POINT }

Variables

const struct LineBreakProperties lb_prop_supplementary []
 Line breaking properties for supplementary planes.
const unsigned int lb_prop_supplementary_len
const char lb_prop_bmp []
 Line breaking properties for BMP.
const struct LineBreakPropertiesLang lb_prop_lang_map []
 Association data of language-specific line breaking properties with language names.

Detailed Description

Definitions of internal data structures, declarations of global variables, and function prototypes for the line breaking algorithm.

Author
Wu Yongwei
Petr Filipsky

Enumeration Type Documentation

◆ BreakOutputType

Enumerator
LBOT_PER_CODE_UNIT 
LBOT_PER_CODE_POINT 

◆ Lb25State

enum Lb25State

LB25 state for numeric expression context tracking.

Used for Example 7 regex-based tailoring from UAX #14-49.

Enumerator
LB25_NONE 

Not in numeric expression.

LB25_PREFIX 

Seen PR or PO (prefix).

LB25_PREFIXOP 

Saw (PR|PO) then OP or HY.

LB25_NUM 

Inside NU (NU|SY|IS)*.

LB25_NUMCLOSE 

Saw NU (NU|SY|IS)* (CL|CP).

◆ LineBreakClass

Line break classes.

This is a mapping of Table 1 of Unicode Standard Annex 14.

Enumerator
LBP_Undefined 

Undefined.

LBP_OP 

Opening punctuation.

LBP_CL 

Closing punctuation.

LBP_CP 

Closing parenthesis.

LBP_QU 

Ambiguous quotation.

LBP_GL 

Glue.

LBP_NS 

Non-starters.

LBP_EX 

Exclamation/Interrogation.

LBP_SY 

Symbols allowing break after.

LBP_IS 

Infix separator.

LBP_PR 

Prefix.

LBP_PO 

Postfix.

LBP_NU 

Numeric.

LBP_AL 

Alphabetic.

LBP_HL 

Hebrew letter.

LBP_ID 

Ideographic.

LBP_IN 

Inseparable characters.

LBP_HY 

Hyphen.

LBP_BA 

Break after.

LBP_BB 

Break before.

LBP_B2 

Break on either side (but not pair).

LBP_ZW 

Zero-width space.

LBP_CM 

Combining marks.

LBP_WJ 

Word joiner.

LBP_H2 

Hangul LV.

LBP_H3 

Hangul LVT.

LBP_JL 

Hangul L Jamo.

LBP_JV 

Hangul V Jamo.

LBP_JT 

Hangul T Jamo.

LBP_RI 

Regional indicator.

LBP_EB 

Emoji base.

LBP_EM 

Emoji modifier.

LBP_ZWJ 

Zero width joiner.

LBP_AK 

Aksara.

LBP_AP 

Aksara Pre-Base.

LBP_AS 

Aksara Start.

LBP_VF 

Virama Final.

LBP_VI 

Virama.

LBP_HH 

Unambiguous Hyphen.

LBP_CB 

Contingent break.

LBP_AI 

Ambiguous (alphabetic or ideograph).

LBP_BK 

Break (mandatory).

LBP_CJ 

Conditional Japanese starter.

LBP_CR 

Carriage return.

LBP_LF 

Line feed.

LBP_NL 

Next line.

LBP_SA 

South-East Asian.

LBP_SG 

Surrogates.

LBP_SP 

Space.

LBP_XX 

Unknown.

◆ PendingRule

Identifies which lookahead rule currently has a tentative break pending resolution by the next character.

Enumerator
PENDING_NONE 

No pending tentative break.

PENDING_LB15B 

LB15b: tentative break before a Pf&QU.

PENDING_LB15C 

LB15c: tentative break before IS after SP.

PENDING_LB19A 

LB19a: tentative break before a Pi&QU.

PENDING_LB28A4 

LB28a sub-rule 4: tentative break after aksara.

Variable Documentation

◆ lb_prop_bmp

const char lb_prop_bmp[]
extern

Line breaking properties for BMP.

◆ lb_prop_lang_map

const struct LineBreakPropertiesLang lb_prop_lang_map[]
extern

Association data of language-specific line breaking properties with language names.

This is the definition for the static data in this file. If you want more flexibility, or do not need the data here, you may want to redefine lb_prop_lang_map in your C source file.

◆ lb_prop_supplementary

const struct LineBreakProperties lb_prop_supplementary[]
extern

Line breaking properties for supplementary planes.

◆ lb_prop_supplementary_len

const unsigned int lb_prop_supplementary_len
extern