#
#   Copyright (C) 2002-2004, International Business Machines Corporation and others.
#       All Rights Reserved.
#
#   file:  char.txt 
#
#   ICU Character Break Rules, also known as Grapheme Cluster Boundaries
#      See Unicode Standard Annex #29.
#      These rules are based on TR29 Version 4.0.0
#

#
#  Character Class Definitions.
#    The names are those from TR29.
#
$CR = \r;
$LF = \n;
$Control    = [[:Zl:] [:Zp:] [:Cc:] [:Cf:] - [:Grapheme_Extend = TRUE:]];

$Extend     = [[:Grapheme_Extend = TRUE:]];

#
# Korean Syllable Definitions
#
$L   = [:Hangul_Syllable_Type = L:];
$V   = [:Hangul_Syllable_Type = V:];
$T   = [:Hangul_Syllable_Type = T:];

$LV  = [:Hangul_Syllable_Type = LV:];
$LVT = [:Hangul_Syllable_Type = LVT:];

$HangulSyllable = $L+ | ($L* ($LV? $V+ | $LV | $LVT) $T*) | $T+;

## -------------------------------------------------

!!forward;

$CR $LF;
([^$Control] | $HangulSyllable) $Extend*;

## -------------------------------------------------

!!reverse;

$BackHangulSyllable = $L+ | ($T* ($V+$LV? | $LV | $LVT) $L*) | $T+;
$BackOneCluster = ($LF $CR) | ($Extend* ([^$Control] | $BackHangulSyllable));
$BackOneCluster;

## -------------------------------------------------

!!safe_reverse;

# rule 6, 7, 8
$V+ $L;

## -------------------------------------------------

!!safe_forward;

# rule 6, 7, 8
$V+ $T;
