Current File : /home/omtekel/wiki/vendor/wikimedia/langconv/fst/crh-write.foma
# Depends on crh.foma
echo EXPECT 12

# Generate and save the transducers
regex TEST'UPPER'UNIVERSAL(CONVERT'CRH'LATN);
echo EXPECT[trans-crh-latn universal]: 1 (1 = TRUE, 0 = FALSE)
test null
pop stack

regex CONVERT'CRH'LATN;
minimize net
echo EXPECT[trans-crh-latn functional]: 1 (1 = TRUE, 0 = FALSE)
test functional
byte machine
write att trans-crh-latn.att
pop stack

define RT'LATN'CYRL ROUNDTRIP(CONVERT'CRH'LATN, CONVERT'CRH'CYRL);
define SAFE'LATN'CYRL APPROX'SAFE(?^<6 | [ (?) ROMAN (?) ], RT'LATN'CYRL);

regex LONGSAFEWORD'EX'NOT'OK(RT'LATN'CYRL, SAFE'LATN'CYRL, BREAK);
echo EXPECT[brack-crh-latn-crh-cyrl safe]: 1 (1 = TRUE, 0 = FALSE)
test null
print shortest-string
pop stack

regex LONGSAFEWORD'EX(SAFE'LATN'CYRL, BREAK);
echo EXPECT[brack-crh-latn-crh-cyrl functional]: 1 (1 = TRUE, 0 = FALSE)
test functional
byte machine
write att brack-crh-latn-crh-cyrl.att
pop stack

undefine RT'LATN'CYRL;
undefine SAFE'LATN'CYRL;

regex LONGSAFEWORD'NOT'OK(CONVERT'CRH'LATN .o. IDENTITY, BREAK);
echo EXPECT[brack-crh-latn-noop safe]: 1 (1 = TRUE, 0 = FALSE)
test null
print shortest-string
pop stack

regex LONGSAFEWORD(CONVERT'CRH'LATN .o. IDENTITY, BREAK);
minimize net
echo EXPECT[brack-crh-latn-noop functional]: 1 (1 = TRUE, 0 = FALSE)
test functional
byte machine
write att brack-crh-latn-noop.att
pop stack

regex TEST'UPPER'UNIVERSAL(CONVERT'CRH'CYRL);
echo EXPECT[trans-crh-cyrl universal]: 1 (1 = TRUE, 0 = FALSE)
test null
pop stack

regex CONVERT'CRH'CYRL;
minimize net
echo EXPECT[trans-crh-cyrl functional]: 1 (1 = TRUE, 0 = FALSE)
test functional
byte machine
write att trans-crh-cyrl.att
pop stack

define RT'CYRL'LATN ROUNDTRIP(CONVERT'CRH'CYRL, CONVERT'CRH'LATN);
define SAFE'CYRL'LATN APPROX'SAFE(?^<6 | [ (?) ROMAN (?) ], RT'CYRL'LATN);

regex LONGSAFEWORD'EX'NOT'OK(RT'CYRL'LATN, SAFE'CYRL'LATN, BREAK);
echo EXPECT[brack-crh-cyrl-crh-latn safe]: 1 (1 = TRUE, 0 = FALSE)
test null
print shortest-string
pop stack

regex LONGSAFEWORD'EX(SAFE'CYRL'LATN, BREAK);
minimize net
echo EXPECT[brack-crh-cyrl-crh-latn functional]: 1 (1 = TRUE, 0 = FALSE)
test functional
define BRACK'CYRL'LATN;
byte machine
write att brack-crh-cyrl-crh-latn.att
pop stack

undefine RT'CYRL'LATN;
undefine SAFE'CYRL'LATN;

regex LONGSAFEWORD'NOT'OK(CONVERT'CRH'CYRL .o. IDENTITY, BREAK);
echo EXPECT[brack-crh-cyrl-noop safe]: 1 (1 = TRUE, 0 = FALSE)
test null
print shortest-string
pop stack

regex LONGSAFEWORD(CONVERT'CRH'CYRL .o. IDENTITY, BREAK);
minimize net
echo EXPECT[brack-crh-cyrl-noop functional]: 1 (1 = TRUE, 0 = FALSE)
test functional
byte machine
write att brack-crh-cyrl-noop.att
pop stack