Transform concrete grammar into abstract algebra

`LocalVariableDeclarationStatement` should only be applicable in blocks, therefore we probably need a separate `BlockStatement`.