Translit ->
Arg Dest : &String, Src : String 
    . : STR_RESTORE_CYRILLIC

A = < `DEC_A_CYR, `DEC_A_LAT > ..; - Spaces 'A'
B = < `DEC_B_CYR, `DEC_B_LAT > ..; - Spaces 'B'
C = < `DEC_C_CYR, `DEC_C_LAT > ..; - Spaces 'C'
D = < `DEC_D_CYR, `DEC_D_LAT > ..; - Spaces 'D'

Dest <- Src STR_LOWER_CASE

T = A = B = C = D = .

Do 4
 Cyrillic <- T.1 # ' '
 Translit <- T.2 # ' '

 - T 'Dest' Translit Cyrillic

 T = A = B = C = D = .
;

/

T Translit ->
Arg Text : ^&String, Translit, Cyrillic : Array : String

Do T 'Text' Translit Cyrillic Token_length
Where Token_length = `DEC_MAX_TOKEN_LENGTH to 1 step -1

/

T T Translit ->
Arg Text : ^&String, Translit, Cyrillic : Array : String, Token_length : Integer

Do Text <- Text Translit.i Cyrillic.i [ Translit.i._ = Token_length ]
Where i = 1 to Translit._

/