The grammar is easy to read and understand. However, notice that this description is very language specific. I.e., in Pascal, this specification may be correct; but in C, the conditional control has another appearance ``if (...) {...} else {...}''. This means even though the syntax and semantics of some statements are alike in another language, it is unlikely that it can reuse the existing specification. This is why people have to rewrite the whole module in order to change all these lexical symbols.
To get out of this difficulty, a recent suggestion raises the issue of separating the description into two layers. This will be discussed in the latter part of this paper.