::vowel:: = a|á|â|æ|e|é|è|ê|ë|i|î|ï|o|ô|œ|u|ù|û|ü|A|Á|Â|Æ|E|É|È|Ê|Ë|I|Î|Ï|O|Ô|Œ|U|Ù|Û|Ü|ɛ
::front_vowel:: = e|é|è|ê|ë|i|î|ï|y|E|É|È|Ê|Ë|I|Î|Ï|Y|ɛ
::consonant:: = b|ç|c|ch|d|f|g|j|k|l|m|n|p|r|s|t|v|w|z|ʒ

% Treatment of <c> and <s>
sc -> s / _ (::front_vowel::)
c -> s / _ (::front_vowel::)
% Palatalization and lenition of <g>
g -> ʒ / _ (::front_vowel::)

j -> ʒ / _
i -> j / _ (::vowel::)

% Rules to be completed (with tilde) (old)
% a[mn] -> ẫ / _ #|x|(::consonant::)(::consonant::)
% ai[mn] -> ễ / _ #|x|(::consonant::)(::consonant::)
% ien -> iễ / _ #|x|(::consonant::)(::consonant::)
% e[mn] -> ẫ / _ #|x|(::consonant::)(::consonant::)
% ein|im|in|ym|yn -> aî̃ / _ #|x|(::consonant::)(::consonant::)
% eun|un|um -> œ̃ / _ #|x|(::consonant::)(::consonant::)
% om|on -> õ / _ #|x|(::consonant::)(::consonant::)
% uin -> uẽ / _ #|x|(::consonant::)(::consonant::)
% oin -> ouễ / _ #|x|(::consonant::)(::consonant::)

a[mn] -> ẫ / _ #|x|(::consonant::)
ai[mn] -> ễ / _ #|x|(::consonant::)
ien -> iễ / _ #|x|(::consonant::)
e[mn] -> ẫ / _ #|x|(::consonant::)
ein|im|in|ym|yn -> aî̃ / _ #|x|(::consonant::)
eun|un|um -> œ̃ / _ #|x|(::consonant::)
om|on -> õ / _ #|x|(::consonant::)
uin -> uẽ / _ #|x|(::consonant::)
oin -> ouễ / _ #|x|(::consonant::)

% Treatment of <qu>
qu -> k / _

% Treatment of <l>
il -> j / (::vowel::) _
ill -> j / (::vowel::) _

x -> ks / _ (p|t|k|f|s|ch)

% Intervocalic voicing of <s>
s -> z / (::vowel::) _ (::vowel::)

% High vowels become glides before vowels
ou -> w / _ (::vowel::)
u -> ɥ / _ (::vowel::)

% Context where <y> is realized as a vowel
y -> j / [::vowel]]
y -> i / _

% "Deletion" of <ent> word finally
% This rule is sensitive to part of speech
% ent -> 0 / _ #

% Treatment of <er>
% er -> é / _ #

% Deletion of final <e>
e -> 0 / (::vowel::).+ _ #

% A strange rule
% ct -> 0 / _ (am|an|aen|aim|ain|aon|em|en|ein|eun|ien|im|in|oin|om|on|uin|uin|um|un|ym|yn)#

% A less strange rule
ng -> n / ei _ #

e -> ɛ / _ x|(::consonant::)(::consonant::)
e -> ɛ / (::vowel::).+ _ (::consonant::) #

s -> 0 / [^ɛ] _ #

d -> 0 / (::vowel::|n) _ #
dd -> 0 / (::vowel::|n) _ #
g -> 0 / (::vowel::) _ #
p -> 0 / (::vowel::|m) _ #
pp -> 0 / (::vowel::|m) _ #
t -> 0 / (::vowel::|n) _ #
tt -> 0 / (::vowel::|n) _ #
x -> 0 / (::vowel::) _ #
ent -> 0 / (::vowel::).+ _ #

ɛs -> 0 / _ #
