Ну да, а парсер каждый должен писать свой, и реализовывать и все vec4(float), и vec4(float, float, float, float), и vec4(float, float3), и так далее, и out, и inout, и структуры и массивы в юниформах, и массивы сэмплеров, и сэмплеры в качестве параметров функций, это если говорить только о ES 2.0, и всякие инвертирования матриц даже, и разнообразные циклы с continue и break