word
  := syll
   | 2: syll syll
   | 3: syll syll syll
   | 2: syll syll syll syll
   ;

syll
  := 6:  vowel
   | 12: cons vowel
   | 4:  vowel "n"
   |     vowel "ng"
   | 3:  cons vowel "n"
   |     cons vowel "ng"
   ;

cons ::= k g t d s z r r r j m m n n w;
vowel := (10: "" | "y") ("a" | "i" | "u" | "e" | "o");

puts word;