'import' Keyword.Namespace ' ' Text.Whitespace 'Math.Vector3' Name.Class ' ' Text.Whitespace '(..)' Name.Function '\n' Text.Whitespace 'import' Keyword.Namespace ' ' Text.Whitespace 'Math.Matrix4' Name.Class ' ' Text.Whitespace '(..)' Name.Function '\n' Text.Whitespace 'import' Keyword.Namespace ' ' Text.Whitespace 'Graphics.WebGL' Name.Class ' ' Text.Whitespace '(..)' Name.Function '\n\n' Text.Whitespace '-- Create a mesh with two triangles' Comment.Single '\n\n' Text.Whitespace 'type' Keyword.Reserved ' ' Text.Whitespace 'Vertex' Keyword.Type ' ' Text.Whitespace '=' Name.Function ' ' Text.Whitespace '{' Punctuation ' ' Text.Whitespace 'position' Name.Variable ':' Name.Function 'Vec3' Keyword.Type ',' Punctuation ' ' Text.Whitespace 'color' Name.Variable ':' Name.Function 'Vec3' Keyword.Type ' ' Text.Whitespace '}' Punctuation '\n\n' Text.Whitespace 'mesh' Name.Variable ' ' Text.Whitespace ':' Name.Function ' ' Text.Whitespace '[' Punctuation 'Triangle' Keyword.Type ' ' Text.Whitespace 'Vertex' Keyword.Type ']' Punctuation '\n' Text.Whitespace 'mesh' Name.Variable ' ' Text.Whitespace '=' Name.Function ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '(' Punctuation ' ' Text.Whitespace 'Vertex' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation '\n ' Text.Whitespace ',' Punctuation ' ' Text.Whitespace 'Vertex' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation '\n ' Text.Whitespace ',' Punctuation ' ' Text.Whitespace 'Vertex' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '-' Name.Function '1' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '1' Literal.Number.Integer ')' Punctuation '\n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace '-- Create the scene' Comment.Single '\n\n' Text.Whitespace 'main ' Keyword.Reserved ':' Name.Function ' ' Text.Whitespace 'Signal' Keyword.Type ' ' Text.Whitespace 'Element' Keyword.Type '\n' Text.Whitespace 'main ' Keyword.Reserved '=' Name.Function ' ' Text.Whitespace 'scene' Name.Variable ' ' Text.Whitespace '<~' Name.Function ' ' Text.Whitespace 'foldp' Name.Variable ' ' Text.Whitespace '(+)' Name.Function ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '(' Punctuation 'fps' Name.Variable ' ' Text.Whitespace '30' Literal.Number.Integer ')' Punctuation '\n\n' Text.Whitespace 'scene' Name.Variable ' ' Text.Whitespace ':' Name.Function ' ' Text.Whitespace 'Float' Keyword.Type ' ' Text.Whitespace '->' Name.Function ' ' Text.Whitespace 'Element' Keyword.Type '\n' Text.Whitespace 'scene' Name.Variable ' ' Text.Whitespace 't' Name.Variable ' ' Text.Whitespace '=' Name.Function '\n ' Text.Whitespace 'webgl' Name.Variable ' ' Text.Whitespace '(' Punctuation '400' Literal.Number.Integer ',' Punctuation '400' Literal.Number.Integer ')' Punctuation '\n ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'entity' Name.Variable ' ' Text.Whitespace 'vertexShader' Name.Variable ' ' Text.Whitespace 'fragmentShader' Name.Variable ' ' Text.Whitespace 'mesh' Name.Variable ' ' Text.Whitespace '{' Punctuation ' ' Text.Whitespace 'view' Name.Variable ' ' Text.Whitespace '=' Name.Function ' ' Text.Whitespace 'view' Name.Variable ' ' Text.Whitespace '(' Punctuation 't' Name.Variable ' ' Text.Whitespace '/' Name.Function ' ' Text.Whitespace '1000' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'view' Name.Variable ' ' Text.Whitespace ':' Name.Function ' ' Text.Whitespace 'Float' Keyword.Type ' ' Text.Whitespace '->' Name.Function ' ' Text.Whitespace 'Mat4' Keyword.Type '\n' Text.Whitespace 'view' Name.Variable ' ' Text.Whitespace 't' Name.Variable ' ' Text.Whitespace '=' Name.Function '\n ' Text.Whitespace 'mul' Name.Variable ' ' Text.Whitespace '(' Punctuation 'makePerspective' Name.Variable ' ' Text.Whitespace '45' Literal.Number.Integer ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '0.' Literal.Number.Float '01' Literal.Number.Integer ' ' Text.Whitespace '100' Literal.Number.Integer ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'makeLookAt' Name.Variable ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '(' Punctuation '4' Literal.Number.Integer ' ' Text.Whitespace '*' Name.Function ' ' Text.Whitespace 'cos' Name.Variable ' ' Text.Whitespace 't' Name.Variable ')' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '(' Punctuation '4' Literal.Number.Integer ' ' Text.Whitespace '*' Name.Function ' ' Text.Whitespace 'sin' Name.Variable ' ' Text.Whitespace 't' Name.Variable ')' Punctuation ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'vec3' Name.Variable ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '-- Shaders' Comment.Single '\n\n' Text.Whitespace 'vertexShader' Name.Variable ' ' Text.Whitespace ':' Name.Function ' ' Text.Whitespace 'Shader' Keyword.Type ' ' Text.Whitespace '{' Punctuation ' ' Text.Whitespace 'attr' Name.Variable ' ' Text.Whitespace '|' Name.Function ' ' Text.Whitespace 'position' Name.Variable ':' Name.Function 'Vec3' Keyword.Type ',' Punctuation ' ' Text.Whitespace 'color' Name.Variable ':' Name.Function 'Vec3' Keyword.Type ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace '{' Punctuation ' ' Text.Whitespace 'unif' Name.Variable ' ' Text.Whitespace '|' Name.Function ' ' Text.Whitespace 'view' Name.Variable ':' Name.Function 'Mat4' Keyword.Type ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace '{' Punctuation ' ' Text.Whitespace 'vcolor' Name.Variable ':' Name.Function 'Vec3' Keyword.Type ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace 'vertexShader' Name.Variable ' ' Text.Whitespace '=' Name.Function ' ' Text.Whitespace '[glsl|' Name.Entity '\n' Text.Whitespace '\n' Text.Whitespace 'attribute vec3 position;' Name.Entity '\n' Text.Whitespace 'attribute vec3 color;' Name.Entity '\n' Text.Whitespace 'uniform mat4 view;' Name.Entity '\n' Text.Whitespace 'varying vec3 vcolor;' Name.Entity '\n' Text.Whitespace '\n' Text.Whitespace 'void main () {' Name.Entity '\n' Text.Whitespace ' gl_Position = view * vec4(position, 1.0);' Name.Entity '\n' Text.Whitespace ' vcolor = color;' Name.Entity '\n' Text.Whitespace '}' Name.Entity '\n' Text.Whitespace '\n' Text.Whitespace '|]' Name.Entity '\n\n' Text.Whitespace 'fragmentShader' Name.Variable ' ' Text.Whitespace ':' Name.Function ' ' Text.Whitespace 'Shader' Keyword.Type ' ' Text.Whitespace '{' Punctuation '}' Punctuation ' ' Text.Whitespace 'u' Name.Variable ' ' Text.Whitespace '{' Punctuation ' ' Text.Whitespace 'vcolor' Name.Variable ':' Name.Function 'Vec3' Keyword.Type ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace 'fragmentShader' Name.Variable ' ' Text.Whitespace '=' Name.Function ' ' Text.Whitespace '[glsl|' Name.Entity '\n' Text.Whitespace '\n' Text.Whitespace 'precision mediump float;' Name.Entity '\n' Text.Whitespace 'varying vec3 vcolor;' Name.Entity '\n' Text.Whitespace '\n' Text.Whitespace 'void main () {' Name.Entity '\n' Text.Whitespace ' gl_FragColor = vec4(vcolor, 1.0);' Name.Entity '\n' Text.Whitespace '}' Name.Entity '\n' Text.Whitespace '\n' Text.Whitespace '|]' Name.Entity '\n' Text.Whitespace