Word => edge. Foot => edge. Syl => edge, stress. ... vow => stress, voc. edge => ini, fin. voc => grv, rnd, height.Note: only the complex feature structures edge and voc need a separate definition.
FRONT := [voc:[-grv, -rnd]]. SPREAD := [voc:[+grv, -rnd]]. ROUND := [voc:[+grv, +rnd]]. HIGH := [voc:[height=close]]. MID := [voc:[height=mid]]. LOW := [voc:[height=open]].Note: macro's such as these can be used to make a grammar more readable, easier to modify, as well as to express the fact that there are no front, rounded vowels.
Templates are general descriptions of different kinds of constituents:
[edge:[ini=A, fin=B]] --> [edge:[ini=A, -fin]], [edge:[-ini, fin=B]]. [edge=A] --> [edge=A]. [stress=A] --> [stress=A].Weak-strong or strong-weak:
[stress=A] --> ( / [stress=A]). [stress=A] --> ([stress=A] \ ).Note: the feature edge is used to mark the left and right edges of a structure; the feature stress is a head-feature of all categories which define the feature.
Word:[edge:[+ini, +fin]].Note: the top-level goal for the parser; the feature edge is assigned the interpretation of "edge of a word".
Word --> (Foot / Word). Word --> Foot. Foot:[edge:[+fin]] --> ((Syl:[+stress] \ Syl:[-stress]) \ Syl:[-stress]). Foot --> (Syl:[+stress] \ Syl:[-stress]). Foot:[edge:[+ini]] --> Syl. Syl --> (On / Ri). ... etc.Notes: in this grammar, the main stress occurs in either the ante-penultimate or the penultimate syllable; a monosyllabic foot is allowed only word-initially.
vow:[FRONT, HIGH] --> "i". vow:[-stress, SPREAD, MID] --> "@".Notes: the macro's are expanded during compilation; if all categories between Syl and vow are defined for the feature stress, the templates will assure that schwa can only occur in unstressed syllables.