The particular example of the language could have been done with distinct words, not a single overloaded word that depends on order of placement. More decorator-like, for example.
int const * - pointer to const int.
int * const - const pointer to int.
int const * const - const pointer to const int.
I'm not sure what type of grammar could have been used to make this easier. Nobody said that indirection is easy, but indirection IS essential.
If you have to use other words to describe what something is, why not use the other words in the first place?
(well to be fair, 'add 1 to cobol' should be enough)