Simply put, using the symbols '[' or ']' anywhere within an FX code section within a .shader file will cause the shader code to be truncated at that point. I think this bug has something to do with the new #define support, but I wasn't able to verify that by looking at the shader resource code.
Example:
Code:
void main( void )
{
vec3 myVar = someMatrix[idx];
gl_Position = myVar;
}
will cause the file to become:
Code:
void main( void )
{
vec3 myVar = someMatrix
causing an unexpected end error by the GLSL compiler.
Note: This problem does not occur if you include a .glsl file and use '[' and ']' in there. This only occurs inside an FX code block.