[{"name":"Language.GLSL.Parser","comment":" This module is part of an Elm implementation of a GLSL parser, inspired by the\nHaskell GLSL parser.\n\nReference: <https://hackage.haskell.org/package/language-glsl-0.3.0/docs/src/Language.GLSL.Parser.html>\n\nThis implementation attempts to adapt the concepts and structure from the\nHaskell parser into the Elm ecosystem.\n\n@docs parse\n\n","unions":[],"aliases":[],"values":[{"name":"parse","comment":" Parses a GLSL shader string into an abstract syntax tree (AST).\n\nThis function attempts to parse a given GLSL shader and returns either the parsed result\nas a `TranslationUnit` type or an error message if parsing fails.\n\n","type":"String.String -> Result.Result { position : Basics.Int, messages : List.List String.String } Language.GLSL.Syntax.TranslationUnit"}],"binops":[]},{"name":"Language.GLSL.Syntax","comment":" This module is part of an Elm implementation of a GLSL parser, inspired by the\nHaskell GLSL parser.\n\nReference: <https://hackage.haskell.org/package/language-glsl-0.3.0/docs/src/Language.GLSL.Syntax.html>\n\nThis implementation attempts to adapt the concepts and structure from the\nHaskell parser into the Elm ecosystem.\n\n\n# Abstract syntax tree\n\n@docs TranslationUnit\n\n@docs ExternalDeclaration, Declaration\n@docs InitDeclarator\n@docs InvariantOrType\n@docs FunctionPrototype\n@docs ParameterDeclaration\n@docs FullType\n@docs TypeQualifier\n@docs TypeSpecifier\n@docs InvariantQualifier\n@docs InterpolationQualifier\n@docs LayoutQualifier\n@docs LayoutQualifierId\n@docs Statement\n@docs Compound\n@docs Condition\n@docs CaseLabel\n@docs StorageQualifier\n@docs TypeSpecifierNoPrecision\n@docs TypeSpecifierNonArray\n@docs PrecisionQualifier\n@docs Field\n@docs StructDeclarator\n@docs Expr\n@docs IntConstantKind\n@docs Parameters\n@docs ParameterQualifier\n@docs ParameterTypeQualifier\n@docs FunctionIdentifier\n\n","unions":[{"name":"CaseLabel","comment":" ","args":[],"cases":[["Case",["Language.GLSL.Syntax.Expr"]],["Default",[]]]},{"name":"Compound","comment":" ","args":[],"cases":[["Compound",["List.List Language.GLSL.Syntax.Statement"]]]},{"name":"Condition","comment":" ","args":[],"cases":[["Condition",["Language.GLSL.Syntax.Expr"]],["InitializedCondition",["Language.GLSL.Syntax.FullType","String.String","Language.GLSL.Syntax.Expr"]]]},{"name":"Declaration","comment":" ","args":[],"cases":[["InitDeclaration",["Language.GLSL.Syntax.InvariantOrType","List.List Language.GLSL.Syntax.InitDeclarator"]],["Precision",["Language.GLSL.Syntax.PrecisionQualifier","Language.GLSL.Syntax.TypeSpecifierNoPrecision"]],["Block",["Language.GLSL.Syntax.TypeQualifier","String.String","List.List Language.GLSL.Syntax.Field","Maybe.Maybe ( String.String, Maybe.Maybe (Maybe.Maybe Language.GLSL.Syntax.Expr) )"]],["TQ",["Language.GLSL.Syntax.TypeQualifier"]]]},{"name":"Expr","comment":" ","args":[],"cases":[["Variable",["String.String"]],["IntConstant",["Language.GLSL.Syntax.IntConstantKind","Basics.Int"]],["FloatConstant",["Basics.Float"]],["BoolConstant",["Basics.Bool"]],["Bracket",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["FieldSelection",["Language.GLSL.Syntax.Expr","String.String"]],["MethodCall",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.FunctionIdentifier","Language.GLSL.Syntax.Parameters"]],["FunctionCall",["Language.GLSL.Syntax.FunctionIdentifier","Language.GLSL.Syntax.Parameters"]],["PostInc",["Language.GLSL.Syntax.Expr"]],["PostDec",["Language.GLSL.Syntax.Expr"]],["PreInc",["Language.GLSL.Syntax.Expr"]],["PreDec",["Language.GLSL.Syntax.Expr"]],["UnaryPlus",["Language.GLSL.Syntax.Expr"]],["UnaryNegate",["Language.GLSL.Syntax.Expr"]],["UnaryNot",["Language.GLSL.Syntax.Expr"]],["UnaryOneComplement",["Language.GLSL.Syntax.Expr"]],["Mul",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Div",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Mod",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Add",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Sub",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["LeftShift",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["RightShift",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Lt",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Gt",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Lte",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Gte",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Equ",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Neq",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["BitAnd",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["BitXor",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["BitOr",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["And",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Or",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Selection",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Equal",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["MulAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["DivAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["ModAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["AddAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["SubAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["LeftAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["RightAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["AndAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["XorAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["OrAssign",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]],["Sequence",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Expr"]]]},{"name":"ExternalDeclaration","comment":" ","args":[],"cases":[["FunctionDeclaration",["Language.GLSL.Syntax.FunctionPrototype"]],["FunctionDefinition",["Language.GLSL.Syntax.FunctionPrototype","Language.GLSL.Syntax.Compound"]],["Declaration",["Language.GLSL.Syntax.Declaration"]]]},{"name":"Field","comment":" ","args":[],"cases":[["Field",["Maybe.Maybe Language.GLSL.Syntax.TypeQualifier","Language.GLSL.Syntax.TypeSpecifier","List.List Language.GLSL.Syntax.StructDeclarator"]]]},{"name":"FullType","comment":" ","args":[],"cases":[["FullType",["Maybe.Maybe Language.GLSL.Syntax.TypeQualifier","Language.GLSL.Syntax.TypeSpecifier"]]]},{"name":"FunctionIdentifier","comment":" ","args":[],"cases":[["FuncIdTypeSpec",["Language.GLSL.Syntax.TypeSpecifier"]],["FuncId",["String.String"]]]},{"name":"FunctionPrototype","comment":" ","args":[],"cases":[["FuncProt",["Language.GLSL.Syntax.FullType","String.String","List.List Language.GLSL.Syntax.ParameterDeclaration"]]]},{"name":"InitDeclarator","comment":" ","args":[],"cases":[["InitDecl",["String.String","Maybe.Maybe (Maybe.Maybe Language.GLSL.Syntax.Expr)","Maybe.Maybe Language.GLSL.Syntax.Expr"]]]},{"name":"IntConstantKind","comment":" ","args":[],"cases":[["Hexadecimal",[]],["Octal",[]],["Decimal",[]]]},{"name":"InterpolationQualifier","comment":" ","args":[],"cases":[["Smooth",[]],["Flat",[]],["NoPerspective",[]]]},{"name":"InvariantOrType","comment":" ","args":[],"cases":[["InvariantDeclarator",[]],["TypeDeclarator",["Language.GLSL.Syntax.FullType"]]]},{"name":"InvariantQualifier","comment":" ","args":[],"cases":[["Invariant",[]]]},{"name":"LayoutQualifier","comment":" ","args":[],"cases":[["Layout",["List.List Language.GLSL.Syntax.LayoutQualifierId"]]]},{"name":"LayoutQualifierId","comment":" ","args":[],"cases":[["LayoutQualId",["String.String","Maybe.Maybe Language.GLSL.Syntax.Expr"]]]},{"name":"ParameterDeclaration","comment":" ","args":[],"cases":[["ParameterDeclaration",["Maybe.Maybe Language.GLSL.Syntax.ParameterTypeQualifier","Maybe.Maybe Language.GLSL.Syntax.ParameterQualifier","Language.GLSL.Syntax.TypeSpecifier","Maybe.Maybe ( String.String, Maybe.Maybe Language.GLSL.Syntax.Expr )"]]]},{"name":"ParameterQualifier","comment":" ","args":[],"cases":[["InParameter",[]],["OutParameter",[]],["InOutParameter",[]]]},{"name":"ParameterTypeQualifier","comment":" ","args":[],"cases":[["ConstParameter",[]]]},{"name":"Parameters","comment":" ","args":[],"cases":[["ParamVoid",[]],["Params",["List.List Language.GLSL.Syntax.Expr"]]]},{"name":"PrecisionQualifier","comment":" ","args":[],"cases":[["HighP",[]],["MediumP",[]],["LowP",[]]]},{"name":"Statement","comment":" ","args":[],"cases":[["DeclarationStatement",["Language.GLSL.Syntax.Declaration"]],["Continue",[]],["Break",[]],["Return",["Maybe.Maybe Language.GLSL.Syntax.Expr"]],["Discard",[]],["CompoundStatement",["Language.GLSL.Syntax.Compound"]],["ExpressionStatement",["Maybe.Maybe Language.GLSL.Syntax.Expr"]],["SelectionStatement",["Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Statement","Maybe.Maybe Language.GLSL.Syntax.Statement"]],["SwitchStatement",["Language.GLSL.Syntax.Expr","List.List Language.GLSL.Syntax.Statement"]],["CaseLabel",["Language.GLSL.Syntax.CaseLabel"]],["While",["Language.GLSL.Syntax.Condition","Language.GLSL.Syntax.Statement"]],["DoWhile",["Language.GLSL.Syntax.Statement","Language.GLSL.Syntax.Expr"]],["For",["Result.Result (Maybe.Maybe Language.GLSL.Syntax.Expr) Language.GLSL.Syntax.Declaration","Maybe.Maybe Language.GLSL.Syntax.Condition","Maybe.Maybe Language.GLSL.Syntax.Expr","Language.GLSL.Syntax.Statement"]]]},{"name":"StorageQualifier","comment":" ","args":[],"cases":[["Const",[]],["Attribute",[]],["Varying",[]],["CentroidVarying",[]],["In",[]],["Out",[]],["CentroidIn",[]],["CentroidOut",[]],["Uniform",[]]]},{"name":"StructDeclarator","comment":" ","args":[],"cases":[["StructDeclarator",["String.String","Maybe.Maybe (Maybe.Maybe Language.GLSL.Syntax.Expr)"]]]},{"name":"TranslationUnit","comment":" Represents the top-level structure of a parsed GLSL shader.\n\nA `TranslationUnit` is the root of the Abstract Syntax Tree (AST) for a GLSL shader.\n\n","args":[],"cases":[["TranslationUnit",["List.List Language.GLSL.Syntax.ExternalDeclaration"]]]},{"name":"TypeQualifier","comment":" ","args":[],"cases":[["TypeQualSto",["Language.GLSL.Syntax.StorageQualifier"]],["TypeQualLay",["Language.GLSL.Syntax.LayoutQualifier","Maybe.Maybe Language.GLSL.Syntax.StorageQualifier"]],["TypeQualInt",["Language.GLSL.Syntax.InterpolationQualifier","Maybe.Maybe Language.GLSL.Syntax.StorageQualifier"]],["TypeQualInv",["Language.GLSL.Syntax.InvariantQualifier","Maybe.Maybe Language.GLSL.Syntax.StorageQualifier"]],["TypeQualInv3",["Language.GLSL.Syntax.InvariantQualifier","Language.GLSL.Syntax.InterpolationQualifier","Language.GLSL.Syntax.StorageQualifier"]]]},{"name":"TypeSpecifier","comment":" ","args":[],"cases":[["TypeSpec",["Maybe.Maybe Language.GLSL.Syntax.PrecisionQualifier","Language.GLSL.Syntax.TypeSpecifierNoPrecision"]]]},{"name":"TypeSpecifierNoPrecision","comment":" ","args":[],"cases":[["TypeSpecNoPrecision",["Language.GLSL.Syntax.TypeSpecifierNonArray","Maybe.Maybe (Maybe.Maybe Language.GLSL.Syntax.Expr)"]]]},{"name":"TypeSpecifierNonArray","comment":" ","args":[],"cases":[["Void",[]],["Float",[]],["Int",[]],["UInt",[]],["Bool",[]],["Vec2",[]],["Vec3",[]],["Vec4",[]],["BVec2",[]],["BVec3",[]],["BVec4",[]],["IVec2",[]],["IVec3",[]],["IVec4",[]],["UVec2",[]],["UVec3",[]],["UVec4",[]],["Mat2",[]],["Mat3",[]],["Mat4",[]],["Mat2x2",[]],["Mat2x3",[]],["Mat2x4",[]],["Mat3x2",[]],["Mat3x3",[]],["Mat3x4",[]],["Mat4x2",[]],["Mat4x3",[]],["Mat4x4",[]],["Sampler1D",[]],["Sampler2D",[]],["Sampler3D",[]],["SamplerCube",[]],["Sampler1DShadow",[]],["Sampler2DShadow",[]],["SamplerCubeShadow",[]],["Sampler1DArray",[]],["Sampler2DArray",[]],["Sampler1DArrayShadow",[]],["Sampler2DArrayShadow",[]],["ISampler1D",[]],["ISampler2D",[]],["ISampler3D",[]],["ISamplerCube",[]],["ISampler1DArray",[]],["ISampler2DArray",[]],["USampler1D",[]],["USampler2D",[]],["USampler3D",[]],["USamplerCube",[]],["USampler1DArray",[]],["USampler2DArray",[]],["Sampler2DRect",[]],["Sampler2DRectShadow",[]],["ISampler2DRect",[]],["USampler2DRect",[]],["SamplerBuffer",[]],["ISamplerBuffer",[]],["USamplerBuffer",[]],["Sampler2DMS",[]],["ISampler2DMS",[]],["USampler2DMS",[]],["Sampler2DMSArray",[]],["ISampler2DMSArray",[]],["USampler2DMSArray",[]],["StructSpecifier",["Maybe.Maybe String.String","List.List Language.GLSL.Syntax.Field"]],["TypeName",["String.String"]]]}],"aliases":[],"values":[],"binops":[]}]