module Skylighting.Syntax.Glsl (syntax) where
import Skylighting.Types
import Data.Map
import Skylighting.Regex
import qualified Data.Set
syntax :: Syntax
syntax = Syntax
{ sName = "GLSL"
, sFilename = "glsl.xml"
, sShortname = "Glsl"
, sContexts =
fromList
[ ( "Commentar 1"
, Context
{ cName = "Commentar 1"
, cSyntax = "GLSL"
, cRules =
[ Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet True [ "BUG" , "FIXME" , "TODO" ])
, rAttribute = AlertTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
]
, cAttribute = CommentTok
, cLineEmptyContext = []
, cLineEndContext = [ Pop ]
, cLineBeginContext = []
, cFallthrough = False
, cFallthroughContext = []
, cDynamic = False
}
)
, ( "Commentar 2"
, Context
{ cName = "Commentar 2"
, cSyntax = "GLSL"
, cRules =
[ Rule
{ rMatcher = Detect2Chars '*' '/'
, rAttribute = CommentTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Pop ]
}
, Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet True [ "BUG" , "FIXME" , "TODO" ])
, rAttribute = AlertTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
]
, cAttribute = CommentTok
, cLineEmptyContext = []
, cLineEndContext = []
, cLineBeginContext = []
, cFallthrough = False
, cFallthroughContext = []
, cDynamic = False
}
)
, ( "Member"
, Context
{ cName = "Member"
, cSyntax = "GLSL"
, cRules =
[ Rule
{ rMatcher =
RegExpr
RE
{ reString = "\\b[_\\w][_\\w\\d]*(?=[\\s]*)"
, reCompiled =
Just (compileRegex True "\\b[_\\w][_\\w\\d]*(?=[\\s]*)")
, reCaseSensitive = True
}
, rAttribute = FunctionTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Pop ]
}
]
, cAttribute = NormalTok
, cLineEmptyContext = []
, cLineEndContext = [ Pop ]
, cLineBeginContext = []
, cFallthrough = True
, cFallthroughContext = [ Pop ]
, cDynamic = False
}
)
, ( "Normal"
, Context
{ cName = "Normal"
, cSyntax = "GLSL"
, cRules =
[ Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet
True
[ "break"
, "buffer"
, "continue"
, "discard"
, "do"
, "else"
, "false"
, "for"
, "if"
, "invariant"
, "layout"
, "return"
, "struct"
, "subroutine"
, "true"
, "uniform"
, "while"
])
, rAttribute = KeywordTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet
True
[ "atomic_uint"
, "bool"
, "bvec2"
, "bvec3"
, "bvec4"
, "float"
, "int"
, "isampler1D"
, "isampler1DArray"
, "isampler1DArrayShadow"
, "isampler1DShadow"
, "isampler2D"
, "isampler2DArray"
, "isampler2DArrayShadow"
, "isampler2DMS"
, "isampler2DMSArray"
, "isampler2DRect"
, "isampler2DRectShadow"
, "isampler2DShadow"
, "isampler3D"
, "isamplerBuffer"
, "isamplerCube"
, "isamplerCubeArray"
, "isamplerCubeArrayShadow"
, "isamplerCubeShadow"
, "ivec2"
, "ivec3"
, "ivec4"
, "mat2"
, "mat3"
, "mat4"
, "sampler1D"
, "sampler1DArray"
, "sampler1DArrayShadow"
, "sampler1DShadow"
, "sampler2D"
, "sampler2DArray"
, "sampler2DArrayShadow"
, "sampler2DMS"
, "sampler2DMSArray"
, "sampler2DRect"
, "sampler2DRectShadow"
, "sampler2DShadow"
, "sampler3D"
, "samplerBuffer"
, "samplerCube"
, "samplerCubeArray"
, "samplerCubeArrayShadow"
, "samplerCubeShadow"
, "usampler1D"
, "usampler1DArray"
, "usampler1DArrayShadow"
, "usampler1DShadow"
, "usampler2D"
, "usampler2DArray"
, "usampler2DArrayShadow"
, "usampler2DMS"
, "usampler2DMSArray"
, "usampler2DRect"
, "usampler2DRectShadow"
, "usampler2DShadow"
, "usampler3D"
, "usamplerBuffer"
, "usamplerCube"
, "usamplerCubeArray"
, "usamplerCubeArrayShadow"
, "usamplerCubeShadow"
, "vec2"
, "vec3"
, "vec4"
, "void"
])
, rAttribute = DataTypeTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet
True
[ "attribute"
, "binding"
, "ccw"
, "coherent"
, "component"
, "const"
, "cw"
, "early_fragment_tests"
, "equal_spacing"
, "flat"
, "fractional_even_spacing"
, "fractional_odd_spacing"
, "in"
, "index"
, "inout"
, "invocations"
, "isolines"
, "line_strip"
, "lines"
, "lines_adjacency"
, "location"
, "max_vertices"
, "noperspective"
, "offset"
, "origin_upper_left"
, "out"
, "packed"
, "pixel_center_integer"
, "point_mode"
, "points"
, "quads"
, "readonly"
, "restrict"
, "row_major"
, "shared"
, "smooth"
, "std140"
, "std430"
, "stream"
, "triangle_strip"
, "triangles"
, "triangles_adjacency"
, "varying"
, "vertices"
, "volatile"
, "writeonly"
, "xfb_buffer"
, "xfb_offset"
, "xfb_stride"
])
, rAttribute = DataTypeTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet
True
[ "EmitStreamVertex"
, "EmitVertex"
, "EndPrimitive"
, "EndStreamPrimitive"
, "abs"
, "acos"
, "acosh"
, "all"
, "any"
, "asin"
, "asinh"
, "atan"
, "atanh"
, "atomicAdd"
, "atomicAnd"
, "atomicCompSwap"
, "atomicCounter"
, "atomicCounterDecrement"
, "atomicCounterIncrement"
, "atomicExchange"
, "atomicMax"
, "atomicMin"
, "atomicOr"
, "atomicXor"
, "barrier"
, "bitCount"
, "bitfieldExtract"
, "bitfieldInsert"
, "bitfieldReverse"
, "ceil"
, "clamp"
, "cos"
, "cosh"
, "cross"
, "dFdx"
, "dFdxCoarse"
, "dFdxFine"
, "dFdy"
, "dFdyCoarse"
, "dFdyFine"
, "degrees"
, "determinant"
, "distance"
, "dot"
, "equal"
, "exp"
, "exp2"
, "faceforward"
, "findLSB"
, "findMSB"
, "floatBitsToInt"
, "floatBitsToUint"
, "floor"
, "fma"
, "fract"
, "frexp"
, "fwidth"
, "fwidthCoarse"
, "fwidthFine"
, "glActiveShaderProgram"
, "glActiveTexture"
, "glAttachShader"
, "glBeginConditionalRender"
, "glBeginQuery"
, "glBeginQueryIndexed"
, "glBeginTransformFeedback"
, "glBindAttribLocation"
, "glBindBuffer"
, "glBindBufferBase"
, "glBindBufferRange"
, "glBindBuffersBase"
, "glBindBuffersRange"
, "glBindFragDataLocation"
, "glBindFragDataLocationIndexed"
, "glBindFramebuffer"
, "glBindImageTexture"
, "glBindImageTextures"
, "glBindProgramPipeline"
, "glBindRenderbuffer"
, "glBindSampler"
, "glBindSamplers"
, "glBindTexture"
, "glBindTextureUnit"
, "glBindTextures"
, "glBindTransformFeedback"
, "glBindVertexArray"
, "glBindVertexBuffer"
, "glBindVertexBuffers"
, "glBlendColor"
, "glBlendEquation"
, "glBlendEquationSeparate"
, "glBlendEquationSeparatei"
, "glBlendEquationi"
, "glBlendFunc"
, "glBlendFuncSeparate"
, "glBlendFuncSeparatei"
, "glBlendFunci"
, "glBlitFramebuffer"
, "glBlitNamedFramebuffer"
, "glBufferData"
, "glBufferStorage"
, "glBufferSubData"
, "glCheckFramebufferStatus"
, "glCheckNamedFramebufferStatus"
, "glClampColor"
, "glClear"
, "glClearBuffer"
, "glClearBufferData"
, "glClearBufferSubData"
, "glClearBufferfi"
, "glClearBufferfv"
, "glClearBufferiv"
, "glClearBufferuiv"
, "glClearColor"
, "glClearDepth"
, "glClearDepthf"
, "glClearNamedBufferData"
, "glClearNamedBufferSubData"
, "glClearNamedFramebufferfi"
, "glClearNamedFramebufferfv"
, "glClearNamedFramebufferiv"
, "glClearNamedFramebufferuiv"
, "glClearStencil"
, "glClearTexImage"
, "glClearTexSubImage"
, "glClientWaitSync"
, "glClipControl"
, "glColorMask"
, "glColorMaski"
, "glCompileShader"
, "glCompressedTexImage1D"
, "glCompressedTexImage2D"
, "glCompressedTexImage3D"
, "glCompressedTexSubImage1D"
, "glCompressedTexSubImage2D"
, "glCompressedTexSubImage3D"
, "glCompressedTextureSubImage1D"
, "glCompressedTextureSubImage2D"
, "glCompressedTextureSubImage3D"
, "glCopyBufferSubData"
, "glCopyImageSubData"
, "glCopyNamedBufferSubData"
, "glCopyTexImage1D"
, "glCopyTexImage2D"
, "glCopyTexSubImage1D"
, "glCopyTexSubImage2D"
, "glCopyTexSubImage3D"
, "glCopyTextureSubImage1D"
, "glCopyTextureSubImage2D"
, "glCopyTextureSubImage3D"
, "glCreateBuffers"
, "glCreateFramebuffers"
, "glCreateProgram"
, "glCreateProgramPipelines"
, "glCreateQueries"
, "glCreateRenderbuffers"
, "glCreateSamplers"
, "glCreateShader"
, "glCreateShaderProgram"
, "glCreateShaderProgramv"
, "glCreateTextures"
, "glCreateTransformFeedbacks"
, "glCreateVertexArrays"
, "glCullFace"
, "glDebugMessageCallback"
, "glDebugMessageControl"
, "glDebugMessageInsert"
, "glDeleteBuffers"
, "glDeleteFramebuffers"
, "glDeleteProgram"
, "glDeleteProgramPipelines"
, "glDeleteQueries"
, "glDeleteRenderbuffers"
, "glDeleteSamplers"
, "glDeleteShader"
, "glDeleteSync"
, "glDeleteTextures"
, "glDeleteTransformFeedbacks"
, "glDeleteVertexArrays"
, "glDepthFunc"
, "glDepthMask"
, "glDepthRange"
, "glDepthRangeArray"
, "glDepthRangeArrayv"
, "glDepthRangeIndexed"
, "glDepthRangef"
, "glDetachShader"
, "glDisable"
, "glDisableVertexArrayAttrib"
, "glDisableVertexAttribArray"
, "glDisablei"
, "glDispatchCompute"
, "glDispatchComputeIndirect"
, "glDrawArrays"
, "glDrawArraysIndirect"
, "glDrawArraysInstanced"
, "glDrawArraysInstancedBaseInstance"
, "glDrawBuffer"
, "glDrawBuffers"
, "glDrawElements"
, "glDrawElementsBaseVertex"
, "glDrawElementsIndirect"
, "glDrawElementsInstanced"
, "glDrawElementsInstancedBaseInstance"
, "glDrawElementsInstancedBaseVertex"
, "glDrawElementsInstancedBaseVertexBaseInstance"
, "glDrawRangeElements"
, "glDrawRangeElementsBaseVertex"
, "glDrawTransformFeedback"
, "glDrawTransformFeedbackInstanced"
, "glDrawTransformFeedbackStream"
, "glDrawTransformFeedbackStreamInstanced"
, "glEnable"
, "glEnableVertexArrayAttrib"
, "glEnableVertexAttribArray"
, "glEnablei"
, "glEndConditionalRender"
, "glEndQuery"
, "glEndQueryIndexed"
, "glEndTransformFeedback"
, "glFenceSync"
, "glFinish"
, "glFlush"
, "glFlushMappedBufferRange"
, "glFlushMappedNamedBufferRange"
, "glFramebufferParameteri"
, "glFramebufferRenderbuffer"
, "glFramebufferTexture"
, "glFramebufferTexture1D"
, "glFramebufferTexture2D"
, "glFramebufferTexture3D"
, "glFramebufferTextureLayer"
, "glFrontFace"
, "glGenBuffers"
, "glGenFramebuffers"
, "glGenProgramPipelines"
, "glGenQueries"
, "glGenRenderbuffers"
, "glGenSamplers"
, "glGenTextures"
, "glGenTransformFeedbacks"
, "glGenVertexArrays"
, "glGenerateMipmap"
, "glGenerateTextureMipmap"
, "glGet"
, "glGetActiveAtomicCounterBufferiv"
, "glGetActiveAttrib"
, "glGetActiveSubroutineName"
, "glGetActiveSubroutineUniform"
, "glGetActiveSubroutineUniformName"
, "glGetActiveSubroutineUniformiv"
, "glGetActiveUniform"
, "glGetActiveUniformBlock"
, "glGetActiveUniformBlockName"
, "glGetActiveUniformBlockiv"
, "glGetActiveUniformName"
, "glGetActiveUniformsiv"
, "glGetAttachedShaders"
, "glGetAttribLocation"
, "glGetBooleani_v"
, "glGetBooleanv"
, "glGetBufferParameter"
, "glGetBufferParameteri64v"
, "glGetBufferParameteriv"
, "glGetBufferPointerv"
, "glGetBufferSubData"
, "glGetCompressedTexImage"
, "glGetCompressedTextureImage"
, "glGetCompressedTextureSubImage"
, "glGetDebugMessageLog"
, "glGetDoublei_v"
, "glGetDoublev"
, "glGetError"
, "glGetFloati_v"
, "glGetFloatv"
, "glGetFragDataIndex"
, "glGetFragDataLocation"
, "glGetFramebufferAttachmentParameter"
, "glGetFramebufferAttachmentParameteriv"
, "glGetFramebufferParameter"
, "glGetFramebufferParameteriv"
, "glGetGraphicsResetStatus"
, "glGetInteger64i_v"
, "glGetInteger64v"
, "glGetIntegeri_v"
, "glGetIntegerv"
, "glGetInternalformat"
, "glGetInternalformati64v"
, "glGetInternalformativ"
, "glGetMultisample"
, "glGetMultisamplefv"
, "glGetNamedBufferParameteri64v"
, "glGetNamedBufferParameteriv"
, "glGetNamedBufferPointerv"
, "glGetNamedBufferSubData"
, "glGetNamedFramebufferAttachmentParameteriv"
, "glGetNamedFramebufferParameteriv"
, "glGetNamedRenderbufferParameteriv"
, "glGetObjectLabel"
, "glGetObjectPtrLabel"
, "glGetPointerv"
, "glGetProgram"
, "glGetProgramBinary"
, "glGetProgramInfoLog"
, "glGetProgramInterface"
, "glGetProgramInterfaceiv"
, "glGetProgramPipeline"
, "glGetProgramPipelineInfoLog"
, "glGetProgramPipelineiv"
, "glGetProgramResource"
, "glGetProgramResourceIndex"
, "glGetProgramResourceLocation"
, "glGetProgramResourceLocationIndex"
, "glGetProgramResourceName"
, "glGetProgramResourceiv"
, "glGetProgramStage"
, "glGetProgramStageiv"
, "glGetProgramiv"
, "glGetQueryIndexed"
, "glGetQueryIndexediv"
, "glGetQueryObject"
, "glGetQueryObjecti64v"
, "glGetQueryObjectiv"
, "glGetQueryObjectui64v"
, "glGetQueryObjectuiv"
, "glGetQueryiv"
, "glGetRenderbufferParameter"
, "glGetRenderbufferParameteriv"
, "glGetSamplerParameter"
, "glGetSamplerParameterIiv"
, "glGetSamplerParameterIuiv"
, "glGetSamplerParameterfv"
, "glGetSamplerParameteriv"
, "glGetShader"
, "glGetShaderInfoLog"
, "glGetShaderPrecisionFormat"
, "glGetShaderSource"
, "glGetShaderiv"
, "glGetString"
, "glGetStringi"
, "glGetSubroutineIndex"
, "glGetSubroutineUniformLocation"
, "glGetSync"
, "glGetSynciv"
, "glGetTexImage"
, "glGetTexLevelParameter"
, "glGetTexLevelParameterfv"
, "glGetTexLevelParameteriv"
, "glGetTexParameter"
, "glGetTexParameterIiv"
, "glGetTexParameterIuiv"
, "glGetTexParameterfv"
, "glGetTexParameteriv"
, "glGetTextureImage"
, "glGetTextureLevelParameterfv"
, "glGetTextureLevelParameteriv"
, "glGetTextureParameterIiv"
, "glGetTextureParameterIuiv"
, "glGetTextureParameterfv"
, "glGetTextureParameteriv"
, "glGetTextureSubImage"
, "glGetTransformFeedback"
, "glGetTransformFeedbackVarying"
, "glGetTransformFeedbacki64_v"
, "glGetTransformFeedbacki_v"
, "glGetTransformFeedbackiv"
, "glGetUniform"
, "glGetUniformBlockIndex"
, "glGetUniformIndices"
, "glGetUniformLocation"
, "glGetUniformSubroutine"
, "glGetUniformSubroutineuiv"
, "glGetUniformdv"
, "glGetUniformfv"
, "glGetUniformiv"
, "glGetUniformuiv"
, "glGetVertexArrayIndexed"
, "glGetVertexArrayIndexed64iv"
, "glGetVertexArrayIndexediv"
, "glGetVertexArrayiv"
, "glGetVertexAttrib"
, "glGetVertexAttribIiv"
, "glGetVertexAttribIuiv"
, "glGetVertexAttribLdv"
, "glGetVertexAttribPointerv"
, "glGetVertexAttribdv"
, "glGetVertexAttribfv"
, "glGetVertexAttribiv"
, "glGetnCompressedTexImage"
, "glGetnTexImage"
, "glGetnUniformdv"
, "glGetnUniformfv"
, "glGetnUniformiv"
, "glGetnUniformuiv"
, "glHint"
, "glInvalidateBufferData"
, "glInvalidateBufferSubData"
, "glInvalidateFramebuffer"
, "glInvalidateNamedFramebufferData"
, "glInvalidateNamedFramebufferSubData"
, "glInvalidateSubFramebuffer"
, "glInvalidateTexImage"
, "glInvalidateTexSubImage"
, "glIsBuffer"
, "glIsEnabled"
, "glIsEnabledi"
, "glIsFramebuffer"
, "glIsProgram"
, "glIsProgramPipeline"
, "glIsQuery"
, "glIsRenderbuffer"
, "glIsSampler"
, "glIsShader"
, "glIsSync"
, "glIsTexture"
, "glIsTransformFeedback"
, "glIsVertexArray"
, "glLineWidth"
, "glLinkProgram"
, "glLogicOp"
, "glMapBuffer"
, "glMapBufferRange"
, "glMapNamedBuffer"
, "glMapNamedBufferRange"
, "glMemoryBarrier"
, "glMemoryBarrierByRegion"
, "glMinSampleShading"
, "glMultiDrawArrays"
, "glMultiDrawArraysIndirect"
, "glMultiDrawElements"
, "glMultiDrawElementsBaseVertex"
, "glMultiDrawElementsIndirect"
, "glNamedBufferData"
, "glNamedBufferStorage"
, "glNamedBufferSubData"
, "glNamedFramebufferDrawBuffer"
, "glNamedFramebufferDrawBuffers"
, "glNamedFramebufferParameteri"
, "glNamedFramebufferReadBuffer"
, "glNamedFramebufferRenderbuffer"
, "glNamedFramebufferTexture"
, "glNamedFramebufferTextureLayer"
, "glNamedRenderbufferStorage"
, "glNamedRenderbufferStorageMultisample"
, "glObjectLabel"
, "glObjectPtrLabel"
, "glPatchParameter"
, "glPatchParameterfv"
, "glPatchParameteri"
, "glPauseTransformFeedback"
, "glPixelStore"
, "glPixelStoref"
, "glPixelStorei"
, "glPointParameter"
, "glPointParameterf"
, "glPointParameterfv"
, "glPointParameteri"
, "glPointParameteriv"
, "glPointSize"
, "glPolygonMode"
, "glPolygonOffset"
, "glPopDebugGroup"
, "glPrimitiveRestartIndex"
, "glProgramBinary"
, "glProgramParameter"
, "glProgramParameteri"
, "glProgramUniform"
, "glProgramUniform1f"
, "glProgramUniform1fv"
, "glProgramUniform1i"
, "glProgramUniform1iv"
, "glProgramUniform1ui"
, "glProgramUniform1uiv"
, "glProgramUniform2f"
, "glProgramUniform2fv"
, "glProgramUniform2i"
, "glProgramUniform2iv"
, "glProgramUniform2ui"
, "glProgramUniform2uiv"
, "glProgramUniform3f"
, "glProgramUniform3fv"
, "glProgramUniform3i"
, "glProgramUniform3iv"
, "glProgramUniform3ui"
, "glProgramUniform3uiv"
, "glProgramUniform4f"
, "glProgramUniform4fv"
, "glProgramUniform4i"
, "glProgramUniform4iv"
, "glProgramUniform4ui"
, "glProgramUniform4uiv"
, "glProgramUniformMatrix2fv"
, "glProgramUniformMatrix2x3fv"
, "glProgramUniformMatrix2x4fv"
, "glProgramUniformMatrix3fv"
, "glProgramUniformMatrix3x2fv"
, "glProgramUniformMatrix3x4fv"
, "glProgramUniformMatrix4fv"
, "glProgramUniformMatrix4x2fv"
, "glProgramUniformMatrix4x3fv"
, "glProvokingVertex"
, "glPushDebugGroup"
, "glQueryCounter"
, "glReadBuffer"
, "glReadPixels"
, "glReadnPixels"
, "glReleaseShaderCompiler"
, "glRenderbufferStorage"
, "glRenderbufferStorageMultisample"
, "glResumeTransformFeedback"
, "glSampleCoverage"
, "glSampleMaski"
, "glSamplerParameter"
, "glSamplerParameterIiv"
, "glSamplerParameterIuiv"
, "glSamplerParameterf"
, "glSamplerParameterfv"
, "glSamplerParameteri"
, "glSamplerParameteriv"
, "glScissor"
, "glScissorArray"
, "glScissorArrayv"
, "glScissorIndexed"
, "glScissorIndexedv"
, "glShaderBinary"
, "glShaderSource"
, "glShaderStorageBlockBinding"
, "glStencilFunc"
, "glStencilFuncSeparate"
, "glStencilMask"
, "glStencilMaskSeparate"
, "glStencilOp"
, "glStencilOpSeparate"
, "glTexBuffer"
, "glTexBufferRange"
, "glTexImage1D"
, "glTexImage2D"
, "glTexImage2DMultisample"
, "glTexImage3D"
, "glTexImage3DMultisample"
, "glTexParameter"
, "glTexParameterIiv"
, "glTexParameterIuiv"
, "glTexParameterf"
, "glTexParameterfv"
, "glTexParameteri"
, "glTexParameteriv"
, "glTexStorage1D"
, "glTexStorage2D"
, "glTexStorage2DMultisample"
, "glTexStorage3D"
, "glTexStorage3DMultisample"
, "glTexSubImage1D"
, "glTexSubImage2D"
, "glTexSubImage3D"
, "glTextureBarrier"
, "glTextureBuffer"
, "glTextureBufferRange"
, "glTextureParameterIiv"
, "glTextureParameterIuiv"
, "glTextureParameterf"
, "glTextureParameterfv"
, "glTextureParameteri"
, "glTextureParameteriv"
, "glTextureStorage1D"
, "glTextureStorage2D"
, "glTextureStorage2DMultisample"
, "glTextureStorage3D"
, "glTextureStorage3DMultisample"
, "glTextureSubImage1D"
, "glTextureSubImage2D"
, "glTextureSubImage3D"
, "glTextureView"
, "glTransformFeedbackBufferBase"
, "glTransformFeedbackBufferRange"
, "glTransformFeedbackVaryings"
, "glUniform"
, "glUniform1f"
, "glUniform1fv"
, "glUniform1i"
, "glUniform1iv"
, "glUniform1ui"
, "glUniform1uiv"
, "glUniform2f"
, "glUniform2fv"
, "glUniform2i"
, "glUniform2iv"
, "glUniform2ui"
, "glUniform2uiv"
, "glUniform3f"
, "glUniform3fv"
, "glUniform3i"
, "glUniform3iv"
, "glUniform3ui"
, "glUniform3uiv"
, "glUniform4f"
, "glUniform4fv"
, "glUniform4i"
, "glUniform4iv"
, "glUniform4ui"
, "glUniform4uiv"
, "glUniformBlockBinding"
, "glUniformMatrix2fv"
, "glUniformMatrix2x3fv"
, "glUniformMatrix2x4fv"
, "glUniformMatrix3fv"
, "glUniformMatrix3x2fv"
, "glUniformMatrix3x4fv"
, "glUniformMatrix4fv"
, "glUniformMatrix4x2fv"
, "glUniformMatrix4x3fv"
, "glUniformSubroutines"
, "glUniformSubroutinesuiv"
, "glUnmapBuffer"
, "glUnmapNamedBuffer"
, "glUseProgram"
, "glUseProgramStages"
, "glValidateProgram"
, "glValidateProgramPipeline"
, "glVertexArrayAttribBinding"
, "glVertexArrayAttribFormat"
, "glVertexArrayAttribIFormat"
, "glVertexArrayAttribLFormat"
, "glVertexArrayBindingDivisor"
, "glVertexArrayElementBuffer"
, "glVertexArrayVertexBuffer"
, "glVertexArrayVertexBuffers"
, "glVertexAttrib"
, "glVertexAttrib1d"
, "glVertexAttrib1dv"
, "glVertexAttrib1f"
, "glVertexAttrib1fv"
, "glVertexAttrib1s"
, "glVertexAttrib1sv"
, "glVertexAttrib2d"
, "glVertexAttrib2dv"
, "glVertexAttrib2f"
, "glVertexAttrib2fv"
, "glVertexAttrib2s"
, "glVertexAttrib2sv"
, "glVertexAttrib3d"
, "glVertexAttrib3dv"
, "glVertexAttrib3f"
, "glVertexAttrib3fv"
, "glVertexAttrib3s"
, "glVertexAttrib3sv"
, "glVertexAttrib4Nbv"
, "glVertexAttrib4Niv"
, "glVertexAttrib4Nsv"
, "glVertexAttrib4Nub"
, "glVertexAttrib4Nubv"
, "glVertexAttrib4Nuiv"
, "glVertexAttrib4Nusv"
, "glVertexAttrib4bv"
, "glVertexAttrib4d"
, "glVertexAttrib4dv"
, "glVertexAttrib4f"
, "glVertexAttrib4fv"
, "glVertexAttrib4iv"
, "glVertexAttrib4s"
, "glVertexAttrib4sv"
, "glVertexAttrib4ubv"
, "glVertexAttrib4uiv"
, "glVertexAttrib4usv"
, "glVertexAttribBinding"
, "glVertexAttribDivisor"
, "glVertexAttribFormat"
, "glVertexAttribI1i"
, "glVertexAttribI1iv"
, "glVertexAttribI1ui"
, "glVertexAttribI1uiv"
, "glVertexAttribI2i"
, "glVertexAttribI2iv"
, "glVertexAttribI2ui"
, "glVertexAttribI2uiv"
, "glVertexAttribI3i"
, "glVertexAttribI3iv"
, "glVertexAttribI3ui"
, "glVertexAttribI3uiv"
, "glVertexAttribI4bv"
, "glVertexAttribI4i"
, "glVertexAttribI4iv"
, "glVertexAttribI4sv"
, "glVertexAttribI4ubv"
, "glVertexAttribI4ui"
, "glVertexAttribI4uiv"
, "glVertexAttribI4usv"
, "glVertexAttribIFormat"
, "glVertexAttribIPointer"
, "glVertexAttribL1d"
, "glVertexAttribL1dv"
, "glVertexAttribL2d"
, "glVertexAttribL2dv"
, "glVertexAttribL3d"
, "glVertexAttribL3dv"
, "glVertexAttribL4d"
, "glVertexAttribL4dv"
, "glVertexAttribLFormat"
, "glVertexAttribLPointer"
, "glVertexAttribP1ui"
, "glVertexAttribP2ui"
, "glVertexAttribP3ui"
, "glVertexAttribP4ui"
, "glVertexAttribPointer"
, "glVertexBindingDivisor"
, "glViewport"
, "glViewportArray"
, "glViewportArrayv"
, "glViewportIndexed"
, "glViewportIndexedf"
, "glViewportIndexedfv"
, "glWaitSync"
, "gl_ClipDistance"
, "gl_CullDistance"
, "gl_FragCoord"
, "gl_FragDepth"
, "gl_FrontFacing"
, "gl_GlobalInvocationID"
, "gl_HelperInvocation"
, "gl_InstanceID"
, "gl_InvocationID"
, "gl_Layer"
, "gl_LocalInvocationID"
, "gl_LocalInvocationIndex"
, "gl_NumSamples"
, "gl_NumWorkGroups"
, "gl_PatchVerticesIn"
, "gl_PointCoord"
, "gl_PointSize"
, "gl_Position"
, "gl_PrimitiveID"
, "gl_PrimitiveIDIn"
, "gl_SampleID"
, "gl_SampleMask"
, "gl_SampleMaskIn"
, "gl_SamplePosition"
, "gl_TessCoord"
, "gl_TessLevelInner"
, "gl_TessLevelOuter"
, "gl_VertexID"
, "gl_ViewportIndex"
, "gl_WorkGroupID"
, "gl_WorkGroupSize"
, "greaterThan"
, "greaterThanEqual"
, "groupMemoryBarrier"
, "imageAtomicAdd"
, "imageAtomicAnd"
, "imageAtomicCompSwap"
, "imageAtomicExchange"
, "imageAtomicMax"
, "imageAtomicMin"
, "imageAtomicOr"
, "imageAtomicXor"
, "imageLoad"
, "imageSamples"
, "imageSize"
, "imageStore"
, "imulExtended"
, "intBitsToFloat"
, "interpolateAtCentroid"
, "interpolateAtOffset"
, "interpolateAtSample"
, "inverse"
, "inversesqrt"
, "isinf"
, "isnan"
, "ldexp"
, "length"
, "lessThan"
, "lessThanEqual"
, "log"
, "log2"
, "matrixCompMult"
, "max"
, "memoryBarrier"
, "memoryBarrierAtomicCounter"
, "memoryBarrierBuffer"
, "memoryBarrierImage"
, "memoryBarrierShared"
, "min"
, "mix"
, "mod"
, "modf"
, "noise"
, "noise1"
, "noise2"
, "noise3"
, "noise4"
, "normalize"
, "not"
, "notEqual"
, "outerProduct"
, "packDouble2x32"
, "packHalf2x16"
, "packSnorm2x16"
, "packSnorm4x8"
, "packUnorm"
, "packUnorm2x16"
, "packUnorm4x8"
, "pow"
, "radians"
, "reflect"
, "refract"
, "removedTypes"
, "round"
, "roundEven"
, "sign"
, "sin"
, "sinh"
, "smoothstep"
, "sqrt"
, "step"
, "tan"
, "tanh"
, "texelFetch"
, "texelFetchOffset"
, "texture"
, "textureGather"
, "textureGatherOffset"
, "textureGatherOffsets"
, "textureGrad"
, "textureGradOffset"
, "textureLod"
, "textureLodOffset"
, "textureOffset"
, "textureProj"
, "textureProjGrad"
, "textureProjGradOffset"
, "textureProjLod"
, "textureProjLodOffset"
, "textureProjOffset"
, "textureQueryLevels"
, "textureQueryLod"
, "textureSamples"
, "textureSize"
, "transpose"
, "trunc"
, "uaddCarry"
, "uintBitsToFloat"
, "umulExtended"
, "unpackDouble2x32"
, "unpackHalf2x16"
, "unpackSnorm2x16"
, "unpackSnorm4x8"
, "unpackUnorm"
, "unpackUnorm2x16"
, "unpackUnorm4x8"
, "usubBorrow"
])
, rAttribute = BuiltInTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet
True
[ "gl_BackColor"
, "gl_BackLightModelProduct"
, "gl_BackLightProduct"
, "gl_BackMaterial"
, "gl_BackSecondaryColor"
, "gl_ClipDistance"
, "gl_ClipPlane"
, "gl_ClipVertex"
, "gl_Color"
, "gl_DepthRange"
, "gl_DepthRangeParameters"
, "gl_EyePlaneQ"
, "gl_EyePlaneR"
, "gl_EyePlaneS"
, "gl_EyePlaneT"
, "gl_Fog"
, "gl_FogColor"
, "gl_FogFragCoord"
, "gl_FogParameters"
, "gl_FragColor"
, "gl_FragCoord"
, "gl_FragData"
, "gl_FragDepth"
, "gl_FragFacing"
, "gl_FrontColor"
, "gl_FrontLightModelProduct"
, "gl_FrontLightProduct"
, "gl_FrontMaterial"
, "gl_FrontSecondaryColor"
, "gl_InvocationID"
, "gl_Layer"
, "gl_LightModel"
, "gl_LightModelParameters"
, "gl_LightModelProducts"
, "gl_LightProducts"
, "gl_LightSource"
, "gl_LightSourceParameters"
, "gl_MaterialParameters"
, "gl_MaxClipPlanes"
, "gl_MaxCombinedTextureImageUnits"
, "gl_MaxDrawBuffers"
, "gl_MaxFragmentUniformComponents"
, "gl_MaxLights"
, "gl_MaxPatchVertices"
, "gl_MaxTextureCoords"
, "gl_MaxTextureImageUnits"
, "gl_MaxTextureUnits"
, "gl_MaxVaryingFloats"
, "gl_MaxVertexAttributes"
, "gl_MaxVertexTextureImageUnits"
, "gl_MaxVertexUniformComponents"
, "gl_ModelViewMatrix"
, "gl_ModelViewMatrixInverse"
, "gl_ModelViewMatrixInverseTranspose"
, "gl_ModelViewMatrixTranspose"
, "gl_ModelViewProjectionMatrix"
, "gl_ModelViewProjectionMatrixInverse"
, "gl_ModelViewProjectionMatrixInverseTranspose"
, "gl_ModelViewProjectionMatrixTranspose"
, "gl_MultiTexCoord0"
, "gl_MultiTexCoord1"
, "gl_MultiTexCoord2"
, "gl_MultiTexCoord3"
, "gl_MultiTexCoord4"
, "gl_MultiTexCoord5"
, "gl_MultiTexCoord6"
, "gl_MultiTexCoord7"
, "gl_NormScale"
, "gl_Normal"
, "gl_NormalMatrix"
, "gl_ObjectPlaneQ"
, "gl_ObjectPlaneR"
, "gl_ObjectPlaneS"
, "gl_ObjectPlaneT"
, "gl_PatchVerticesIn"
, "gl_Point"
, "gl_PointParameters"
, "gl_PointSize"
, "gl_Position"
, "gl_PrimitiveID"
, "gl_PrimitiveIDIn"
, "gl_ProjectionMatrix"
, "gl_ProjectionMatrixInverse"
, "gl_ProjectionMatrixInverseTranspose"
, "gl_ProjectionMatrixTranspose"
, "gl_SecondaryColor"
, "gl_TessCoord"
, "gl_TessLevelInner"
, "gl_TessLevelOuter"
, "gl_TexCoord"
, "gl_TextureEnvColor"
, "gl_TextureMatrix"
, "gl_TextureMatrixInverse"
, "gl_TextureMatrixInverseTranspose"
, "gl_TextureMatrixTranspose"
, "gl_Vertex"
, "gl_ViewportIndex"
, "gl_in"
, "gl_out"
])
, rAttribute = VariableTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = Float
, rAttribute = FloatTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = HlCOct
, rAttribute = BaseNTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = HlCHex
, rAttribute = BaseNTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = Int
, rAttribute = DecValTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = Detect2Chars '/' '/'
, rAttribute = CommentTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Push ( "GLSL" , "Commentar 1" ) ]
}
, Rule
{ rMatcher = Detect2Chars '/' '*'
, rAttribute = CommentTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Push ( "GLSL" , "Commentar 2" ) ]
}
, Rule
{ rMatcher = DetectChar '{'
, rAttribute = NormalTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = DetectChar '}'
, rAttribute = NormalTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = DetectChar '#'
, rAttribute = PreprocessorTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = True
, rColumn = Nothing
, rContextSwitch = [ Push ( "GLSL" , "Preprocessor" ) ]
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "\\b[_\\w][_\\w\\d]*(?=[\\s]*[(])"
, reCompiled =
Just (compileRegex True "\\b[_\\w][_\\w\\d]*(?=[\\s]*[(])")
, reCaseSensitive = True
}
, rAttribute = FunctionTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "[.]{1,1}"
, reCompiled = Just (compileRegex True "[.]{1,1}")
, reCaseSensitive = True
}
, rAttribute = NormalTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Push ( "GLSL" , "Member" ) ]
}
, Rule
{ rMatcher = AnyChar ".+-/*%<>[]()^|&~=!:;,?;"
, rAttribute = NormalTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
]
, cAttribute = NormalTok
, cLineEmptyContext = []
, cLineEndContext = []
, cLineBeginContext = []
, cFallthrough = False
, cFallthroughContext = []
, cDynamic = False
}
)
, ( "Preprocessor"
, Context
{ cName = "Preprocessor"
, cSyntax = "GLSL"
, cRules = []
, cAttribute = PreprocessorTok
, cLineEmptyContext = []
, cLineEndContext = [ Pop ]
, cLineBeginContext = []
, cFallthrough = False
, cFallthroughContext = []
, cDynamic = False
}
)
]
, sAuthor = "Oliver Richers (o.richers@tu-bs.de)"
, sVersion = "3"
, sLicense = "LGPL"
, sExtensions =
[ "*.glsl" , "*.vert" , "*.frag" , "*.geom" , "*.tcs" , "*.tes" ]
, sStartingContext = "Normal"
}