snt --> det(F), adjs(F), noun. det(F) --> [a], { F = consonant } ; [an], { F = vowel }. adjs(F) --> adj(F); adj(F), adjs(_). adj(F) --> [spotted], { F = consonant } ; [endangered], { F = vowel } ; [poison_arrow], { F = consonant }. noun --> [frog] ; [owl].