S ::= NP VP ; VP ::= V | TV NP | "is" A ; NP ::= ("this" | "that" | "the" | "a") CN ; CN ::= A CN ; CN ::= "boy" | "louse" | "snake" | "worm" ; A ::= "green" | "rotten" | "thick" | "warm" ; V ::= "laughs" | "sleeps" | "swims" ; TV ::= "eats" | "kills" | "washes" ;