If you're given a language, how do you figure out if it's regular, CF but not regular, or phrase-structure but not CF? Is there a good way to attack this problem? I could randomly try to make FAs or PDAs, but I feel like there's a better way to do it.
Classic example:
L = { a^n b^n c^n | n >= 0 }
Where would one start? Thanks.