Set __VERSION__ macro when the #version directive is parsed

__VERSION__ macro needs to be set to 300 when #version 300 es is on the
first line of the shader, since section 3.4 of ESSL 3.00.4 spec mentions
that the value of __VERSION__ should match the shading language being
parsed. The value from parsing the version directive replaces the default
value 100.

BUG=angleproject:524
TEST=dEQP-GLES3.functional.shaders.preprocessor.predefined_macros.*
     (4 tests start passing, 2 still fail)
     dEQP-GLES3.functional.shaders.preprocessor.conditionals.*
     (2 tests start passing)
     dEQP-GLES2.functional.shaders.preprocessor.predefined_macros.*
     (no regression)

Change-Id: I15bfdeb73d1e343d131ded56b1fd52ca5ef32408
Reviewed-on: https://chromium-review.googlesource.com/293440
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/preprocessor/DirectiveParser.cpp b/src/compiler/preprocessor/DirectiveParser.cpp
index 44cd6ba..7f8f27b 100644
--- a/src/compiler/preprocessor/DirectiveParser.cpp
+++ b/src/compiler/preprocessor/DirectiveParser.cpp
@@ -821,6 +821,7 @@
     {
         mDirectiveHandler->handleVersion(token->location, version);
         mShaderVersion = version;
+        PredefineMacro(mMacroSet, "__VERSION__", version);
     }
 }