Strings are passed through without modification. This is generally what you
want for GLSL keywords and floating point numbers.
"#version 300 es\nprecision mediump float;\nuniform sampler2D u_image;\nin vec2 v_texCoord;\nout vec4 outColor;\nvoid main()\n{\n outColor = (texture(u_image, v_texCoord));\n if ((outColor.rgb) == (vec3(0.0, 0.0, 0.0)))\n {\n discard;\n }\n else\n {\n outColor = (vec4(0.0, 0.0, 0.0, 1.0));\n }\n}"
(iglu->glsl
'{:version "300 es",
:precision "mediump float",
:uniforms {u_image sampler2D},
:inputs {v_texCoord vec2},
:outputs {outColor vec4},
:signatures {main ([] void)},
:functions
{main
([]
(= outColor (texture u_image v_texCoord))
("if" (== (.rgb outColor) (vec3 "0.0" "0.0" "0.0")) "discard")
("else" (= outColor (vec4 "0.0" "0.0" "0.0" "1.0"))))}})