Presently something like:
void main() {
if X
gl_Position = vec4(0.,0.,0.,1.);
else
gl_Position = vec4(1.,1.,1.,1.);
endif
}
does not properly dissolve. To correctly dissolve this, the 'dissolve' function in glo.ml needs to detect EsslParseErrors occurring at the initial or final tokens in a Chunk token stream and then attempt to fuse the chunk with the appropriate neighboring chunks under the preprocessor recursively (and yield the original sequence of preprocessor expressions that successfully parse as ESSL).