Supporting declaring variables with new(), make and local variable assignment isn't mandated by the need to make the grammar regular. It's simply a braindead idea. Go might have significant improvements over C, but they screwed the pooch on this one.