Browse Source

More readable code

Toni Helenius 8 months ago
parent
commit
e0d4ba934b

+ 412 - 412
jme3-glsl-highlighter/src/com/jme3/gde/glsl/highlighter/lexer/GlslKeywordLibrary.java

@@ -45,440 +45,440 @@ final class GlslKeywordLibrary {
         KEYWORD, BUILTIN_FUNCTION, BUILTIN_VARIABLE, BASIC_TYPE, UNFINISHED;
         KEYWORD, BUILTIN_FUNCTION, BUILTIN_VARIABLE, BASIC_TYPE, UNFINISHED;
     }
     }
     
     
-    private static final Trie keywordsTrie = new Trie();
-    private static final Trie builtinFunctionsTrie = new Trie();
-    private static final Trie builtinVariablesTrie = new Trie();
-    private static final Trie basicTypesTrie = new Trie();
+    private static final Trie keywords = new Trie();
+    private static final Trie builtinFunctions = new Trie();
+    private static final Trie builtinVariables = new Trie();
+    private static final Trie basicTypes = new Trie();
 
 
     static {
     static {
         //keywords
         //keywords
-        keywordsTrie.insert("attribute");
-        keywordsTrie.insert("const");
-        keywordsTrie.insert("uniform");
-        keywordsTrie.insert("varying");
-        keywordsTrie.insert("buffer");
-        keywordsTrie.insert("shared");
-        keywordsTrie.insert("coherent");
-        keywordsTrie.insert("volatile");
-        keywordsTrie.insert("restrict");
-        keywordsTrie.insert("readonly");
-        keywordsTrie.insert("writeonly");
-        keywordsTrie.insert("atomic_uint");
-        keywordsTrie.insert("layout");
-        keywordsTrie.insert("centroid");
-        keywordsTrie.insert("flat");
-        keywordsTrie.insert("smooth");
-        keywordsTrie.insert("noperspective");
-        keywordsTrie.insert("patch");
-        keywordsTrie.insert("sample");
-        keywordsTrie.insert("break");
-        keywordsTrie.insert("continue");
-        keywordsTrie.insert("do");
-        keywordsTrie.insert("for");
-        keywordsTrie.insert("while");
-        keywordsTrie.insert("switch");
-        keywordsTrie.insert("case");
-        keywordsTrie.insert("default");
-        keywordsTrie.insert("if");
-        keywordsTrie.insert("else");
-        keywordsTrie.insert("subroutine");
-        keywordsTrie.insert("in");
-        keywordsTrie.insert("out");
-        keywordsTrie.insert("inout");
-        keywordsTrie.insert("void");
-        keywordsTrie.insert("true");
-        keywordsTrie.insert("false");
-        keywordsTrie.insert("invariant");
-        keywordsTrie.insert("precise");
-        keywordsTrie.insert("discard");
-        keywordsTrie.insert("return");
+        keywords.insert("attribute");
+        keywords.insert("const");
+        keywords.insert("uniform");
+        keywords.insert("varying");
+        keywords.insert("buffer");
+        keywords.insert("shared");
+        keywords.insert("coherent");
+        keywords.insert("volatile");
+        keywords.insert("restrict");
+        keywords.insert("readonly");
+        keywords.insert("writeonly");
+        keywords.insert("atomic_uint");
+        keywords.insert("layout");
+        keywords.insert("centroid");
+        keywords.insert("flat");
+        keywords.insert("smooth");
+        keywords.insert("noperspective");
+        keywords.insert("patch");
+        keywords.insert("sample");
+        keywords.insert("break");
+        keywords.insert("continue");
+        keywords.insert("do");
+        keywords.insert("for");
+        keywords.insert("while");
+        keywords.insert("switch");
+        keywords.insert("case");
+        keywords.insert("default");
+        keywords.insert("if");
+        keywords.insert("else");
+        keywords.insert("subroutine");
+        keywords.insert("in");
+        keywords.insert("out");
+        keywords.insert("inout");
+        keywords.insert("void");
+        keywords.insert("true");
+        keywords.insert("false");
+        keywords.insert("invariant");
+        keywords.insert("precise");
+        keywords.insert("discard");
+        keywords.insert("return");
         //primitives and other types
         //primitives and other types
-        basicTypesTrie.insert("float");
-        basicTypesTrie.insert("double");
-        basicTypesTrie.insert("int");
-        basicTypesTrie.insert("bool");
-        basicTypesTrie.insert("mat2");
-        basicTypesTrie.insert("mat3");
-        basicTypesTrie.insert("mat4");
-        basicTypesTrie.insert("dmat2");
-        basicTypesTrie.insert("dmat3");
-        basicTypesTrie.insert("dmat4");
-        basicTypesTrie.insert("mat2x2");
-        basicTypesTrie.insert("mat2x3");
-        basicTypesTrie.insert("mat2x4");
-        basicTypesTrie.insert("dmat2x2");
-        basicTypesTrie.insert("dmat2x3");
-        basicTypesTrie.insert("dmat2x4");
-        basicTypesTrie.insert("mat3x2");
-        basicTypesTrie.insert("mat3x3");
-        basicTypesTrie.insert("mat3x4");
-        basicTypesTrie.insert("dmat3x2");
-        basicTypesTrie.insert("dmat3x3");
-        basicTypesTrie.insert("dmat3x4");
-        basicTypesTrie.insert("mat4x2");
-        basicTypesTrie.insert("mat4x3");
-        basicTypesTrie.insert("mat4x4");
-        basicTypesTrie.insert("dmat4x2");
-        basicTypesTrie.insert("dmat4x3");
-        basicTypesTrie.insert("dmat4x4");
-        basicTypesTrie.insert("vec2");
-        basicTypesTrie.insert("vec3");
-        basicTypesTrie.insert("vec4");
-        basicTypesTrie.insert("ivec2");
-        basicTypesTrie.insert("ivec3");
-        basicTypesTrie.insert("ivec4");
-        basicTypesTrie.insert("bvec2");
-        basicTypesTrie.insert("bvec3");
-        basicTypesTrie.insert("bvec4");
-        basicTypesTrie.insert("dvec2");
-        basicTypesTrie.insert("dvec3");
-        basicTypesTrie.insert("dvec4");
-        basicTypesTrie.insert("uint");
-        basicTypesTrie.insert("uvec2");
-        basicTypesTrie.insert("uvec3");
-        basicTypesTrie.insert("uvec4");
-        basicTypesTrie.insert("lowp");
-        basicTypesTrie.insert("mediump");
-        basicTypesTrie.insert("highp");
-        basicTypesTrie.insert("precision");
-        basicTypesTrie.insert("sampler1D");
-        basicTypesTrie.insert("sampler2D");
-        basicTypesTrie.insert("sampler3D");
-        basicTypesTrie.insert("samplerCube");
-        basicTypesTrie.insert("sampler1DShadow");
-        basicTypesTrie.insert("sampler2DShadow");
-        basicTypesTrie.insert("samplerCubeShadow");
-        basicTypesTrie.insert("sampler1DArray");
-        basicTypesTrie.insert("sampler2DArray");
-        basicTypesTrie.insert("sampler1DArrayShadow");
-        basicTypesTrie.insert("sampler2DArrayShadow");
-        basicTypesTrie.insert("isampler1D");
-        basicTypesTrie.insert("isampler2D");
-        basicTypesTrie.insert("isampler3D");
-        basicTypesTrie.insert("isamplerCube");
-        basicTypesTrie.insert("isampler1DArray");
-        basicTypesTrie.insert("isampler2DArray");
-        basicTypesTrie.insert("usampler1D");
-        basicTypesTrie.insert("usampler2D");
-        basicTypesTrie.insert("usampler3D");
-        basicTypesTrie.insert("usamplerCube");
-        basicTypesTrie.insert("usampler1DArray");
-        basicTypesTrie.insert("usampler2DArray");
-        basicTypesTrie.insert("sampler2DRect");
-        basicTypesTrie.insert("sampler2DRectShadow");
-        basicTypesTrie.insert("isampler2DRect");
-        basicTypesTrie.insert("usampler2DRect");
-        basicTypesTrie.insert("samplerBuffer");
-        basicTypesTrie.insert("isamplerBuffer");
-        basicTypesTrie.insert("usamplerBuffer");
-        basicTypesTrie.insert("sampler2DMS");
-        basicTypesTrie.insert("isampler2DMS");
-        basicTypesTrie.insert("usampler2DMS");
-        basicTypesTrie.insert("sampler2DMSArray");
-        basicTypesTrie.insert("isampler2DMSArray");
-        basicTypesTrie.insert("usampler2DMSArray");
-        basicTypesTrie.insert("samplerCubeArray");
-        basicTypesTrie.insert("samplerCubeArrayShadow");
-        basicTypesTrie.insert("isamplerCubeArray");
-        basicTypesTrie.insert("usamplerCubeArray");
-        basicTypesTrie.insert("image1D");
-        basicTypesTrie.insert("iimage1D");
-        basicTypesTrie.insert("uimage1D");
-        basicTypesTrie.insert("image2D");
-        basicTypesTrie.insert("iimage2D");
-        basicTypesTrie.insert("uimage2D");
-        basicTypesTrie.insert("image3D");
-        basicTypesTrie.insert("iimage3D");
-        basicTypesTrie.insert("uimage3D");
-        basicTypesTrie.insert("image2DRect");
-        basicTypesTrie.insert("iimage2DRect");
-        basicTypesTrie.insert("uimage2DRect");
-        basicTypesTrie.insert("imageCube");
-        basicTypesTrie.insert("iimageCube");
-        basicTypesTrie.insert("uimageCube");
-        basicTypesTrie.insert("imageBuffer");
-        basicTypesTrie.insert("iimageBuffer");
-        basicTypesTrie.insert("uimageBuffer");
-        basicTypesTrie.insert("image1DArray");
-        basicTypesTrie.insert("iimage1DArray");
-        basicTypesTrie.insert("uimage1DArray");
-        basicTypesTrie.insert("image2DArray");
-        basicTypesTrie.insert("iimage2DArray");
-        basicTypesTrie.insert("uimage2DArray");
-        basicTypesTrie.insert("imageCubeArray");
-        basicTypesTrie.insert("iimageCubeArray");
-        basicTypesTrie.insert("uimageCubeArray");
-        basicTypesTrie.insert("image2DMS");
-        basicTypesTrie.insert("iimage2DMS");
-        basicTypesTrie.insert("uimage2DMS");
-        basicTypesTrie.insert("image2DMSArray");
-        basicTypesTrie.insert("iimage2DMSArray");
-        basicTypesTrie.insert("uimage2DMSArray");
-        basicTypesTrie.insert("struct");
+        basicTypes.insert("float");
+        basicTypes.insert("double");
+        basicTypes.insert("int");
+        basicTypes.insert("bool");
+        basicTypes.insert("mat2");
+        basicTypes.insert("mat3");
+        basicTypes.insert("mat4");
+        basicTypes.insert("dmat2");
+        basicTypes.insert("dmat3");
+        basicTypes.insert("dmat4");
+        basicTypes.insert("mat2x2");
+        basicTypes.insert("mat2x3");
+        basicTypes.insert("mat2x4");
+        basicTypes.insert("dmat2x2");
+        basicTypes.insert("dmat2x3");
+        basicTypes.insert("dmat2x4");
+        basicTypes.insert("mat3x2");
+        basicTypes.insert("mat3x3");
+        basicTypes.insert("mat3x4");
+        basicTypes.insert("dmat3x2");
+        basicTypes.insert("dmat3x3");
+        basicTypes.insert("dmat3x4");
+        basicTypes.insert("mat4x2");
+        basicTypes.insert("mat4x3");
+        basicTypes.insert("mat4x4");
+        basicTypes.insert("dmat4x2");
+        basicTypes.insert("dmat4x3");
+        basicTypes.insert("dmat4x4");
+        basicTypes.insert("vec2");
+        basicTypes.insert("vec3");
+        basicTypes.insert("vec4");
+        basicTypes.insert("ivec2");
+        basicTypes.insert("ivec3");
+        basicTypes.insert("ivec4");
+        basicTypes.insert("bvec2");
+        basicTypes.insert("bvec3");
+        basicTypes.insert("bvec4");
+        basicTypes.insert("dvec2");
+        basicTypes.insert("dvec3");
+        basicTypes.insert("dvec4");
+        basicTypes.insert("uint");
+        basicTypes.insert("uvec2");
+        basicTypes.insert("uvec3");
+        basicTypes.insert("uvec4");
+        basicTypes.insert("lowp");
+        basicTypes.insert("mediump");
+        basicTypes.insert("highp");
+        basicTypes.insert("precision");
+        basicTypes.insert("sampler1D");
+        basicTypes.insert("sampler2D");
+        basicTypes.insert("sampler3D");
+        basicTypes.insert("samplerCube");
+        basicTypes.insert("sampler1DShadow");
+        basicTypes.insert("sampler2DShadow");
+        basicTypes.insert("samplerCubeShadow");
+        basicTypes.insert("sampler1DArray");
+        basicTypes.insert("sampler2DArray");
+        basicTypes.insert("sampler1DArrayShadow");
+        basicTypes.insert("sampler2DArrayShadow");
+        basicTypes.insert("isampler1D");
+        basicTypes.insert("isampler2D");
+        basicTypes.insert("isampler3D");
+        basicTypes.insert("isamplerCube");
+        basicTypes.insert("isampler1DArray");
+        basicTypes.insert("isampler2DArray");
+        basicTypes.insert("usampler1D");
+        basicTypes.insert("usampler2D");
+        basicTypes.insert("usampler3D");
+        basicTypes.insert("usamplerCube");
+        basicTypes.insert("usampler1DArray");
+        basicTypes.insert("usampler2DArray");
+        basicTypes.insert("sampler2DRect");
+        basicTypes.insert("sampler2DRectShadow");
+        basicTypes.insert("isampler2DRect");
+        basicTypes.insert("usampler2DRect");
+        basicTypes.insert("samplerBuffer");
+        basicTypes.insert("isamplerBuffer");
+        basicTypes.insert("usamplerBuffer");
+        basicTypes.insert("sampler2DMS");
+        basicTypes.insert("isampler2DMS");
+        basicTypes.insert("usampler2DMS");
+        basicTypes.insert("sampler2DMSArray");
+        basicTypes.insert("isampler2DMSArray");
+        basicTypes.insert("usampler2DMSArray");
+        basicTypes.insert("samplerCubeArray");
+        basicTypes.insert("samplerCubeArrayShadow");
+        basicTypes.insert("isamplerCubeArray");
+        basicTypes.insert("usamplerCubeArray");
+        basicTypes.insert("image1D");
+        basicTypes.insert("iimage1D");
+        basicTypes.insert("uimage1D");
+        basicTypes.insert("image2D");
+        basicTypes.insert("iimage2D");
+        basicTypes.insert("uimage2D");
+        basicTypes.insert("image3D");
+        basicTypes.insert("iimage3D");
+        basicTypes.insert("uimage3D");
+        basicTypes.insert("image2DRect");
+        basicTypes.insert("iimage2DRect");
+        basicTypes.insert("uimage2DRect");
+        basicTypes.insert("imageCube");
+        basicTypes.insert("iimageCube");
+        basicTypes.insert("uimageCube");
+        basicTypes.insert("imageBuffer");
+        basicTypes.insert("iimageBuffer");
+        basicTypes.insert("uimageBuffer");
+        basicTypes.insert("image1DArray");
+        basicTypes.insert("iimage1DArray");
+        basicTypes.insert("uimage1DArray");
+        basicTypes.insert("image2DArray");
+        basicTypes.insert("iimage2DArray");
+        basicTypes.insert("uimage2DArray");
+        basicTypes.insert("imageCubeArray");
+        basicTypes.insert("iimageCubeArray");
+        basicTypes.insert("uimageCubeArray");
+        basicTypes.insert("image2DMS");
+        basicTypes.insert("iimage2DMS");
+        basicTypes.insert("uimage2DMS");
+        basicTypes.insert("image2DMSArray");
+        basicTypes.insert("iimage2DMSArray");
+        basicTypes.insert("uimage2DMSArray");
+        basicTypes.insert("struct");
         //builtin variables
         //builtin variables
         //compute shaders
         //compute shaders
-        builtinVariablesTrie.insert("gl_NumWorkGroups");
-        builtinVariablesTrie.insert("gl_WorkGroupSize");
-        builtinVariablesTrie.insert("gl_WorkGroupID");
-        builtinVariablesTrie.insert("gl_LocalInvocationID");
-        builtinVariablesTrie.insert("gl_GlobalInvocationID");
-        builtinVariablesTrie.insert("gl_LocalInvocationIndex");
+        builtinVariables.insert("gl_NumWorkGroups");
+        builtinVariables.insert("gl_WorkGroupSize");
+        builtinVariables.insert("gl_WorkGroupID");
+        builtinVariables.insert("gl_LocalInvocationID");
+        builtinVariables.insert("gl_GlobalInvocationID");
+        builtinVariables.insert("gl_LocalInvocationIndex");
         //vertex shaders
         //vertex shaders
-        builtinVariablesTrie.insert("gl_VertexID");
-        builtinVariablesTrie.insert("gl_InstanceID");
-        builtinVariablesTrie.insert("gl_Position");
+        builtinVariables.insert("gl_VertexID");
+        builtinVariables.insert("gl_InstanceID");
+        builtinVariables.insert("gl_Position");
         //geometry shaders
         //geometry shaders
-        builtinVariablesTrie.insert("gl_PrimitiveIDIn");
-        builtinVariablesTrie.insert("gl_Layer");
-        builtinVariablesTrie.insert("gl_ViewportIndex");
+        builtinVariables.insert("gl_PrimitiveIDIn");
+        builtinVariables.insert("gl_Layer");
+        builtinVariables.insert("gl_ViewportIndex");
         //tesselation shaders
         //tesselation shaders
-        builtinVariablesTrie.insert("gl_MaxPatchVertices");
-        builtinVariablesTrie.insert("gl_PatchVerticesIn");
-        builtinVariablesTrie.insert("gl_TessLevelOuter");
-        builtinVariablesTrie.insert("gl_TessLevelInner");
-        builtinVariablesTrie.insert("gl_TessCoord");
+        builtinVariables.insert("gl_MaxPatchVertices");
+        builtinVariables.insert("gl_PatchVerticesIn");
+        builtinVariables.insert("gl_TessLevelOuter");
+        builtinVariables.insert("gl_TessLevelInner");
+        builtinVariables.insert("gl_TessCoord");
         //fragment shaders
         //fragment shaders
-        builtinVariablesTrie.insert("gl_FragCoord");
-        builtinVariablesTrie.insert("gl_FrontFacing");
-        builtinVariablesTrie.insert("gl_PointCoord");
-        builtinVariablesTrie.insert("gl_SampleID");
-        builtinVariablesTrie.insert("gl_SamplePosition");
-        builtinVariablesTrie.insert("gl_SampleMaskIn");
-        builtinVariablesTrie.insert("gl_Layer");
-        builtinVariablesTrie.insert("gl_ViewportIndex");
-        builtinVariablesTrie.insert("gl_FragColor");
+        builtinVariables.insert("gl_FragCoord");
+        builtinVariables.insert("gl_FrontFacing");
+        builtinVariables.insert("gl_PointCoord");
+        builtinVariables.insert("gl_SampleID");
+        builtinVariables.insert("gl_SamplePosition");
+        builtinVariables.insert("gl_SampleMaskIn");
+        builtinVariables.insert("gl_Layer");
+        builtinVariables.insert("gl_ViewportIndex");
+        builtinVariables.insert("gl_FragColor");
         //general
         //general
-        builtinVariablesTrie.insert("gl_Position");
-        builtinVariablesTrie.insert("gl_PointSize");
-        builtinVariablesTrie.insert("gl_ClipDistance");
-        builtinVariablesTrie.insert("gl_InvocationID");
-        builtinVariablesTrie.insert("gl_PrimitiveID");
+        builtinVariables.insert("gl_Position");
+        builtinVariables.insert("gl_PointSize");
+        builtinVariables.insert("gl_ClipDistance");
+        builtinVariables.insert("gl_InvocationID");
+        builtinVariables.insert("gl_PrimitiveID");
         //jme variables - this is why we build custom plugins :) (apart from existing being under GPL)
         //jme variables - this is why we build custom plugins :) (apart from existing being under GPL)
-        builtinVariablesTrie.insert("inPosition");
-        builtinVariablesTrie.insert("inNormal");
-        builtinVariablesTrie.insert("inColor");
-        builtinVariablesTrie.insert("inTextCoord");
-        builtinVariablesTrie.insert("g_WorldMatrix");
-        builtinVariablesTrie.insert("g_ViewMatrix");
-        builtinVariablesTrie.insert("g_ProjectionMatrix");
-        builtinVariablesTrie.insert("g_WorldViewMatrix");
-        builtinVariablesTrie.insert("g_WorldViewProjectionMatrix");
-        builtinVariablesTrie.insert("g_WorldNormalMatrix");
-        builtinVariablesTrie.insert("g_NormalMatrix");
-        builtinVariablesTrie.insert("g_ViewProjectionMatrix");
-        builtinVariablesTrie.insert("g_WorldMatrixInverseTranspose");
-        builtinVariablesTrie.insert("g_WorldMatrixInverse");
-        builtinVariablesTrie.insert("g_ViewMatrixInverse");
-        builtinVariablesTrie.insert("g_ProjectionMatrixInverse");
-        builtinVariablesTrie.insert("g_ViewProjectionMatrixInverse");
-        builtinVariablesTrie.insert("g_WorldViewMatrixInverse");
-        builtinVariablesTrie.insert("g_NormalMatrixInverse");
-        builtinVariablesTrie.insert("g_WorldViewProjectionMatrixInverse");
-        builtinVariablesTrie.insert("g_ViewPort");
-        builtinVariablesTrie.insert("g_FrustumNearFar");
-        builtinVariablesTrie.insert("g_Resolution");
-        builtinVariablesTrie.insert("g_ResolutionInverse");
-        builtinVariablesTrie.insert("g_Aspect");
-        builtinVariablesTrie.insert("g_CameraPosition");
-        builtinVariablesTrie.insert("g_CameraDirection");
-        builtinVariablesTrie.insert("g_CameraLeft");
-        builtinVariablesTrie.insert("g_CameraUp");
-        builtinVariablesTrie.insert("g_Time");
-        builtinVariablesTrie.insert("g_Tpf");
-        builtinVariablesTrie.insert("g_FrameRate");
-        builtinVariablesTrie.insert("g_LightDirection");
-        builtinVariablesTrie.insert("g_LightPosition");
-        builtinVariablesTrie.insert("g_LightColor");
-        builtinVariablesTrie.insert("g_AmbientLightColor");
+        builtinVariables.insert("inPosition");
+        builtinVariables.insert("inNormal");
+        builtinVariables.insert("inColor");
+        builtinVariables.insert("inTextCoord");
+        builtinVariables.insert("g_WorldMatrix");
+        builtinVariables.insert("g_ViewMatrix");
+        builtinVariables.insert("g_ProjectionMatrix");
+        builtinVariables.insert("g_WorldViewMatrix");
+        builtinVariables.insert("g_WorldViewProjectionMatrix");
+        builtinVariables.insert("g_WorldNormalMatrix");
+        builtinVariables.insert("g_NormalMatrix");
+        builtinVariables.insert("g_ViewProjectionMatrix");
+        builtinVariables.insert("g_WorldMatrixInverseTranspose");
+        builtinVariables.insert("g_WorldMatrixInverse");
+        builtinVariables.insert("g_ViewMatrixInverse");
+        builtinVariables.insert("g_ProjectionMatrixInverse");
+        builtinVariables.insert("g_ViewProjectionMatrixInverse");
+        builtinVariables.insert("g_WorldViewMatrixInverse");
+        builtinVariables.insert("g_NormalMatrixInverse");
+        builtinVariables.insert("g_WorldViewProjectionMatrixInverse");
+        builtinVariables.insert("g_ViewPort");
+        builtinVariables.insert("g_FrustumNearFar");
+        builtinVariables.insert("g_Resolution");
+        builtinVariables.insert("g_ResolutionInverse");
+        builtinVariables.insert("g_Aspect");
+        builtinVariables.insert("g_CameraPosition");
+        builtinVariables.insert("g_CameraDirection");
+        builtinVariables.insert("g_CameraLeft");
+        builtinVariables.insert("g_CameraUp");
+        builtinVariables.insert("g_Time");
+        builtinVariables.insert("g_Tpf");
+        builtinVariables.insert("g_FrameRate");
+        builtinVariables.insert("g_LightDirection");
+        builtinVariables.insert("g_LightPosition");
+        builtinVariables.insert("g_LightColor");
+        builtinVariables.insert("g_AmbientLightColor");
         //builtin functions
         //builtin functions
-        builtinFunctionsTrie.insert("radians");
-        builtinFunctionsTrie.insert("degrees");
-        builtinFunctionsTrie.insert("sin");
-        builtinFunctionsTrie.insert("cos");
-        builtinFunctionsTrie.insert("tan");
-        builtinFunctionsTrie.insert("asin");
-        builtinFunctionsTrie.insert("acos");
-        builtinFunctionsTrie.insert("atan");
-        builtinFunctionsTrie.insert("sinh");
-        builtinFunctionsTrie.insert("cosh");
-        builtinFunctionsTrie.insert("tanh");
-        builtinFunctionsTrie.insert("asinh");
-        builtinFunctionsTrie.insert("acosh");
-        builtinFunctionsTrie.insert("atanh");
-        builtinFunctionsTrie.insert("pow");
-        builtinFunctionsTrie.insert("exp");
-        builtinFunctionsTrie.insert("log");
-        builtinFunctionsTrie.insert("exp2");
-        builtinFunctionsTrie.insert("log2");
-        builtinFunctionsTrie.insert("sqrt");
-        builtinFunctionsTrie.insert("inversesqrt");
-        builtinFunctionsTrie.insert("abs");
-        builtinFunctionsTrie.insert("sign");
-        builtinFunctionsTrie.insert("floor");
-        builtinFunctionsTrie.insert("trunc");
-        builtinFunctionsTrie.insert("round");
-        builtinFunctionsTrie.insert("roundEven");
-        builtinFunctionsTrie.insert("ceil");
-        builtinFunctionsTrie.insert("fract");
-        builtinFunctionsTrie.insert("mod");
-        builtinFunctionsTrie.insert("modf");
-        builtinFunctionsTrie.insert("min");
-        builtinFunctionsTrie.insert("max");
-        builtinFunctionsTrie.insert("clamp");
-        builtinFunctionsTrie.insert("mix");
-        builtinFunctionsTrie.insert("step");
-        builtinFunctionsTrie.insert("smoothstep");
-        builtinFunctionsTrie.insert("isnan");
-        builtinFunctionsTrie.insert("isinf");
-        builtinFunctionsTrie.insert("floatBitsToInt");
-        builtinFunctionsTrie.insert("floatBitsToUInt");
-        builtinFunctionsTrie.insert("intBitsToFloat");
-        builtinFunctionsTrie.insert("uintBitsToFloat");
-        builtinFunctionsTrie.insert("fma");
-        builtinFunctionsTrie.insert("frexp");
-        builtinFunctionsTrie.insert("packUnorm2x16");
-        builtinFunctionsTrie.insert("packSnorm2x16");
-        builtinFunctionsTrie.insert("packUnorm4x8");
-        builtinFunctionsTrie.insert("packSnorm4x8");
-        builtinFunctionsTrie.insert("unpackUnorm2x16");
-        builtinFunctionsTrie.insert("unpackSnorm2x16");
-        builtinFunctionsTrie.insert("unpackUnorm4x8");
-        builtinFunctionsTrie.insert("unpackSnorm4x8");
-        builtinFunctionsTrie.insert("packDouble2x32");
-        builtinFunctionsTrie.insert("unpackDouble2x32");
-        builtinFunctionsTrie.insert("packHalf2x16");
-        builtinFunctionsTrie.insert("unpackHalf2x16");
-        builtinFunctionsTrie.insert("length");
-        builtinFunctionsTrie.insert("distance");
-        builtinFunctionsTrie.insert("dot");
-        builtinFunctionsTrie.insert("cross");
-        builtinFunctionsTrie.insert("normalize");
-        builtinFunctionsTrie.insert("ftransform");
-        builtinFunctionsTrie.insert("faceforward");
-        builtinFunctionsTrie.insert("reflect");
-        builtinFunctionsTrie.insert("refract");
-        builtinFunctionsTrie.insert("matrixCompMult");
-        builtinFunctionsTrie.insert("outerProduct");
-        builtinFunctionsTrie.insert("transpose");
-        builtinFunctionsTrie.insert("determinant");
-        builtinFunctionsTrie.insert("inverse");
-        builtinFunctionsTrie.insert("lessThan");
-        builtinFunctionsTrie.insert("lessThanEqual");
-        builtinFunctionsTrie.insert("greaterThan");
-        builtinFunctionsTrie.insert("greaterThanEqual");
-        builtinFunctionsTrie.insert("equal");
-        builtinFunctionsTrie.insert("notEqual");
-        builtinFunctionsTrie.insert("any");
-        builtinFunctionsTrie.insert("all");
-        builtinFunctionsTrie.insert("not");
-        builtinFunctionsTrie.insert("uaddCarry");
-        builtinFunctionsTrie.insert("usubBorrow");
-        builtinFunctionsTrie.insert("umulExtended");
-        builtinFunctionsTrie.insert("imulExtended");
-        builtinFunctionsTrie.insert("bitfieldExtract");
-        builtinFunctionsTrie.insert("bitfieldInsert");
-        builtinFunctionsTrie.insert("bitfieldReverse");
-        builtinFunctionsTrie.insert("bitCount");
-        builtinFunctionsTrie.insert("findLSB");
-        builtinFunctionsTrie.insert("findMSB");
-        builtinFunctionsTrie.insert("textureSize");
-        builtinFunctionsTrie.insert("textureQueryLod");
-        builtinFunctionsTrie.insert("textureQueryLevels");
-        builtinFunctionsTrie.insert("texture");
-        builtinFunctionsTrie.insert("textureProj");
-        builtinFunctionsTrie.insert("textureLod");
-        builtinFunctionsTrie.insert("textureOffset");
-        builtinFunctionsTrie.insert("texelFetch");
-        builtinFunctionsTrie.insert("texelFetchOffset");
-        builtinFunctionsTrie.insert("textureProjOffset");
-        builtinFunctionsTrie.insert("textureLodOffset");
-        builtinFunctionsTrie.insert("textureProjLod");
-        builtinFunctionsTrie.insert("textureProjLodOffset");
-        builtinFunctionsTrie.insert("textureGrad");
-        builtinFunctionsTrie.insert("textureGradOffset");
-        builtinFunctionsTrie.insert("textureProjGrad");
-        builtinFunctionsTrie.insert("textureProjGradOffset");
-        builtinFunctionsTrie.insert("textureGather");
-        builtinFunctionsTrie.insert("textureGatherOffset");
-        builtinFunctionsTrie.insert("textureGatherOffsets");
-        builtinFunctionsTrie.insert("texture1D");
-        builtinFunctionsTrie.insert("texture1DProj");
-        builtinFunctionsTrie.insert("texture1DLod");
-        builtinFunctionsTrie.insert("texture1DProjLod");
-        builtinFunctionsTrie.insert("texture2D");
-        builtinFunctionsTrie.insert("texture2DProj");
-        builtinFunctionsTrie.insert("texture2DLod");
-        builtinFunctionsTrie.insert("texture2DProjLod");
-        builtinFunctionsTrie.insert("texture3D");
-        builtinFunctionsTrie.insert("texture3DProj");
-        builtinFunctionsTrie.insert("texture3DLod");
-        builtinFunctionsTrie.insert("texture3DProjLod");
-        builtinFunctionsTrie.insert("textureCube");
-        builtinFunctionsTrie.insert("textureCubeLod");
-        builtinFunctionsTrie.insert("shadow1D");
-        builtinFunctionsTrie.insert("shadow2D");
-        builtinFunctionsTrie.insert("shadow1DProj");
-        builtinFunctionsTrie.insert("shadow2DProj");
-        builtinFunctionsTrie.insert("shadow1DLod");
-        builtinFunctionsTrie.insert("shadow2DLod");
-        builtinFunctionsTrie.insert("shadow1DProjLod");
-        builtinFunctionsTrie.insert("shadow2DProjLod");
-        builtinFunctionsTrie.insert("atomicCounterIncrement");
-        builtinFunctionsTrie.insert("atomicCounterDecrement");
-        builtinFunctionsTrie.insert("atomicCounter");
-        builtinFunctionsTrie.insert("atomicAdd");
-        builtinFunctionsTrie.insert("atomicMin");
-        builtinFunctionsTrie.insert("atomicMax");
-        builtinFunctionsTrie.insert("atomicAnd");
-        builtinFunctionsTrie.insert("atomicOr");
-        builtinFunctionsTrie.insert("atomicXor");
-        builtinFunctionsTrie.insert("atomicExchange");
-        builtinFunctionsTrie.insert("atomicCompSwap");
-        builtinFunctionsTrie.insert("imageSize");
-        builtinFunctionsTrie.insert("imageLoad");
-        builtinFunctionsTrie.insert("imageStore");
-        builtinFunctionsTrie.insert("imageAtomicAdd");
-        builtinFunctionsTrie.insert("imageAtomicMin");
-        builtinFunctionsTrie.insert("imageAtomicMax");
-        builtinFunctionsTrie.insert("imageAtomicAnd");
-        builtinFunctionsTrie.insert("imageAtomicOr");
-        builtinFunctionsTrie.insert("imageAtomicXor");
-        builtinFunctionsTrie.insert("imageAtomicExchange");
-        builtinFunctionsTrie.insert("imageAtomicCompSwap");
-        builtinFunctionsTrie.insert("dFdx");
-        builtinFunctionsTrie.insert("dFdy");
-        builtinFunctionsTrie.insert("fwidth");
-        builtinFunctionsTrie.insert("interpolateAtCentroid");
-        builtinFunctionsTrie.insert("interpolateAtSample");
-        builtinFunctionsTrie.insert("interpolateAtOffset");
-        builtinFunctionsTrie.insert("noise1");
-        builtinFunctionsTrie.insert("noise2");
-        builtinFunctionsTrie.insert("noise3");
-        builtinFunctionsTrie.insert("noise4");
-        builtinFunctionsTrie.insert("EmitStreamVertex");
-        builtinFunctionsTrie.insert("EndStreamPrimitive");
-        builtinFunctionsTrie.insert("EmitVertex");
-        builtinFunctionsTrie.insert("EndPrimitive");
-        builtinFunctionsTrie.insert("barrier");
-        builtinFunctionsTrie.insert("memoryBarrier");
-        builtinFunctionsTrie.insert("memoryBarrierAtomicCounter");
-        builtinFunctionsTrie.insert("memoryBarrierBuffer");
-        builtinFunctionsTrie.insert("memoryBarrierShared");
-        builtinFunctionsTrie.insert("memoryBarrierImage");
-        builtinFunctionsTrie.insert("groupMemoryBarrier");
+        builtinFunctions.insert("radians");
+        builtinFunctions.insert("degrees");
+        builtinFunctions.insert("sin");
+        builtinFunctions.insert("cos");
+        builtinFunctions.insert("tan");
+        builtinFunctions.insert("asin");
+        builtinFunctions.insert("acos");
+        builtinFunctions.insert("atan");
+        builtinFunctions.insert("sinh");
+        builtinFunctions.insert("cosh");
+        builtinFunctions.insert("tanh");
+        builtinFunctions.insert("asinh");
+        builtinFunctions.insert("acosh");
+        builtinFunctions.insert("atanh");
+        builtinFunctions.insert("pow");
+        builtinFunctions.insert("exp");
+        builtinFunctions.insert("log");
+        builtinFunctions.insert("exp2");
+        builtinFunctions.insert("log2");
+        builtinFunctions.insert("sqrt");
+        builtinFunctions.insert("inversesqrt");
+        builtinFunctions.insert("abs");
+        builtinFunctions.insert("sign");
+        builtinFunctions.insert("floor");
+        builtinFunctions.insert("trunc");
+        builtinFunctions.insert("round");
+        builtinFunctions.insert("roundEven");
+        builtinFunctions.insert("ceil");
+        builtinFunctions.insert("fract");
+        builtinFunctions.insert("mod");
+        builtinFunctions.insert("modf");
+        builtinFunctions.insert("min");
+        builtinFunctions.insert("max");
+        builtinFunctions.insert("clamp");
+        builtinFunctions.insert("mix");
+        builtinFunctions.insert("step");
+        builtinFunctions.insert("smoothstep");
+        builtinFunctions.insert("isnan");
+        builtinFunctions.insert("isinf");
+        builtinFunctions.insert("floatBitsToInt");
+        builtinFunctions.insert("floatBitsToUInt");
+        builtinFunctions.insert("intBitsToFloat");
+        builtinFunctions.insert("uintBitsToFloat");
+        builtinFunctions.insert("fma");
+        builtinFunctions.insert("frexp");
+        builtinFunctions.insert("packUnorm2x16");
+        builtinFunctions.insert("packSnorm2x16");
+        builtinFunctions.insert("packUnorm4x8");
+        builtinFunctions.insert("packSnorm4x8");
+        builtinFunctions.insert("unpackUnorm2x16");
+        builtinFunctions.insert("unpackSnorm2x16");
+        builtinFunctions.insert("unpackUnorm4x8");
+        builtinFunctions.insert("unpackSnorm4x8");
+        builtinFunctions.insert("packDouble2x32");
+        builtinFunctions.insert("unpackDouble2x32");
+        builtinFunctions.insert("packHalf2x16");
+        builtinFunctions.insert("unpackHalf2x16");
+        builtinFunctions.insert("length");
+        builtinFunctions.insert("distance");
+        builtinFunctions.insert("dot");
+        builtinFunctions.insert("cross");
+        builtinFunctions.insert("normalize");
+        builtinFunctions.insert("ftransform");
+        builtinFunctions.insert("faceforward");
+        builtinFunctions.insert("reflect");
+        builtinFunctions.insert("refract");
+        builtinFunctions.insert("matrixCompMult");
+        builtinFunctions.insert("outerProduct");
+        builtinFunctions.insert("transpose");
+        builtinFunctions.insert("determinant");
+        builtinFunctions.insert("inverse");
+        builtinFunctions.insert("lessThan");
+        builtinFunctions.insert("lessThanEqual");
+        builtinFunctions.insert("greaterThan");
+        builtinFunctions.insert("greaterThanEqual");
+        builtinFunctions.insert("equal");
+        builtinFunctions.insert("notEqual");
+        builtinFunctions.insert("any");
+        builtinFunctions.insert("all");
+        builtinFunctions.insert("not");
+        builtinFunctions.insert("uaddCarry");
+        builtinFunctions.insert("usubBorrow");
+        builtinFunctions.insert("umulExtended");
+        builtinFunctions.insert("imulExtended");
+        builtinFunctions.insert("bitfieldExtract");
+        builtinFunctions.insert("bitfieldInsert");
+        builtinFunctions.insert("bitfieldReverse");
+        builtinFunctions.insert("bitCount");
+        builtinFunctions.insert("findLSB");
+        builtinFunctions.insert("findMSB");
+        builtinFunctions.insert("textureSize");
+        builtinFunctions.insert("textureQueryLod");
+        builtinFunctions.insert("textureQueryLevels");
+        builtinFunctions.insert("texture");
+        builtinFunctions.insert("textureProj");
+        builtinFunctions.insert("textureLod");
+        builtinFunctions.insert("textureOffset");
+        builtinFunctions.insert("texelFetch");
+        builtinFunctions.insert("texelFetchOffset");
+        builtinFunctions.insert("textureProjOffset");
+        builtinFunctions.insert("textureLodOffset");
+        builtinFunctions.insert("textureProjLod");
+        builtinFunctions.insert("textureProjLodOffset");
+        builtinFunctions.insert("textureGrad");
+        builtinFunctions.insert("textureGradOffset");
+        builtinFunctions.insert("textureProjGrad");
+        builtinFunctions.insert("textureProjGradOffset");
+        builtinFunctions.insert("textureGather");
+        builtinFunctions.insert("textureGatherOffset");
+        builtinFunctions.insert("textureGatherOffsets");
+        builtinFunctions.insert("texture1D");
+        builtinFunctions.insert("texture1DProj");
+        builtinFunctions.insert("texture1DLod");
+        builtinFunctions.insert("texture1DProjLod");
+        builtinFunctions.insert("texture2D");
+        builtinFunctions.insert("texture2DProj");
+        builtinFunctions.insert("texture2DLod");
+        builtinFunctions.insert("texture2DProjLod");
+        builtinFunctions.insert("texture3D");
+        builtinFunctions.insert("texture3DProj");
+        builtinFunctions.insert("texture3DLod");
+        builtinFunctions.insert("texture3DProjLod");
+        builtinFunctions.insert("textureCube");
+        builtinFunctions.insert("textureCubeLod");
+        builtinFunctions.insert("shadow1D");
+        builtinFunctions.insert("shadow2D");
+        builtinFunctions.insert("shadow1DProj");
+        builtinFunctions.insert("shadow2DProj");
+        builtinFunctions.insert("shadow1DLod");
+        builtinFunctions.insert("shadow2DLod");
+        builtinFunctions.insert("shadow1DProjLod");
+        builtinFunctions.insert("shadow2DProjLod");
+        builtinFunctions.insert("atomicCounterIncrement");
+        builtinFunctions.insert("atomicCounterDecrement");
+        builtinFunctions.insert("atomicCounter");
+        builtinFunctions.insert("atomicAdd");
+        builtinFunctions.insert("atomicMin");
+        builtinFunctions.insert("atomicMax");
+        builtinFunctions.insert("atomicAnd");
+        builtinFunctions.insert("atomicOr");
+        builtinFunctions.insert("atomicXor");
+        builtinFunctions.insert("atomicExchange");
+        builtinFunctions.insert("atomicCompSwap");
+        builtinFunctions.insert("imageSize");
+        builtinFunctions.insert("imageLoad");
+        builtinFunctions.insert("imageStore");
+        builtinFunctions.insert("imageAtomicAdd");
+        builtinFunctions.insert("imageAtomicMin");
+        builtinFunctions.insert("imageAtomicMax");
+        builtinFunctions.insert("imageAtomicAnd");
+        builtinFunctions.insert("imageAtomicOr");
+        builtinFunctions.insert("imageAtomicXor");
+        builtinFunctions.insert("imageAtomicExchange");
+        builtinFunctions.insert("imageAtomicCompSwap");
+        builtinFunctions.insert("dFdx");
+        builtinFunctions.insert("dFdy");
+        builtinFunctions.insert("fwidth");
+        builtinFunctions.insert("interpolateAtCentroid");
+        builtinFunctions.insert("interpolateAtSample");
+        builtinFunctions.insert("interpolateAtOffset");
+        builtinFunctions.insert("noise1");
+        builtinFunctions.insert("noise2");
+        builtinFunctions.insert("noise3");
+        builtinFunctions.insert("noise4");
+        builtinFunctions.insert("EmitStreamVertex");
+        builtinFunctions.insert("EndStreamPrimitive");
+        builtinFunctions.insert("EmitVertex");
+        builtinFunctions.insert("EndPrimitive");
+        builtinFunctions.insert("barrier");
+        builtinFunctions.insert("memoryBarrier");
+        builtinFunctions.insert("memoryBarrierAtomicCounter");
+        builtinFunctions.insert("memoryBarrierBuffer");
+        builtinFunctions.insert("memoryBarrierShared");
+        builtinFunctions.insert("memoryBarrierImage");
+        builtinFunctions.insert("groupMemoryBarrier");
     }
     }
 
 
     public static KeywordType lookup(String s) {
     public static KeywordType lookup(String s) {
         KeywordType returnType = null;
         KeywordType returnType = null;
-        returnType = lookup(s, returnType, KeywordType.BASIC_TYPE, basicTypesTrie);
+        returnType = lookup(s, returnType, KeywordType.BASIC_TYPE, basicTypes);
         if (returnType == KeywordType.UNFINISHED || returnType == null) {
         if (returnType == KeywordType.UNFINISHED || returnType == null) {
-            returnType = lookup(s, returnType, KeywordType.BUILTIN_VARIABLE, builtinVariablesTrie);
+            returnType = lookup(s, returnType, KeywordType.BUILTIN_VARIABLE, builtinVariables);
         }
         }
         if (returnType == KeywordType.UNFINISHED || returnType == null) {
         if (returnType == KeywordType.UNFINISHED || returnType == null) {
-            returnType = lookup(s, returnType, KeywordType.BUILTIN_FUNCTION, builtinFunctionsTrie);
+            returnType = lookup(s, returnType, KeywordType.BUILTIN_FUNCTION, builtinFunctions);
         }
         }
         if (returnType == KeywordType.UNFINISHED || returnType == null) {
         if (returnType == KeywordType.UNFINISHED || returnType == null) {
-            returnType = lookup(s, returnType, KeywordType.KEYWORD, keywordsTrie);
+            returnType = lookup(s, returnType, KeywordType.KEYWORD, keywords);
         }
         }
 
 
         return returnType;
         return returnType;

+ 2 - 2
jme3-glsl-highlighter/src/com/jme3/gde/glsl/highlighter/util/Trie.java

@@ -39,6 +39,8 @@ import java.util.Map;
  */
  */
 public class Trie {
 public class Trie {
 
 
+    private final TrieNode root;
+
     private static class TrieNode {
     private static class TrieNode {
 
 
         Map<Character, TrieNode> children = new HashMap<>();
         Map<Character, TrieNode> children = new HashMap<>();
@@ -51,8 +53,6 @@ public class Trie {
         FULL_MATCH
         FULL_MATCH
     }
     }
 
 
-    private final TrieNode root;
-
     public Trie() {
     public Trie() {
         root = new TrieNode();
         root = new TrieNode();
     }
     }