3 ��X�d � @ s� d Z ddlmZmZmZmZmZmZmZ ddl m Z mZmZm Z mZmZmZmZ dddddgZG d d� de�ZG d d� de�ZG dd� de�Zdd � Zdd� ZG dd� de�ZG dd� de�ZdS )z� pygments.lexers.graphics ~~~~~~~~~~~~~~~~~~~~~~~~ Lexers for computer graphics and plotting related languages. :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. � )� RegexLexer�words�include�bygroups�using�this�default)�Text�Comment�Operator�Keyword�Name�Number�Punctuation�String� GLShaderLexer�PostScriptLexer�AsymptoteLexer�GnuplotLexer�PovrayLexerc @ @ s� e Zd ZdZdZdgZdddgZdgZdd ej fd ej fdejfdefd efdefde fdejfdejfdejfdejfdejfed|dGdGdH�efed}dGdGdH�efdxefdye fdzefgiZd{S )~r z@ GLSL (OpenGL Shader) lexer. .. versionadded:: 1.1 ZGLSLZglslz*.vertz*.fragz*.geoztext/x-glslsrc�rootz^#.*z//.*z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z0\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?z[?:]z\bdefined\bz[;{}(),\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?z[+-]?\d+\.\d*([eE][-+]?\d+)?z0[xX][0-9a-fA-F]*z0[0-7]*z[1-9][0-9]*� attribute�const�uniform�varying�centroid�break�continue�do�for�while�if�else�in�out�inout�float�int�void�bool�true�false� invariant�discard�return�mat2�mat3mat4�mat2x2�mat3x2�mat4x2�mat2x3�mat3x3�mat4x3�mat2x4�mat3x4�mat4x4�vec2�vec3�vec4�ivec2�ivec3�ivec4�bvec2�bvec3�bvec4� sampler1D� sampler2D�sampler3DsamplerCube�sampler1DShadow�sampler2DShadow�structz\b)�prefix�suffix�asm�class�union�enum�typedef�templater �packed�goto�switchr �inline�noinline�volatile�public�static�extern�external� interface�long�short�double�half�fixed�unsigned�lowp�mediump�highp� precision�input�output�hvec2�hvec3�hvec4�dvec2�dvec3�dvec4�fvec2�fvec3�fvec4� sampler2DRect� sampler3DRect�sampler2DRectShadow�sizeof�cast� namespacer z[a-zA-Z_]\w*z\.z\s+N)2r r r r r r r r r r r! r"