#version 300 es in vec4 vtx_pos; out vec2 v_coord; uniform mat3 t_mat; void main(void) { vec3 tmp = t_mat * vec3(vtx_pos.xy, 1.0); v_coord = tmp.xy; gl_Position = vec4(vtx_pos.xy, 1.0, 1.0); } Running the parser on this code fails on the second like for the token "in"