summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCsaba Hruska <csaba.hruska@gmail.com>2016-03-21 16:34:52 +0100
committerCsaba Hruska <csaba.hruska@gmail.com>2016-03-21 16:34:52 +0100
commitb2cae2db744cfca2825bf1e7a1c1ed41ce105c3e (patch)
tree200a771e223ab99dac30db9708147406e1f5dc0f
parent19ee05bdc20b43ee8d88eaee49c8ee6a8c38e3fb (diff)
generate toJSON java code
-rw-r--r--ddl/Generate.hs3
-rw-r--r--ddl/out/LambdaCube.IR.cpp2
-rw-r--r--ddl/out/LambdaCube.IR.cs2
-rw-r--r--ddl/out/LambdaCube.IR.hpp2
-rw-r--r--ddl/out/LambdaCube.IR.hs2
-rw-r--r--ddl/out/LambdaCube.IR.purs2
-rw-r--r--ddl/out/LambdaCube.IR.swift2
-rw-r--r--ddl/out/LambdaCube.IR2.hpp2
-rw-r--r--ddl/out/LambdaCube.Mesh.cpp2
-rw-r--r--ddl/out/LambdaCube.Mesh.cs2
-rw-r--r--ddl/out/LambdaCube.Mesh.hpp2
-rw-r--r--ddl/out/LambdaCube.Mesh.hs2
-rw-r--r--ddl/out/LambdaCube.Mesh.purs2
-rw-r--r--ddl/out/LambdaCube.Mesh.swift2
-rw-r--r--ddl/out/LambdaCube.Mesh2.hpp2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.cpp2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.cs2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.hpp2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.hs2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.purs2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema.swift2
-rw-r--r--ddl/out/LambdaCube.PipelineSchema2.hpp2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.cpp2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.cs2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.hpp2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.hs2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.purs2
-rw-r--r--ddl/out/LambdaCube.TypeInfo.swift2
-rw-r--r--ddl/out/LambdaCube.TypeInfo2.hpp2
-rw-r--r--ddl/out/TestData.cpp2
-rw-r--r--ddl/out/TestData.cs2
-rw-r--r--ddl/out/TestData.hpp2
-rw-r--r--ddl/out/TestData.hs2
-rw-r--r--ddl/out/TestData.purs2
-rw-r--r--ddl/out/TestData.swift2
-rw-r--r--ddl/out/TestData2.hpp2
-rw-r--r--ddl/out/java/LambdaCube/IR/AccumulationContext.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ArrayValue.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Backend.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/BlendEquation.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Blending.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/BlendingFactor.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ClearImage.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ColorArity.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Command.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ComparisonFunction.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/CullMode.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/EdgeMode.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/FetchPrimitive.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Filter.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/FragmentOperation.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/FrontFace.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ImageRef.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ImageSemantic.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/InputType.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/JSON.java1765
-rw-r--r--ddl/out/java/LambdaCube/IR/LogicOperation.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/MipMap.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/OutputPrimitive.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Parameter.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Pipeline.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/PointSize.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/PolygonMode.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/PolygonOffset.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Program.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/ProvokingVertex.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/RasterContext.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/RenderTarget.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/SamplerDescriptor.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Slot.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StencilOperation.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StencilOps.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StencilTest.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StencilTests.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/StreamData.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/TargetItem.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/TextureDataType.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/TextureDescriptor.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/TextureType.java2
-rw-r--r--ddl/out/java/LambdaCube/IR/Value.java2
-rw-r--r--ddl/out/java/LambdaCube/Mesh/JSON.java248
-rw-r--r--ddl/out/java/LambdaCube/Mesh/Mesh.java2
-rw-r--r--ddl/out/java/LambdaCube/Mesh/MeshAttribute.java2
-rw-r--r--ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java2
-rw-r--r--ddl/out/java/LambdaCube/PipelineSchema/JSON.java135
-rw-r--r--ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java2
-rw-r--r--ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java2
-rw-r--r--ddl/out/java/LambdaCube/PipelineSchema/StreamType.java2
-rw-r--r--ddl/out/java/LambdaCube/TypeInfo/CompileResult.java2
-rw-r--r--ddl/out/java/LambdaCube/TypeInfo/JSON.java86
-rw-r--r--ddl/out/java/LambdaCube/TypeInfo/Range.java2
-rw-r--r--ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java2
-rw-r--r--ddl/out/java/TestData/ClientInfo.java2
-rw-r--r--ddl/out/java/TestData/Frame.java2
-rw-r--r--ddl/out/java/TestData/FrameResult.java2
-rw-r--r--ddl/out/java/TestData/JSON.java211
-rw-r--r--ddl/out/java/TestData/PipelineInfo.java2
-rw-r--r--ddl/out/java/TestData/RenderJob.java2
-rw-r--r--ddl/out/java/TestData/RenderJobResult.java2
-rw-r--r--ddl/out/java/TestData/Scene.java2
-rw-r--r--ddl/templates/json.java.ede94
102 files changed, 2631 insertions, 101 deletions
diff --git a/ddl/Generate.hs b/ddl/Generate.hs
index 37437de..36d913e 100644
--- a/ddl/Generate.hs
+++ b/ddl/Generate.hs
@@ -44,7 +44,8 @@ main = do
44 , "dateTime" .= dt 44 , "dateTime" .= dt
45 , "imports" .= imports 45 , "imports" .= imports
46 , "usedTypes" .= collectTypes aliasMap mod 46 , "usedTypes" .= collectTypes aliasMap mod
47 , "usedCSTypes" .= (Set.fromList $ Map.elems $ Map.fromList [ (csType name aliasMap t,t) | t <- Set.toList $ collectTypes aliasMap mod]) 47 , "usedCSTypes" .= (Set.fromList $ Map.elems $ Map.fromList [ (csType name aliasMap t,t) | t <- Set.toList $ collectTypes aliasMap mod])
48 , "usedJavaTypes" .= (Set.fromList $ Map.elems $ Map.fromList [ (javaType aliasMap t,t) | t <- Set.toList $ collectTypes aliasMap mod])
48 ] 49 ]
49 aliasMap = Map.fromList [(n,t) | TypeAlias n t <- def] 50 aliasMap = Map.fromList [(n,t) | TypeAlias n t <- def]
50 mylib :: HashMap Text Term 51 mylib :: HashMap Text Term
diff --git a/ddl/out/LambdaCube.IR.cpp b/ddl/out/LambdaCube.IR.cpp
index f999419..719379d 100644
--- a/ddl/out/LambdaCube.IR.cpp
+++ b/ddl/out/LambdaCube.IR.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4#include "LambdaCube.IR.hpp" 4#include "LambdaCube.IR.hpp"
5template<> json toJSON<std::shared_ptr<ArrayValue>>(std::shared_ptr<ArrayValue> &v) { 5template<> json toJSON<std::shared_ptr<ArrayValue>>(std::shared_ptr<ArrayValue> &v) {
diff --git a/ddl/out/LambdaCube.IR.cs b/ddl/out/LambdaCube.IR.cs
index 39813dd..674a336 100644
--- a/ddl/out/LambdaCube.IR.cs
+++ b/ddl/out/LambdaCube.IR.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
diff --git a/ddl/out/LambdaCube.IR.hpp b/ddl/out/LambdaCube.IR.hpp
index f69d4fc..a4d9509 100644
--- a/ddl/out/LambdaCube.IR.hpp
+++ b/ddl/out/LambdaCube.IR.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4#ifndef HEADER_LambdaCube.IR_H 4#ifndef HEADER_LambdaCube.IR_H
5#define HEADER_LambdaCube.IR_H 5#define HEADER_LambdaCube.IR_H
diff --git a/ddl/out/LambdaCube.IR.hs b/ddl/out/LambdaCube.IR.hs
index ee9ac35..341acae 100644
--- a/ddl/out/LambdaCube.IR.hs
+++ b/ddl/out/LambdaCube.IR.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:54.700322000000Z 2-- 2016-03-21T15:32:16.153401000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module LambdaCube.IR where 5module LambdaCube.IR where
diff --git a/ddl/out/LambdaCube.IR.purs b/ddl/out/LambdaCube.IR.purs
index 5540d8d..8149d3e 100644
--- a/ddl/out/LambdaCube.IR.purs
+++ b/ddl/out/LambdaCube.IR.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:54.700322000000Z 2-- 2016-03-21T15:32:16.153401000000Z
3 3
4module LambdaCube.IR where 4module LambdaCube.IR where
5import Prelude 5import Prelude
diff --git a/ddl/out/LambdaCube.IR.swift b/ddl/out/LambdaCube.IR.swift
index 6293abd..e96d7d4 100644
--- a/ddl/out/LambdaCube.IR.swift
+++ b/ddl/out/LambdaCube.IR.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4typealias StreamName = Int 4typealias StreamName = Int
5 5
diff --git a/ddl/out/LambdaCube.IR2.hpp b/ddl/out/LambdaCube.IR2.hpp
index b5da9b0..7b10b75 100644
--- a/ddl/out/LambdaCube.IR2.hpp
+++ b/ddl/out/LambdaCube.IR2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4#ifndef HEADER_LambdaCube.IR_H 4#ifndef HEADER_LambdaCube.IR_H
5#define HEADER_LambdaCube.IR_H 5#define HEADER_LambdaCube.IR_H
diff --git a/ddl/out/LambdaCube.Mesh.cpp b/ddl/out/LambdaCube.Mesh.cpp
index a89f0f7..3b2f266 100644
--- a/ddl/out/LambdaCube.Mesh.cpp
+++ b/ddl/out/LambdaCube.Mesh.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4#include "LambdaCube.Mesh.hpp" 4#include "LambdaCube.Mesh.hpp"
5template<> json toJSON<std::shared_ptr<MeshAttribute>>(std::shared_ptr<MeshAttribute> &v) { 5template<> json toJSON<std::shared_ptr<MeshAttribute>>(std::shared_ptr<MeshAttribute> &v) {
diff --git a/ddl/out/LambdaCube.Mesh.cs b/ddl/out/LambdaCube.Mesh.cs
index 95be336..20a0f7b 100644
--- a/ddl/out/LambdaCube.Mesh.cs
+++ b/ddl/out/LambdaCube.Mesh.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
diff --git a/ddl/out/LambdaCube.Mesh.hpp b/ddl/out/LambdaCube.Mesh.hpp
index 4692756..f896dc2 100644
--- a/ddl/out/LambdaCube.Mesh.hpp
+++ b/ddl/out/LambdaCube.Mesh.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4#ifndef HEADER_LambdaCube.Mesh_H 4#ifndef HEADER_LambdaCube.Mesh_H
5#define HEADER_LambdaCube.Mesh_H 5#define HEADER_LambdaCube.Mesh_H
diff --git a/ddl/out/LambdaCube.Mesh.hs b/ddl/out/LambdaCube.Mesh.hs
index 9ae5a3a..3651653 100644
--- a/ddl/out/LambdaCube.Mesh.hs
+++ b/ddl/out/LambdaCube.Mesh.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:55.404479000000Z 2-- 2016-03-21T15:32:17.804995000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module LambdaCube.Mesh where 5module LambdaCube.Mesh where
diff --git a/ddl/out/LambdaCube.Mesh.purs b/ddl/out/LambdaCube.Mesh.purs
index 8976b23..d171868 100644
--- a/ddl/out/LambdaCube.Mesh.purs
+++ b/ddl/out/LambdaCube.Mesh.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:55.404479000000Z 2-- 2016-03-21T15:32:17.804995000000Z
3 3
4module LambdaCube.Mesh where 4module LambdaCube.Mesh where
5import Prelude 5import Prelude
diff --git a/ddl/out/LambdaCube.Mesh.swift b/ddl/out/LambdaCube.Mesh.swift
index f890267..9d9efdf 100644
--- a/ddl/out/LambdaCube.Mesh.swift
+++ b/ddl/out/LambdaCube.Mesh.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4enum MeshAttribute { 4enum MeshAttribute {
5 case A_Float(Array<Float>) 5 case A_Float(Array<Float>)
diff --git a/ddl/out/LambdaCube.Mesh2.hpp b/ddl/out/LambdaCube.Mesh2.hpp
index ac910b7..f61f8ed 100644
--- a/ddl/out/LambdaCube.Mesh2.hpp
+++ b/ddl/out/LambdaCube.Mesh2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4#ifndef HEADER_LambdaCube.Mesh_H 4#ifndef HEADER_LambdaCube.Mesh_H
5#define HEADER_LambdaCube.Mesh_H 5#define HEADER_LambdaCube.Mesh_H
diff --git a/ddl/out/LambdaCube.PipelineSchema.cpp b/ddl/out/LambdaCube.PipelineSchema.cpp
index 047ab67..80ed7d8 100644
--- a/ddl/out/LambdaCube.PipelineSchema.cpp
+++ b/ddl/out/LambdaCube.PipelineSchema.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4#include "LambdaCube.PipelineSchema.hpp" 4#include "LambdaCube.PipelineSchema.hpp"
5template<> json toJSON<std::shared_ptr<StreamType>>(std::shared_ptr<StreamType> &v) { 5template<> json toJSON<std::shared_ptr<StreamType>>(std::shared_ptr<StreamType> &v) {
diff --git a/ddl/out/LambdaCube.PipelineSchema.cs b/ddl/out/LambdaCube.PipelineSchema.cs
index 4644b5a..88f3d16 100644
--- a/ddl/out/LambdaCube.PipelineSchema.cs
+++ b/ddl/out/LambdaCube.PipelineSchema.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
diff --git a/ddl/out/LambdaCube.PipelineSchema.hpp b/ddl/out/LambdaCube.PipelineSchema.hpp
index 3d9b092..3092eea 100644
--- a/ddl/out/LambdaCube.PipelineSchema.hpp
+++ b/ddl/out/LambdaCube.PipelineSchema.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4#ifndef HEADER_LambdaCube.PipelineSchema_H 4#ifndef HEADER_LambdaCube.PipelineSchema_H
5#define HEADER_LambdaCube.PipelineSchema_H 5#define HEADER_LambdaCube.PipelineSchema_H
diff --git a/ddl/out/LambdaCube.PipelineSchema.hs b/ddl/out/LambdaCube.PipelineSchema.hs
index 447afe4..a5fbc07 100644
--- a/ddl/out/LambdaCube.PipelineSchema.hs
+++ b/ddl/out/LambdaCube.PipelineSchema.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:55.360355000000Z 2-- 2016-03-21T15:32:17.702608000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module LambdaCube.PipelineSchema where 5module LambdaCube.PipelineSchema where
diff --git a/ddl/out/LambdaCube.PipelineSchema.purs b/ddl/out/LambdaCube.PipelineSchema.purs
index 7292bf5..7b6daca 100644
--- a/ddl/out/LambdaCube.PipelineSchema.purs
+++ b/ddl/out/LambdaCube.PipelineSchema.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:55.360355000000Z 2-- 2016-03-21T15:32:17.702608000000Z
3 3
4module LambdaCube.PipelineSchema where 4module LambdaCube.PipelineSchema where
5import Prelude 5import Prelude
diff --git a/ddl/out/LambdaCube.PipelineSchema.swift b/ddl/out/LambdaCube.PipelineSchema.swift
index f824093..f72546e 100644
--- a/ddl/out/LambdaCube.PipelineSchema.swift
+++ b/ddl/out/LambdaCube.PipelineSchema.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4enum StreamType { 4enum StreamType {
5 case Attribute_Word 5 case Attribute_Word
diff --git a/ddl/out/LambdaCube.PipelineSchema2.hpp b/ddl/out/LambdaCube.PipelineSchema2.hpp
index c35b803..df67fcc 100644
--- a/ddl/out/LambdaCube.PipelineSchema2.hpp
+++ b/ddl/out/LambdaCube.PipelineSchema2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4#ifndef HEADER_LambdaCube.PipelineSchema_H 4#ifndef HEADER_LambdaCube.PipelineSchema_H
5#define HEADER_LambdaCube.PipelineSchema_H 5#define HEADER_LambdaCube.PipelineSchema_H
diff --git a/ddl/out/LambdaCube.TypeInfo.cpp b/ddl/out/LambdaCube.TypeInfo.cpp
index f015db4..2e135e8 100644
--- a/ddl/out/LambdaCube.TypeInfo.cpp
+++ b/ddl/out/LambdaCube.TypeInfo.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4#include "LambdaCube.TypeInfo.hpp" 4#include "LambdaCube.TypeInfo.hpp"
5template<> json toJSON<std::shared_ptr<Range>>(std::shared_ptr<Range> &v) { 5template<> json toJSON<std::shared_ptr<Range>>(std::shared_ptr<Range> &v) {
diff --git a/ddl/out/LambdaCube.TypeInfo.cs b/ddl/out/LambdaCube.TypeInfo.cs
index 43d094e..7bd571b 100644
--- a/ddl/out/LambdaCube.TypeInfo.cs
+++ b/ddl/out/LambdaCube.TypeInfo.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
diff --git a/ddl/out/LambdaCube.TypeInfo.hpp b/ddl/out/LambdaCube.TypeInfo.hpp
index 4c6413b..d283203 100644
--- a/ddl/out/LambdaCube.TypeInfo.hpp
+++ b/ddl/out/LambdaCube.TypeInfo.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4#ifndef HEADER_LambdaCube.TypeInfo_H 4#ifndef HEADER_LambdaCube.TypeInfo_H
5#define HEADER_LambdaCube.TypeInfo_H 5#define HEADER_LambdaCube.TypeInfo_H
diff --git a/ddl/out/LambdaCube.TypeInfo.hs b/ddl/out/LambdaCube.TypeInfo.hs
index d66c490..6414d2d 100644
--- a/ddl/out/LambdaCube.TypeInfo.hs
+++ b/ddl/out/LambdaCube.TypeInfo.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:55.479415000000Z 2-- 2016-03-21T15:32:17.924228000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module LambdaCube.TypeInfo where 5module LambdaCube.TypeInfo where
diff --git a/ddl/out/LambdaCube.TypeInfo.purs b/ddl/out/LambdaCube.TypeInfo.purs
index fffac7f..2a11ab5 100644
--- a/ddl/out/LambdaCube.TypeInfo.purs
+++ b/ddl/out/LambdaCube.TypeInfo.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:55.479415000000Z 2-- 2016-03-21T15:32:17.924228000000Z
3 3
4module LambdaCube.TypeInfo where 4module LambdaCube.TypeInfo where
5import Prelude 5import Prelude
diff --git a/ddl/out/LambdaCube.TypeInfo.swift b/ddl/out/LambdaCube.TypeInfo.swift
index 808b61c..f069445 100644
--- a/ddl/out/LambdaCube.TypeInfo.swift
+++ b/ddl/out/LambdaCube.TypeInfo.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4enum Range { 4enum Range {
5 case Range(Range_Data) 5 case Range(Range_Data)
diff --git a/ddl/out/LambdaCube.TypeInfo2.hpp b/ddl/out/LambdaCube.TypeInfo2.hpp
index 13c48a7..f3146f2 100644
--- a/ddl/out/LambdaCube.TypeInfo2.hpp
+++ b/ddl/out/LambdaCube.TypeInfo2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4#ifndef HEADER_LambdaCube.TypeInfo_H 4#ifndef HEADER_LambdaCube.TypeInfo_H
5#define HEADER_LambdaCube.TypeInfo_H 5#define HEADER_LambdaCube.TypeInfo_H
diff --git a/ddl/out/TestData.cpp b/ddl/out/TestData.cpp
index b354cde..82616bb 100644
--- a/ddl/out/TestData.cpp
+++ b/ddl/out/TestData.cpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4#include "TestData.hpp" 4#include "TestData.hpp"
5template<> json toJSON<std::shared_ptr<ClientInfo>>(std::shared_ptr<ClientInfo> &v) { 5template<> json toJSON<std::shared_ptr<ClientInfo>>(std::shared_ptr<ClientInfo> &v) {
diff --git a/ddl/out/TestData.cs b/ddl/out/TestData.cs
index 0c2a143..d8b4676 100644
--- a/ddl/out/TestData.cs
+++ b/ddl/out/TestData.cs
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4using System; 4using System;
5using System.Linq; 5using System.Linq;
diff --git a/ddl/out/TestData.hpp b/ddl/out/TestData.hpp
index 6d87ec3..d8756dd 100644
--- a/ddl/out/TestData.hpp
+++ b/ddl/out/TestData.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4#ifndef HEADER_TestData_H 4#ifndef HEADER_TestData_H
5#define HEADER_TestData_H 5#define HEADER_TestData_H
diff --git a/ddl/out/TestData.hs b/ddl/out/TestData.hs
index 4fc19ff..be5468b 100644
--- a/ddl/out/TestData.hs
+++ b/ddl/out/TestData.hs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:55.528630000000Z 2-- 2016-03-21T15:32:18.087397000000Z
3 3
4{-# LANGUAGE OverloadedStrings, RecordWildCards #-} 4{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5module TestData where 5module TestData where
diff --git a/ddl/out/TestData.purs b/ddl/out/TestData.purs
index 5c0eeb3..2d0cc58 100644
--- a/ddl/out/TestData.purs
+++ b/ddl/out/TestData.purs
@@ -1,5 +1,5 @@
1-- generated file, do not modify! 1-- generated file, do not modify!
2-- 2016-03-21T14:06:55.528630000000Z 2-- 2016-03-21T15:32:18.087397000000Z
3 3
4module TestData where 4module TestData where
5import Prelude 5import Prelude
diff --git a/ddl/out/TestData.swift b/ddl/out/TestData.swift
index 70241b5..4564486 100644
--- a/ddl/out/TestData.swift
+++ b/ddl/out/TestData.swift
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4enum ClientInfo { 4enum ClientInfo {
5 case ClientInfo(ClientInfo_Data) 5 case ClientInfo(ClientInfo_Data)
diff --git a/ddl/out/TestData2.hpp b/ddl/out/TestData2.hpp
index d89775c..6957677 100644
--- a/ddl/out/TestData2.hpp
+++ b/ddl/out/TestData2.hpp
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4#ifndef HEADER_TestData_H 4#ifndef HEADER_TestData_H
5#define HEADER_TestData_H 5#define HEADER_TestData_H
diff --git a/ddl/out/java/LambdaCube/IR/AccumulationContext.java b/ddl/out/java/LambdaCube/IR/AccumulationContext.java
index 47e92cc..b10b75e 100644
--- a/ddl/out/java/LambdaCube/IR/AccumulationContext.java
+++ b/ddl/out/java/LambdaCube/IR/AccumulationContext.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ArrayValue.java b/ddl/out/java/LambdaCube/IR/ArrayValue.java
index df0d096..c4c9e04 100644
--- a/ddl/out/java/LambdaCube/IR/ArrayValue.java
+++ b/ddl/out/java/LambdaCube/IR/ArrayValue.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Backend.java b/ddl/out/java/LambdaCube/IR/Backend.java
index 8a395af..ec22de1 100644
--- a/ddl/out/java/LambdaCube/IR/Backend.java
+++ b/ddl/out/java/LambdaCube/IR/Backend.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/BlendEquation.java b/ddl/out/java/LambdaCube/IR/BlendEquation.java
index c6712d3..d4a5565 100644
--- a/ddl/out/java/LambdaCube/IR/BlendEquation.java
+++ b/ddl/out/java/LambdaCube/IR/BlendEquation.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Blending.java b/ddl/out/java/LambdaCube/IR/Blending.java
index f3e1e48..d1ad43a 100644
--- a/ddl/out/java/LambdaCube/IR/Blending.java
+++ b/ddl/out/java/LambdaCube/IR/Blending.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/BlendingFactor.java b/ddl/out/java/LambdaCube/IR/BlendingFactor.java
index b45483b..4819c5f 100644
--- a/ddl/out/java/LambdaCube/IR/BlendingFactor.java
+++ b/ddl/out/java/LambdaCube/IR/BlendingFactor.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ClearImage.java b/ddl/out/java/LambdaCube/IR/ClearImage.java
index de88625..f90d03b 100644
--- a/ddl/out/java/LambdaCube/IR/ClearImage.java
+++ b/ddl/out/java/LambdaCube/IR/ClearImage.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ColorArity.java b/ddl/out/java/LambdaCube/IR/ColorArity.java
index 1a89df1..5ff3d31 100644
--- a/ddl/out/java/LambdaCube/IR/ColorArity.java
+++ b/ddl/out/java/LambdaCube/IR/ColorArity.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Command.java b/ddl/out/java/LambdaCube/IR/Command.java
index 4a1c915..6f390c5 100644
--- a/ddl/out/java/LambdaCube/IR/Command.java
+++ b/ddl/out/java/LambdaCube/IR/Command.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ComparisonFunction.java b/ddl/out/java/LambdaCube/IR/ComparisonFunction.java
index d64cd26..34f1072 100644
--- a/ddl/out/java/LambdaCube/IR/ComparisonFunction.java
+++ b/ddl/out/java/LambdaCube/IR/ComparisonFunction.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/CullMode.java b/ddl/out/java/LambdaCube/IR/CullMode.java
index bd462ef..5f9a8ea 100644
--- a/ddl/out/java/LambdaCube/IR/CullMode.java
+++ b/ddl/out/java/LambdaCube/IR/CullMode.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/EdgeMode.java b/ddl/out/java/LambdaCube/IR/EdgeMode.java
index 280ed53..9ac7276 100644
--- a/ddl/out/java/LambdaCube/IR/EdgeMode.java
+++ b/ddl/out/java/LambdaCube/IR/EdgeMode.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/FetchPrimitive.java b/ddl/out/java/LambdaCube/IR/FetchPrimitive.java
index 89bc1a5..6543729 100644
--- a/ddl/out/java/LambdaCube/IR/FetchPrimitive.java
+++ b/ddl/out/java/LambdaCube/IR/FetchPrimitive.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Filter.java b/ddl/out/java/LambdaCube/IR/Filter.java
index 19d9a39..7398a2e 100644
--- a/ddl/out/java/LambdaCube/IR/Filter.java
+++ b/ddl/out/java/LambdaCube/IR/Filter.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/FragmentOperation.java b/ddl/out/java/LambdaCube/IR/FragmentOperation.java
index 65d284f..c2e9290 100644
--- a/ddl/out/java/LambdaCube/IR/FragmentOperation.java
+++ b/ddl/out/java/LambdaCube/IR/FragmentOperation.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/FrontFace.java b/ddl/out/java/LambdaCube/IR/FrontFace.java
index 6d5323d..7897723 100644
--- a/ddl/out/java/LambdaCube/IR/FrontFace.java
+++ b/ddl/out/java/LambdaCube/IR/FrontFace.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ImageRef.java b/ddl/out/java/LambdaCube/IR/ImageRef.java
index bc382bc..333947c 100644
--- a/ddl/out/java/LambdaCube/IR/ImageRef.java
+++ b/ddl/out/java/LambdaCube/IR/ImageRef.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ImageSemantic.java b/ddl/out/java/LambdaCube/IR/ImageSemantic.java
index 4777479..fc31e36 100644
--- a/ddl/out/java/LambdaCube/IR/ImageSemantic.java
+++ b/ddl/out/java/LambdaCube/IR/ImageSemantic.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/InputType.java b/ddl/out/java/LambdaCube/IR/InputType.java
index 48d42c1..1c8578d 100644
--- a/ddl/out/java/LambdaCube/IR/InputType.java
+++ b/ddl/out/java/LambdaCube/IR/InputType.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/JSON.java b/ddl/out/java/LambdaCube/IR/JSON.java
index a25af3d..953f675 100644
--- a/ddl/out/java/LambdaCube/IR/JSON.java
+++ b/ddl/out/java/LambdaCube/IR/JSON.java
@@ -1,11 +1,12 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
6import java.util.ArrayList; 6import java.util.ArrayList;
7import java.util.HashMap; 7import java.util.HashMap;
8import java.util.Iterator; 8import java.util.Iterator;
9import java.util.Map;
9import org.json.*; 10import org.json.*;
10import RT.*; 11import RT.*;
11 12
@@ -1564,4 +1565,1766 @@ public class JSON {
1564 } 1565 }
1565 throw new Exception("unknown type"); 1566 throw new Exception("unknown type");
1566 } 1567 }
1568
1569 public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception {
1570 switch (type) {
1571 case ArrayValue: {
1572 ArrayValue v = (ArrayValue)rawObj;
1573 JSONObject obj = new JSONObject();
1574 switch (v.tag) {
1575 case VBoolArray:
1576 obj.put("tag", "VBoolArray");
1577 {
1578 ArrayValue.VBoolArray_ tv = (ArrayValue.VBoolArray_)v;
1579 obj.put("arg0", toJSON(Type.Array_Bool,tv._0));
1580 }
1581 break;
1582 case VIntArray:
1583 obj.put("tag", "VIntArray");
1584 {
1585 ArrayValue.VIntArray_ tv = (ArrayValue.VIntArray_)v;
1586 obj.put("arg0", toJSON(Type.Array_Int32,tv._0));
1587 }
1588 break;
1589 case VWordArray:
1590 obj.put("tag", "VWordArray");
1591 {
1592 ArrayValue.VWordArray_ tv = (ArrayValue.VWordArray_)v;
1593 obj.put("arg0", toJSON(Type.Array_Word32,tv._0));
1594 }
1595 break;
1596 case VFloatArray:
1597 obj.put("tag", "VFloatArray");
1598 {
1599 ArrayValue.VFloatArray_ tv = (ArrayValue.VFloatArray_)v;
1600 obj.put("arg0", toJSON(Type.Array_Float,tv._0));
1601 }
1602 break;
1603 }
1604 return obj;
1605 }
1606 case Value: {
1607 Value v = (Value)rawObj;
1608 JSONObject obj = new JSONObject();
1609 switch (v.tag) {
1610 case VBool:
1611 obj.put("tag", "VBool");
1612 {
1613 Value.VBool_ tv = (Value.VBool_)v;
1614 obj.put("arg0", toJSON(Type.Bool,tv._0));
1615 }
1616 break;
1617 case VV2B:
1618 obj.put("tag", "VV2B");
1619 {
1620 Value.VV2B_ tv = (Value.VV2B_)v;
1621 obj.put("arg0", toJSON(Type.V2_Bool,tv._0));
1622 }
1623 break;
1624 case VV3B:
1625 obj.put("tag", "VV3B");
1626 {
1627 Value.VV3B_ tv = (Value.VV3B_)v;
1628 obj.put("arg0", toJSON(Type.V3_Bool,tv._0));
1629 }
1630 break;
1631 case VV4B:
1632 obj.put("tag", "VV4B");
1633 {
1634 Value.VV4B_ tv = (Value.VV4B_)v;
1635 obj.put("arg0", toJSON(Type.V4_Bool,tv._0));
1636 }
1637 break;
1638 case VWord:
1639 obj.put("tag", "VWord");
1640 {
1641 Value.VWord_ tv = (Value.VWord_)v;
1642 obj.put("arg0", toJSON(Type.Word32,tv._0));
1643 }
1644 break;
1645 case VV2U:
1646 obj.put("tag", "VV2U");
1647 {
1648 Value.VV2U_ tv = (Value.VV2U_)v;
1649 obj.put("arg0", toJSON(Type.V2_Word,tv._0));
1650 }
1651 break;
1652 case VV3U:
1653 obj.put("tag", "VV3U");
1654 {
1655 Value.VV3U_ tv = (Value.VV3U_)v;
1656 obj.put("arg0", toJSON(Type.V3_Word,tv._0));
1657 }
1658 break;
1659 case VV4U:
1660 obj.put("tag", "VV4U");
1661 {
1662 Value.VV4U_ tv = (Value.VV4U_)v;
1663 obj.put("arg0", toJSON(Type.V4_Word,tv._0));
1664 }
1665 break;
1666 case VInt:
1667 obj.put("tag", "VInt");
1668 {
1669 Value.VInt_ tv = (Value.VInt_)v;
1670 obj.put("arg0", toJSON(Type.Int32,tv._0));
1671 }
1672 break;
1673 case VV2I:
1674 obj.put("tag", "VV2I");
1675 {
1676 Value.VV2I_ tv = (Value.VV2I_)v;
1677 obj.put("arg0", toJSON(Type.V2_Int,tv._0));
1678 }
1679 break;
1680 case VV3I:
1681 obj.put("tag", "VV3I");
1682 {
1683 Value.VV3I_ tv = (Value.VV3I_)v;
1684 obj.put("arg0", toJSON(Type.V3_Int,tv._0));
1685 }
1686 break;
1687 case VV4I:
1688 obj.put("tag", "VV4I");
1689 {
1690 Value.VV4I_ tv = (Value.VV4I_)v;
1691 obj.put("arg0", toJSON(Type.V4_Int,tv._0));
1692 }
1693 break;
1694 case VFloat:
1695 obj.put("tag", "VFloat");
1696 {
1697 Value.VFloat_ tv = (Value.VFloat_)v;
1698 obj.put("arg0", toJSON(Type.Float,tv._0));
1699 }
1700 break;
1701 case VV2F:
1702 obj.put("tag", "VV2F");
1703 {
1704 Value.VV2F_ tv = (Value.VV2F_)v;
1705 obj.put("arg0", toJSON(Type.V2_Float,tv._0));
1706 }
1707 break;
1708 case VV3F:
1709 obj.put("tag", "VV3F");
1710 {
1711 Value.VV3F_ tv = (Value.VV3F_)v;
1712 obj.put("arg0", toJSON(Type.V3_Float,tv._0));
1713 }
1714 break;
1715 case VV4F:
1716 obj.put("tag", "VV4F");
1717 {
1718 Value.VV4F_ tv = (Value.VV4F_)v;
1719 obj.put("arg0", toJSON(Type.V4_Float,tv._0));
1720 }
1721 break;
1722 case VM22F:
1723 obj.put("tag", "VM22F");
1724 {
1725 Value.VM22F_ tv = (Value.VM22F_)v;
1726 obj.put("arg0", toJSON(Type.V2_V2_Float,tv._0));
1727 }
1728 break;
1729 case VM23F:
1730 obj.put("tag", "VM23F");
1731 {
1732 Value.VM23F_ tv = (Value.VM23F_)v;
1733 obj.put("arg0", toJSON(Type.V3_V2_Float,tv._0));
1734 }
1735 break;
1736 case VM24F:
1737 obj.put("tag", "VM24F");
1738 {
1739 Value.VM24F_ tv = (Value.VM24F_)v;
1740 obj.put("arg0", toJSON(Type.V4_V2_Float,tv._0));
1741 }
1742 break;
1743 case VM32F:
1744 obj.put("tag", "VM32F");
1745 {
1746 Value.VM32F_ tv = (Value.VM32F_)v;
1747 obj.put("arg0", toJSON(Type.V2_V3_Float,tv._0));
1748 }
1749 break;
1750 case VM33F:
1751 obj.put("tag", "VM33F");
1752 {
1753 Value.VM33F_ tv = (Value.VM33F_)v;
1754 obj.put("arg0", toJSON(Type.V3_V3_Float,tv._0));
1755 }
1756 break;
1757 case VM34F:
1758 obj.put("tag", "VM34F");
1759 {
1760 Value.VM34F_ tv = (Value.VM34F_)v;
1761 obj.put("arg0", toJSON(Type.V4_V3_Float,tv._0));
1762 }
1763 break;
1764 case VM42F:
1765 obj.put("tag", "VM42F");
1766 {
1767 Value.VM42F_ tv = (Value.VM42F_)v;
1768 obj.put("arg0", toJSON(Type.V2_V4_Float,tv._0));
1769 }
1770 break;
1771 case VM43F:
1772 obj.put("tag", "VM43F");
1773 {
1774 Value.VM43F_ tv = (Value.VM43F_)v;
1775 obj.put("arg0", toJSON(Type.V3_V4_Float,tv._0));
1776 }
1777 break;
1778 case VM44F:
1779 obj.put("tag", "VM44F");
1780 {
1781 Value.VM44F_ tv = (Value.VM44F_)v;
1782 obj.put("arg0", toJSON(Type.V4_V4_Float,tv._0));
1783 }
1784 break;
1785 }
1786 return obj;
1787 }
1788 case InputType: {
1789 InputType v = (InputType)rawObj;
1790 JSONObject obj = new JSONObject();
1791 switch (v.tag) {
1792 case Bool:
1793 obj.put("tag", "Bool");
1794 break;
1795 case V2B:
1796 obj.put("tag", "V2B");
1797 break;
1798 case V3B:
1799 obj.put("tag", "V3B");
1800 break;
1801 case V4B:
1802 obj.put("tag", "V4B");
1803 break;
1804 case Word:
1805 obj.put("tag", "Word");
1806 break;
1807 case V2U:
1808 obj.put("tag", "V2U");
1809 break;
1810 case V3U:
1811 obj.put("tag", "V3U");
1812 break;
1813 case V4U:
1814 obj.put("tag", "V4U");
1815 break;
1816 case Int:
1817 obj.put("tag", "Int");
1818 break;
1819 case V2I:
1820 obj.put("tag", "V2I");
1821 break;
1822 case V3I:
1823 obj.put("tag", "V3I");
1824 break;
1825 case V4I:
1826 obj.put("tag", "V4I");
1827 break;
1828 case Float:
1829 obj.put("tag", "Float");
1830 break;
1831 case V2F:
1832 obj.put("tag", "V2F");
1833 break;
1834 case V3F:
1835 obj.put("tag", "V3F");
1836 break;
1837 case V4F:
1838 obj.put("tag", "V4F");
1839 break;
1840 case M22F:
1841 obj.put("tag", "M22F");
1842 break;
1843 case M23F:
1844 obj.put("tag", "M23F");
1845 break;
1846 case M24F:
1847 obj.put("tag", "M24F");
1848 break;
1849 case M32F:
1850 obj.put("tag", "M32F");
1851 break;
1852 case M33F:
1853 obj.put("tag", "M33F");
1854 break;
1855 case M34F:
1856 obj.put("tag", "M34F");
1857 break;
1858 case M42F:
1859 obj.put("tag", "M42F");
1860 break;
1861 case M43F:
1862 obj.put("tag", "M43F");
1863 break;
1864 case M44F:
1865 obj.put("tag", "M44F");
1866 break;
1867 case STexture1D:
1868 obj.put("tag", "STexture1D");
1869 break;
1870 case STexture2D:
1871 obj.put("tag", "STexture2D");
1872 break;
1873 case STextureCube:
1874 obj.put("tag", "STextureCube");
1875 break;
1876 case STexture1DArray:
1877 obj.put("tag", "STexture1DArray");
1878 break;
1879 case STexture2DArray:
1880 obj.put("tag", "STexture2DArray");
1881 break;
1882 case STexture2DRect:
1883 obj.put("tag", "STexture2DRect");
1884 break;
1885 case FTexture1D:
1886 obj.put("tag", "FTexture1D");
1887 break;
1888 case FTexture2D:
1889 obj.put("tag", "FTexture2D");
1890 break;
1891 case FTexture3D:
1892 obj.put("tag", "FTexture3D");
1893 break;
1894 case FTextureCube:
1895 obj.put("tag", "FTextureCube");
1896 break;
1897 case FTexture1DArray:
1898 obj.put("tag", "FTexture1DArray");
1899 break;
1900 case FTexture2DArray:
1901 obj.put("tag", "FTexture2DArray");
1902 break;
1903 case FTexture2DMS:
1904 obj.put("tag", "FTexture2DMS");
1905 break;
1906 case FTexture2DMSArray:
1907 obj.put("tag", "FTexture2DMSArray");
1908 break;
1909 case FTextureBuffer:
1910 obj.put("tag", "FTextureBuffer");
1911 break;
1912 case FTexture2DRect:
1913 obj.put("tag", "FTexture2DRect");
1914 break;
1915 case ITexture1D:
1916 obj.put("tag", "ITexture1D");
1917 break;
1918 case ITexture2D:
1919 obj.put("tag", "ITexture2D");
1920 break;
1921 case ITexture3D:
1922 obj.put("tag", "ITexture3D");
1923 break;
1924 case ITextureCube:
1925 obj.put("tag", "ITextureCube");
1926 break;
1927 case ITexture1DArray:
1928 obj.put("tag", "ITexture1DArray");
1929 break;
1930 case ITexture2DArray:
1931 obj.put("tag", "ITexture2DArray");
1932 break;
1933 case ITexture2DMS:
1934 obj.put("tag", "ITexture2DMS");
1935 break;
1936 case ITexture2DMSArray:
1937 obj.put("tag", "ITexture2DMSArray");
1938 break;
1939 case ITextureBuffer:
1940 obj.put("tag", "ITextureBuffer");
1941 break;
1942 case ITexture2DRect:
1943 obj.put("tag", "ITexture2DRect");
1944 break;
1945 case UTexture1D:
1946 obj.put("tag", "UTexture1D");
1947 break;
1948 case UTexture2D:
1949 obj.put("tag", "UTexture2D");
1950 break;
1951 case UTexture3D:
1952 obj.put("tag", "UTexture3D");
1953 break;
1954 case UTextureCube:
1955 obj.put("tag", "UTextureCube");
1956 break;
1957 case UTexture1DArray:
1958 obj.put("tag", "UTexture1DArray");
1959 break;
1960 case UTexture2DArray:
1961 obj.put("tag", "UTexture2DArray");
1962 break;
1963 case UTexture2DMS:
1964 obj.put("tag", "UTexture2DMS");
1965 break;
1966 case UTexture2DMSArray:
1967 obj.put("tag", "UTexture2DMSArray");
1968 break;
1969 case UTextureBuffer:
1970 obj.put("tag", "UTextureBuffer");
1971 break;
1972 case UTexture2DRect:
1973 obj.put("tag", "UTexture2DRect");
1974 break;
1975 }
1976 return obj;
1977 }
1978 case PointSpriteCoordOrigin: {
1979 PointSpriteCoordOrigin v = (PointSpriteCoordOrigin)rawObj;
1980 JSONObject obj = new JSONObject();
1981 switch (v.tag) {
1982 case LowerLeft:
1983 obj.put("tag", "LowerLeft");
1984 break;
1985 case UpperLeft:
1986 obj.put("tag", "UpperLeft");
1987 break;
1988 }
1989 return obj;
1990 }
1991 case PointSize: {
1992 PointSize v = (PointSize)rawObj;
1993 JSONObject obj = new JSONObject();
1994 switch (v.tag) {
1995 case PointSize:
1996 obj.put("tag", "PointSize");
1997 {
1998 PointSize.PointSize_ tv = (PointSize.PointSize_)v;
1999 obj.put("arg0", toJSON(Type.Float,tv._0));
2000 }
2001 break;
2002 case ProgramPointSize:
2003 obj.put("tag", "ProgramPointSize");
2004 break;
2005 }
2006 return obj;
2007 }
2008 case PolygonOffset: {
2009 PolygonOffset v = (PolygonOffset)rawObj;
2010 JSONObject obj = new JSONObject();
2011 switch (v.tag) {
2012 case NoOffset:
2013 obj.put("tag", "NoOffset");
2014 break;
2015 case Offset:
2016 obj.put("tag", "Offset");
2017 {
2018 PolygonOffset.Offset_ tv = (PolygonOffset.Offset_)v;
2019 obj.put("arg0", toJSON(Type.Float,tv._0));
2020 obj.put("arg1", toJSON(Type.Float,tv._1));
2021 }
2022 break;
2023 }
2024 return obj;
2025 }
2026 case FrontFace: {
2027 FrontFace v = (FrontFace)rawObj;
2028 JSONObject obj = new JSONObject();
2029 switch (v.tag) {
2030 case CCW:
2031 obj.put("tag", "CCW");
2032 break;
2033 case CW:
2034 obj.put("tag", "CW");
2035 break;
2036 }
2037 return obj;
2038 }
2039 case PolygonMode: {
2040 PolygonMode v = (PolygonMode)rawObj;
2041 JSONObject obj = new JSONObject();
2042 switch (v.tag) {
2043 case PolygonPoint:
2044 obj.put("tag", "PolygonPoint");
2045 {
2046 PolygonMode.PolygonPoint_ tv = (PolygonMode.PolygonPoint_)v;
2047 obj.put("arg0", toJSON(Type.PointSize,tv._0));
2048 }
2049 break;
2050 case PolygonLine:
2051 obj.put("tag", "PolygonLine");
2052 {
2053 PolygonMode.PolygonLine_ tv = (PolygonMode.PolygonLine_)v;
2054 obj.put("arg0", toJSON(Type.Float,tv._0));
2055 }
2056 break;
2057 case PolygonFill:
2058 obj.put("tag", "PolygonFill");
2059 break;
2060 }
2061 return obj;
2062 }
2063 case ProvokingVertex: {
2064 ProvokingVertex v = (ProvokingVertex)rawObj;
2065 JSONObject obj = new JSONObject();
2066 switch (v.tag) {
2067 case FirstVertex:
2068 obj.put("tag", "FirstVertex");
2069 break;
2070 case LastVertex:
2071 obj.put("tag", "LastVertex");
2072 break;
2073 }
2074 return obj;
2075 }
2076 case CullMode: {
2077 CullMode v = (CullMode)rawObj;
2078 JSONObject obj = new JSONObject();
2079 switch (v.tag) {
2080 case CullNone:
2081 obj.put("tag", "CullNone");
2082 break;
2083 case CullFront:
2084 obj.put("tag", "CullFront");
2085 {
2086 CullMode.CullFront_ tv = (CullMode.CullFront_)v;
2087 obj.put("arg0", toJSON(Type.FrontFace,tv._0));
2088 }
2089 break;
2090 case CullBack:
2091 obj.put("tag", "CullBack");
2092 {
2093 CullMode.CullBack_ tv = (CullMode.CullBack_)v;
2094 obj.put("arg0", toJSON(Type.FrontFace,tv._0));
2095 }
2096 break;
2097 }
2098 return obj;
2099 }
2100 case ComparisonFunction: {
2101 ComparisonFunction v = (ComparisonFunction)rawObj;
2102 JSONObject obj = new JSONObject();
2103 switch (v.tag) {
2104 case Never:
2105 obj.put("tag", "Never");
2106 break;
2107 case Less:
2108 obj.put("tag", "Less");
2109 break;
2110 case Equal:
2111 obj.put("tag", "Equal");
2112 break;
2113 case Lequal:
2114 obj.put("tag", "Lequal");
2115 break;
2116 case Greater:
2117 obj.put("tag", "Greater");
2118 break;
2119 case Notequal:
2120 obj.put("tag", "Notequal");
2121 break;
2122 case Gequal:
2123 obj.put("tag", "Gequal");
2124 break;
2125 case Always:
2126 obj.put("tag", "Always");
2127 break;
2128 }
2129 return obj;
2130 }
2131 case StencilOperation: {
2132 StencilOperation v = (StencilOperation)rawObj;
2133 JSONObject obj = new JSONObject();
2134 switch (v.tag) {
2135 case OpZero:
2136 obj.put("tag", "OpZero");
2137 break;
2138 case OpKeep:
2139 obj.put("tag", "OpKeep");
2140 break;
2141 case OpReplace:
2142 obj.put("tag", "OpReplace");
2143 break;
2144 case OpIncr:
2145 obj.put("tag", "OpIncr");
2146 break;
2147 case OpIncrWrap:
2148 obj.put("tag", "OpIncrWrap");
2149 break;
2150 case OpDecr:
2151 obj.put("tag", "OpDecr");
2152 break;
2153 case OpDecrWrap:
2154 obj.put("tag", "OpDecrWrap");
2155 break;
2156 case OpInvert:
2157 obj.put("tag", "OpInvert");
2158 break;
2159 }
2160 return obj;
2161 }
2162 case BlendEquation: {
2163 BlendEquation v = (BlendEquation)rawObj;
2164 JSONObject obj = new JSONObject();
2165 switch (v.tag) {
2166 case FuncAdd:
2167 obj.put("tag", "FuncAdd");
2168 break;
2169 case FuncSubtract:
2170 obj.put("tag", "FuncSubtract");
2171 break;
2172 case FuncReverseSubtract:
2173 obj.put("tag", "FuncReverseSubtract");
2174 break;
2175 case Min:
2176 obj.put("tag", "Min");
2177 break;
2178 case Max:
2179 obj.put("tag", "Max");
2180 break;
2181 }
2182 return obj;
2183 }
2184 case BlendingFactor: {
2185 BlendingFactor v = (BlendingFactor)rawObj;
2186 JSONObject obj = new JSONObject();
2187 switch (v.tag) {
2188 case Zero:
2189 obj.put("tag", "Zero");
2190 break;
2191 case One:
2192 obj.put("tag", "One");
2193 break;
2194 case SrcColor:
2195 obj.put("tag", "SrcColor");
2196 break;
2197 case OneMinusSrcColor:
2198 obj.put("tag", "OneMinusSrcColor");
2199 break;
2200 case DstColor:
2201 obj.put("tag", "DstColor");
2202 break;
2203 case OneMinusDstColor:
2204 obj.put("tag", "OneMinusDstColor");
2205 break;
2206 case SrcAlpha:
2207 obj.put("tag", "SrcAlpha");
2208 break;
2209 case OneMinusSrcAlpha:
2210 obj.put("tag", "OneMinusSrcAlpha");
2211 break;
2212 case DstAlpha:
2213 obj.put("tag", "DstAlpha");
2214 break;
2215 case OneMinusDstAlpha:
2216 obj.put("tag", "OneMinusDstAlpha");
2217 break;
2218 case ConstantColor:
2219 obj.put("tag", "ConstantColor");
2220 break;
2221 case OneMinusConstantColor:
2222 obj.put("tag", "OneMinusConstantColor");
2223 break;
2224 case ConstantAlpha:
2225 obj.put("tag", "ConstantAlpha");
2226 break;
2227 case OneMinusConstantAlpha:
2228 obj.put("tag", "OneMinusConstantAlpha");
2229 break;
2230 case SrcAlphaSaturate:
2231 obj.put("tag", "SrcAlphaSaturate");
2232 break;
2233 }
2234 return obj;
2235 }
2236 case LogicOperation: {
2237 LogicOperation v = (LogicOperation)rawObj;
2238 JSONObject obj = new JSONObject();
2239 switch (v.tag) {
2240 case Clear:
2241 obj.put("tag", "Clear");
2242 break;
2243 case And:
2244 obj.put("tag", "And");
2245 break;
2246 case AndReverse:
2247 obj.put("tag", "AndReverse");
2248 break;
2249 case Copy:
2250 obj.put("tag", "Copy");
2251 break;
2252 case AndInverted:
2253 obj.put("tag", "AndInverted");
2254 break;
2255 case Noop:
2256 obj.put("tag", "Noop");
2257 break;
2258 case Xor:
2259 obj.put("tag", "Xor");
2260 break;
2261 case Or:
2262 obj.put("tag", "Or");
2263 break;
2264 case Nor:
2265 obj.put("tag", "Nor");
2266 break;
2267 case Equiv:
2268 obj.put("tag", "Equiv");
2269 break;
2270 case Invert:
2271 obj.put("tag", "Invert");
2272 break;
2273 case OrReverse:
2274 obj.put("tag", "OrReverse");
2275 break;
2276 case CopyInverted:
2277 obj.put("tag", "CopyInverted");
2278 break;
2279 case OrInverted:
2280 obj.put("tag", "OrInverted");
2281 break;
2282 case Nand:
2283 obj.put("tag", "Nand");
2284 break;
2285 case Set:
2286 obj.put("tag", "Set");
2287 break;
2288 }
2289 return obj;
2290 }
2291 case StencilOps: {
2292 StencilOps v = (StencilOps)rawObj;
2293 JSONObject obj = new JSONObject();
2294 switch (v.tag) {
2295 case StencilOps:
2296 obj.put("tag", "StencilOps");
2297 {
2298 StencilOps.StencilOps_ tv = (StencilOps.StencilOps_)v;
2299 obj.put("frontStencilOp", toJSON(Type.StencilOperation,tv.frontStencilOp));
2300 obj.put("backStencilOp", toJSON(Type.StencilOperation,tv.backStencilOp));
2301 }
2302 break;
2303 }
2304 return obj;
2305 }
2306 case StencilTest: {
2307 StencilTest v = (StencilTest)rawObj;
2308 JSONObject obj = new JSONObject();
2309 switch (v.tag) {
2310 case StencilTest:
2311 obj.put("tag", "StencilTest");
2312 {
2313 StencilTest.StencilTest_ tv = (StencilTest.StencilTest_)v;
2314 obj.put("stencilComparision", toJSON(Type.ComparisonFunction,tv.stencilComparision));
2315 obj.put("stencilReference", toJSON(Type.Int32,tv.stencilReference));
2316 obj.put("stencilMask", toJSON(Type.Word32,tv.stencilMask));
2317 }
2318 break;
2319 }
2320 return obj;
2321 }
2322 case StencilTests: {
2323 StencilTests v = (StencilTests)rawObj;
2324 JSONObject obj = new JSONObject();
2325 switch (v.tag) {
2326 case StencilTests:
2327 obj.put("tag", "StencilTests");
2328 {
2329 StencilTests.StencilTests_ tv = (StencilTests.StencilTests_)v;
2330 obj.put("arg0", toJSON(Type.StencilTest,tv._0));
2331 obj.put("arg1", toJSON(Type.StencilTest,tv._1));
2332 }
2333 break;
2334 }
2335 return obj;
2336 }
2337 case FetchPrimitive: {
2338 FetchPrimitive v = (FetchPrimitive)rawObj;
2339 JSONObject obj = new JSONObject();
2340 switch (v.tag) {
2341 case Points:
2342 obj.put("tag", "Points");
2343 break;
2344 case Lines:
2345 obj.put("tag", "Lines");
2346 break;
2347 case Triangles:
2348 obj.put("tag", "Triangles");
2349 break;
2350 case LinesAdjacency:
2351 obj.put("tag", "LinesAdjacency");
2352 break;
2353 case TrianglesAdjacency:
2354 obj.put("tag", "TrianglesAdjacency");
2355 break;
2356 }
2357 return obj;
2358 }
2359 case OutputPrimitive: {
2360 OutputPrimitive v = (OutputPrimitive)rawObj;
2361 JSONObject obj = new JSONObject();
2362 switch (v.tag) {
2363 case TrianglesOutput:
2364 obj.put("tag", "TrianglesOutput");
2365 break;
2366 case LinesOutput:
2367 obj.put("tag", "LinesOutput");
2368 break;
2369 case PointsOutput:
2370 obj.put("tag", "PointsOutput");
2371 break;
2372 }
2373 return obj;
2374 }
2375 case ColorArity: {
2376 ColorArity v = (ColorArity)rawObj;
2377 JSONObject obj = new JSONObject();
2378 switch (v.tag) {
2379 case Red:
2380 obj.put("tag", "Red");
2381 break;
2382 case RG:
2383 obj.put("tag", "RG");
2384 break;
2385 case RGB:
2386 obj.put("tag", "RGB");
2387 break;
2388 case RGBA:
2389 obj.put("tag", "RGBA");
2390 break;
2391 }
2392 return obj;
2393 }
2394 case Blending: {
2395 Blending v = (Blending)rawObj;
2396 JSONObject obj = new JSONObject();
2397 switch (v.tag) {
2398 case NoBlending:
2399 obj.put("tag", "NoBlending");
2400 break;
2401 case BlendLogicOp:
2402 obj.put("tag", "BlendLogicOp");
2403 {
2404 Blending.BlendLogicOp_ tv = (Blending.BlendLogicOp_)v;
2405 obj.put("arg0", toJSON(Type.LogicOperation,tv._0));
2406 }
2407 break;
2408 case Blend:
2409 obj.put("tag", "Blend");
2410 {
2411 Blending.Blend_ tv = (Blending.Blend_)v;
2412 obj.put("colorEqSrc", toJSON(Type.BlendEquation,tv.colorEqSrc));
2413 obj.put("alphaEqSrc", toJSON(Type.BlendEquation,tv.alphaEqSrc));
2414 obj.put("colorFSrc", toJSON(Type.BlendingFactor,tv.colorFSrc));
2415 obj.put("colorFDst", toJSON(Type.BlendingFactor,tv.colorFDst));
2416 obj.put("alphaFSrc", toJSON(Type.BlendingFactor,tv.alphaFSrc));
2417 obj.put("alphaFDst", toJSON(Type.BlendingFactor,tv.alphaFDst));
2418 obj.put("color", toJSON(Type.V4_Float,tv.color));
2419 }
2420 break;
2421 }
2422 return obj;
2423 }
2424 case RasterContext: {
2425 RasterContext v = (RasterContext)rawObj;
2426 JSONObject obj = new JSONObject();
2427 switch (v.tag) {
2428 case PointCtx:
2429 obj.put("tag", "PointCtx");
2430 {
2431 RasterContext.PointCtx_ tv = (RasterContext.PointCtx_)v;
2432 obj.put("arg0", toJSON(Type.PointSize,tv._0));
2433 obj.put("arg1", toJSON(Type.Float,tv._1));
2434 obj.put("arg2", toJSON(Type.PointSpriteCoordOrigin,tv._2));
2435 }
2436 break;
2437 case LineCtx:
2438 obj.put("tag", "LineCtx");
2439 {
2440 RasterContext.LineCtx_ tv = (RasterContext.LineCtx_)v;
2441 obj.put("arg0", toJSON(Type.Float,tv._0));
2442 obj.put("arg1", toJSON(Type.ProvokingVertex,tv._1));
2443 }
2444 break;
2445 case TriangleCtx:
2446 obj.put("tag", "TriangleCtx");
2447 {
2448 RasterContext.TriangleCtx_ tv = (RasterContext.TriangleCtx_)v;
2449 obj.put("arg0", toJSON(Type.CullMode,tv._0));
2450 obj.put("arg1", toJSON(Type.PolygonMode,tv._1));
2451 obj.put("arg2", toJSON(Type.PolygonOffset,tv._2));
2452 obj.put("arg3", toJSON(Type.ProvokingVertex,tv._3));
2453 }
2454 break;
2455 }
2456 return obj;
2457 }
2458 case FragmentOperation: {
2459 FragmentOperation v = (FragmentOperation)rawObj;
2460 JSONObject obj = new JSONObject();
2461 switch (v.tag) {
2462 case DepthOp:
2463 obj.put("tag", "DepthOp");
2464 {
2465 FragmentOperation.DepthOp_ tv = (FragmentOperation.DepthOp_)v;
2466 obj.put("arg0", toJSON(Type.ComparisonFunction,tv._0));
2467 obj.put("arg1", toJSON(Type.Bool,tv._1));
2468 }
2469 break;
2470 case StencilOp:
2471 obj.put("tag", "StencilOp");
2472 {
2473 FragmentOperation.StencilOp_ tv = (FragmentOperation.StencilOp_)v;
2474 obj.put("arg0", toJSON(Type.StencilTests,tv._0));
2475 obj.put("arg1", toJSON(Type.StencilOps,tv._1));
2476 obj.put("arg2", toJSON(Type.StencilOps,tv._2));
2477 }
2478 break;
2479 case ColorOp:
2480 obj.put("tag", "ColorOp");
2481 {
2482 FragmentOperation.ColorOp_ tv = (FragmentOperation.ColorOp_)v;
2483 obj.put("arg0", toJSON(Type.Blending,tv._0));
2484 obj.put("arg1", toJSON(Type.Value,tv._1));
2485 }
2486 break;
2487 }
2488 return obj;
2489 }
2490 case AccumulationContext: {
2491 AccumulationContext v = (AccumulationContext)rawObj;
2492 JSONObject obj = new JSONObject();
2493 switch (v.tag) {
2494 case AccumulationContext:
2495 obj.put("tag", "AccumulationContext");
2496 {
2497 AccumulationContext.AccumulationContext_ tv = (AccumulationContext.AccumulationContext_)v;
2498 obj.put("accViewportName", toJSON(Type.Maybe_String,tv.accViewportName));
2499 obj.put("accOperations", toJSON(Type.List_FragmentOperation,tv.accOperations));
2500 }
2501 break;
2502 }
2503 return obj;
2504 }
2505 case TextureDataType: {
2506 TextureDataType v = (TextureDataType)rawObj;
2507 JSONObject obj = new JSONObject();
2508 switch (v.tag) {
2509 case FloatT:
2510 obj.put("tag", "FloatT");
2511 {
2512 TextureDataType.FloatT_ tv = (TextureDataType.FloatT_)v;
2513 obj.put("arg0", toJSON(Type.ColorArity,tv._0));
2514 }
2515 break;
2516 case IntT:
2517 obj.put("tag", "IntT");
2518 {
2519 TextureDataType.IntT_ tv = (TextureDataType.IntT_)v;
2520 obj.put("arg0", toJSON(Type.ColorArity,tv._0));
2521 }
2522 break;
2523 case WordT:
2524 obj.put("tag", "WordT");
2525 {
2526 TextureDataType.WordT_ tv = (TextureDataType.WordT_)v;
2527 obj.put("arg0", toJSON(Type.ColorArity,tv._0));
2528 }
2529 break;
2530 case ShadowT:
2531 obj.put("tag", "ShadowT");
2532 break;
2533 }
2534 return obj;
2535 }
2536 case TextureType: {
2537 TextureType v = (TextureType)rawObj;
2538 JSONObject obj = new JSONObject();
2539 switch (v.tag) {
2540 case Texture1D:
2541 obj.put("tag", "Texture1D");
2542 {
2543 TextureType.Texture1D_ tv = (TextureType.Texture1D_)v;
2544 obj.put("arg0", toJSON(Type.TextureDataType,tv._0));
2545 obj.put("arg1", toJSON(Type.Int,tv._1));
2546 }
2547 break;
2548 case Texture2D:
2549 obj.put("tag", "Texture2D");
2550 {
2551 TextureType.Texture2D_ tv = (TextureType.Texture2D_)v;
2552 obj.put("arg0", toJSON(Type.TextureDataType,tv._0));
2553 obj.put("arg1", toJSON(Type.Int,tv._1));
2554 }
2555 break;
2556 case Texture3D:
2557 obj.put("tag", "Texture3D");
2558 {
2559 TextureType.Texture3D_ tv = (TextureType.Texture3D_)v;
2560 obj.put("arg0", toJSON(Type.TextureDataType,tv._0));
2561 }
2562 break;
2563 case TextureCube:
2564 obj.put("tag", "TextureCube");
2565 {
2566 TextureType.TextureCube_ tv = (TextureType.TextureCube_)v;
2567 obj.put("arg0", toJSON(Type.TextureDataType,tv._0));
2568 }
2569 break;
2570 case TextureRect:
2571 obj.put("tag", "TextureRect");
2572 {
2573 TextureType.TextureRect_ tv = (TextureType.TextureRect_)v;
2574 obj.put("arg0", toJSON(Type.TextureDataType,tv._0));
2575 }
2576 break;
2577 case Texture2DMS:
2578 obj.put("tag", "Texture2DMS");
2579 {
2580 TextureType.Texture2DMS_ tv = (TextureType.Texture2DMS_)v;
2581 obj.put("arg0", toJSON(Type.TextureDataType,tv._0));
2582 obj.put("arg1", toJSON(Type.Int,tv._1));
2583 obj.put("arg2", toJSON(Type.Int,tv._2));
2584 obj.put("arg3", toJSON(Type.Bool,tv._3));
2585 }
2586 break;
2587 case TextureBuffer:
2588 obj.put("tag", "TextureBuffer");
2589 {
2590 TextureType.TextureBuffer_ tv = (TextureType.TextureBuffer_)v;
2591 obj.put("arg0", toJSON(Type.TextureDataType,tv._0));
2592 }
2593 break;
2594 }
2595 return obj;
2596 }
2597 case MipMap: {
2598 MipMap v = (MipMap)rawObj;
2599 JSONObject obj = new JSONObject();
2600 switch (v.tag) {
2601 case Mip:
2602 obj.put("tag", "Mip");
2603 {
2604 MipMap.Mip_ tv = (MipMap.Mip_)v;
2605 obj.put("arg0", toJSON(Type.Int,tv._0));
2606 obj.put("arg1", toJSON(Type.Int,tv._1));
2607 }
2608 break;
2609 case NoMip:
2610 obj.put("tag", "NoMip");
2611 break;
2612 case AutoMip:
2613 obj.put("tag", "AutoMip");
2614 {
2615 MipMap.AutoMip_ tv = (MipMap.AutoMip_)v;
2616 obj.put("arg0", toJSON(Type.Int,tv._0));
2617 obj.put("arg1", toJSON(Type.Int,tv._1));
2618 }
2619 break;
2620 }
2621 return obj;
2622 }
2623 case Filter: {
2624 Filter v = (Filter)rawObj;
2625 JSONObject obj = new JSONObject();
2626 switch (v.tag) {
2627 case Nearest:
2628 obj.put("tag", "Nearest");
2629 break;
2630 case Linear:
2631 obj.put("tag", "Linear");
2632 break;
2633 case NearestMipmapNearest:
2634 obj.put("tag", "NearestMipmapNearest");
2635 break;
2636 case NearestMipmapLinear:
2637 obj.put("tag", "NearestMipmapLinear");
2638 break;
2639 case LinearMipmapNearest:
2640 obj.put("tag", "LinearMipmapNearest");
2641 break;
2642 case LinearMipmapLinear:
2643 obj.put("tag", "LinearMipmapLinear");
2644 break;
2645 }
2646 return obj;
2647 }
2648 case EdgeMode: {
2649 EdgeMode v = (EdgeMode)rawObj;
2650 JSONObject obj = new JSONObject();
2651 switch (v.tag) {
2652 case Repeat:
2653 obj.put("tag", "Repeat");
2654 break;
2655 case MirroredRepeat:
2656 obj.put("tag", "MirroredRepeat");
2657 break;
2658 case ClampToEdge:
2659 obj.put("tag", "ClampToEdge");
2660 break;
2661 case ClampToBorder:
2662 obj.put("tag", "ClampToBorder");
2663 break;
2664 }
2665 return obj;
2666 }
2667 case ImageSemantic: {
2668 ImageSemantic v = (ImageSemantic)rawObj;
2669 JSONObject obj = new JSONObject();
2670 switch (v.tag) {
2671 case Depth:
2672 obj.put("tag", "Depth");
2673 break;
2674 case Stencil:
2675 obj.put("tag", "Stencil");
2676 break;
2677 case Color:
2678 obj.put("tag", "Color");
2679 break;
2680 }
2681 return obj;
2682 }
2683 case ImageRef: {
2684 ImageRef v = (ImageRef)rawObj;
2685 JSONObject obj = new JSONObject();
2686 switch (v.tag) {
2687 case TextureImage:
2688 obj.put("tag", "TextureImage");
2689 {
2690 ImageRef.TextureImage_ tv = (ImageRef.TextureImage_)v;
2691 obj.put("arg0", toJSON(Type.Int,tv._0));
2692 obj.put("arg1", toJSON(Type.Int,tv._1));
2693 obj.put("arg2", toJSON(Type.Maybe_Int,tv._2));
2694 }
2695 break;
2696 case Framebuffer:
2697 obj.put("tag", "Framebuffer");
2698 {
2699 ImageRef.Framebuffer_ tv = (ImageRef.Framebuffer_)v;
2700 obj.put("arg0", toJSON(Type.ImageSemantic,tv._0));
2701 }
2702 break;
2703 }
2704 return obj;
2705 }
2706 case ClearImage: {
2707 ClearImage v = (ClearImage)rawObj;
2708 JSONObject obj = new JSONObject();
2709 switch (v.tag) {
2710 case ClearImage:
2711 obj.put("tag", "ClearImage");
2712 {
2713 ClearImage.ClearImage_ tv = (ClearImage.ClearImage_)v;
2714 obj.put("imageSemantic", toJSON(Type.ImageSemantic,tv.imageSemantic));
2715 obj.put("clearValue", toJSON(Type.Value,tv.clearValue));
2716 }
2717 break;
2718 }
2719 return obj;
2720 }
2721 case Command: {
2722 Command v = (Command)rawObj;
2723 JSONObject obj = new JSONObject();
2724 switch (v.tag) {
2725 case SetRasterContext:
2726 obj.put("tag", "SetRasterContext");
2727 {
2728 Command.SetRasterContext_ tv = (Command.SetRasterContext_)v;
2729 obj.put("arg0", toJSON(Type.RasterContext,tv._0));
2730 }
2731 break;
2732 case SetAccumulationContext:
2733 obj.put("tag", "SetAccumulationContext");
2734 {
2735 Command.SetAccumulationContext_ tv = (Command.SetAccumulationContext_)v;
2736 obj.put("arg0", toJSON(Type.AccumulationContext,tv._0));
2737 }
2738 break;
2739 case SetRenderTarget:
2740 obj.put("tag", "SetRenderTarget");
2741 {
2742 Command.SetRenderTarget_ tv = (Command.SetRenderTarget_)v;
2743 obj.put("arg0", toJSON(Type.Int,tv._0));
2744 }
2745 break;
2746 case SetProgram:
2747 obj.put("tag", "SetProgram");
2748 {
2749 Command.SetProgram_ tv = (Command.SetProgram_)v;
2750 obj.put("arg0", toJSON(Type.Int,tv._0));
2751 }
2752 break;
2753 case SetSamplerUniform:
2754 obj.put("tag", "SetSamplerUniform");
2755 {
2756 Command.SetSamplerUniform_ tv = (Command.SetSamplerUniform_)v;
2757 obj.put("arg0", toJSON(Type.String,tv._0));
2758 obj.put("arg1", toJSON(Type.Int,tv._1));
2759 }
2760 break;
2761 case SetTexture:
2762 obj.put("tag", "SetTexture");
2763 {
2764 Command.SetTexture_ tv = (Command.SetTexture_)v;
2765 obj.put("arg0", toJSON(Type.Int,tv._0));
2766 obj.put("arg1", toJSON(Type.Int,tv._1));
2767 }
2768 break;
2769 case SetSampler:
2770 obj.put("tag", "SetSampler");
2771 {
2772 Command.SetSampler_ tv = (Command.SetSampler_)v;
2773 obj.put("arg0", toJSON(Type.Int,tv._0));
2774 obj.put("arg1", toJSON(Type.Maybe_Int,tv._1));
2775 }
2776 break;
2777 case RenderSlot:
2778 obj.put("tag", "RenderSlot");
2779 {
2780 Command.RenderSlot_ tv = (Command.RenderSlot_)v;
2781 obj.put("arg0", toJSON(Type.Int,tv._0));
2782 }
2783 break;
2784 case RenderStream:
2785 obj.put("tag", "RenderStream");
2786 {
2787 Command.RenderStream_ tv = (Command.RenderStream_)v;
2788 obj.put("arg0", toJSON(Type.Int,tv._0));
2789 }
2790 break;
2791 case ClearRenderTarget:
2792 obj.put("tag", "ClearRenderTarget");
2793 {
2794 Command.ClearRenderTarget_ tv = (Command.ClearRenderTarget_)v;
2795 obj.put("arg0", toJSON(Type.Array_ClearImage,tv._0));
2796 }
2797 break;
2798 case GenerateMipMap:
2799 obj.put("tag", "GenerateMipMap");
2800 {
2801 Command.GenerateMipMap_ tv = (Command.GenerateMipMap_)v;
2802 obj.put("arg0", toJSON(Type.Int,tv._0));
2803 }
2804 break;
2805 case SaveImage:
2806 obj.put("tag", "SaveImage");
2807 {
2808 Command.SaveImage_ tv = (Command.SaveImage_)v;
2809 obj.put("arg0", toJSON(Type.Int,tv._0));
2810 obj.put("arg1", toJSON(Type.ImageRef,tv._1));
2811 }
2812 break;
2813 case LoadImage:
2814 obj.put("tag", "LoadImage");
2815 {
2816 Command.LoadImage_ tv = (Command.LoadImage_)v;
2817 obj.put("arg0", toJSON(Type.ImageRef,tv._0));
2818 obj.put("arg1", toJSON(Type.Int,tv._1));
2819 }
2820 break;
2821 }
2822 return obj;
2823 }
2824 case SamplerDescriptor: {
2825 SamplerDescriptor v = (SamplerDescriptor)rawObj;
2826 JSONObject obj = new JSONObject();
2827 switch (v.tag) {
2828 case SamplerDescriptor:
2829 obj.put("tag", "SamplerDescriptor");
2830 {
2831 SamplerDescriptor.SamplerDescriptor_ tv = (SamplerDescriptor.SamplerDescriptor_)v;
2832 obj.put("samplerWrapS", toJSON(Type.EdgeMode,tv.samplerWrapS));
2833 obj.put("samplerWrapT", toJSON(Type.Maybe_EdgeMode,tv.samplerWrapT));
2834 obj.put("samplerWrapR", toJSON(Type.Maybe_EdgeMode,tv.samplerWrapR));
2835 obj.put("samplerMinFilter", toJSON(Type.Filter,tv.samplerMinFilter));
2836 obj.put("samplerMagFilter", toJSON(Type.Filter,tv.samplerMagFilter));
2837 obj.put("samplerBorderColor", toJSON(Type.Value,tv.samplerBorderColor));
2838 obj.put("samplerMinLod", toJSON(Type.Maybe_Float,tv.samplerMinLod));
2839 obj.put("samplerMaxLod", toJSON(Type.Maybe_Float,tv.samplerMaxLod));
2840 obj.put("samplerLodBias", toJSON(Type.Float,tv.samplerLodBias));
2841 obj.put("samplerCompareFunc", toJSON(Type.Maybe_ComparisonFunction,tv.samplerCompareFunc));
2842 }
2843 break;
2844 }
2845 return obj;
2846 }
2847 case TextureDescriptor: {
2848 TextureDescriptor v = (TextureDescriptor)rawObj;
2849 JSONObject obj = new JSONObject();
2850 switch (v.tag) {
2851 case TextureDescriptor:
2852 obj.put("tag", "TextureDescriptor");
2853 {
2854 TextureDescriptor.TextureDescriptor_ tv = (TextureDescriptor.TextureDescriptor_)v;
2855 obj.put("textureType", toJSON(Type.TextureType,tv.textureType));
2856 obj.put("textureSize", toJSON(Type.Value,tv.textureSize));
2857 obj.put("textureSemantic", toJSON(Type.ImageSemantic,tv.textureSemantic));
2858 obj.put("textureSampler", toJSON(Type.SamplerDescriptor,tv.textureSampler));
2859 obj.put("textureBaseLevel", toJSON(Type.Int,tv.textureBaseLevel));
2860 obj.put("textureMaxLevel", toJSON(Type.Int,tv.textureMaxLevel));
2861 }
2862 break;
2863 }
2864 return obj;
2865 }
2866 case Parameter: {
2867 Parameter v = (Parameter)rawObj;
2868 JSONObject obj = new JSONObject();
2869 switch (v.tag) {
2870 case Parameter:
2871 obj.put("tag", "Parameter");
2872 {
2873 Parameter.Parameter_ tv = (Parameter.Parameter_)v;
2874 obj.put("name", toJSON(Type.String,tv.name));
2875 obj.put("ty", toJSON(Type.InputType,tv.ty));
2876 }
2877 break;
2878 }
2879 return obj;
2880 }
2881 case Program: {
2882 Program v = (Program)rawObj;
2883 JSONObject obj = new JSONObject();
2884 switch (v.tag) {
2885 case Program:
2886 obj.put("tag", "Program");
2887 {
2888 Program.Program_ tv = (Program.Program_)v;
2889 obj.put("programUniforms", toJSON(Type.Map_String_InputType,tv.programUniforms));
2890 obj.put("programStreams", toJSON(Type.Map_String_Parameter,tv.programStreams));
2891 obj.put("programInTextures", toJSON(Type.Map_String_InputType,tv.programInTextures));
2892 obj.put("programOutput", toJSON(Type.Array_Parameter,tv.programOutput));
2893 obj.put("vertexShader", toJSON(Type.String,tv.vertexShader));
2894 obj.put("geometryShader", toJSON(Type.Maybe_String,tv.geometryShader));
2895 obj.put("fragmentShader", toJSON(Type.String,tv.fragmentShader));
2896 }
2897 break;
2898 }
2899 return obj;
2900 }
2901 case Slot: {
2902 Slot v = (Slot)rawObj;
2903 JSONObject obj = new JSONObject();
2904 switch (v.tag) {
2905 case Slot:
2906 obj.put("tag", "Slot");
2907 {
2908 Slot.Slot_ tv = (Slot.Slot_)v;
2909 obj.put("slotName", toJSON(Type.String,tv.slotName));
2910 obj.put("slotStreams", toJSON(Type.Map_String_InputType,tv.slotStreams));
2911 obj.put("slotUniforms", toJSON(Type.Map_String_InputType,tv.slotUniforms));
2912 obj.put("slotPrimitive", toJSON(Type.FetchPrimitive,tv.slotPrimitive));
2913 obj.put("slotPrograms", toJSON(Type.Array_Int,tv.slotPrograms));
2914 }
2915 break;
2916 }
2917 return obj;
2918 }
2919 case StreamData: {
2920 StreamData v = (StreamData)rawObj;
2921 JSONObject obj = new JSONObject();
2922 switch (v.tag) {
2923 case StreamData:
2924 obj.put("tag", "StreamData");
2925 {
2926 StreamData.StreamData_ tv = (StreamData.StreamData_)v;
2927 obj.put("streamData", toJSON(Type.Map_String_ArrayValue,tv.streamData));
2928 obj.put("streamType", toJSON(Type.Map_String_InputType,tv.streamType));
2929 obj.put("streamPrimitive", toJSON(Type.FetchPrimitive,tv.streamPrimitive));
2930 obj.put("streamPrograms", toJSON(Type.Array_Int,tv.streamPrograms));
2931 }
2932 break;
2933 }
2934 return obj;
2935 }
2936 case TargetItem: {
2937 TargetItem v = (TargetItem)rawObj;
2938 JSONObject obj = new JSONObject();
2939 switch (v.tag) {
2940 case TargetItem:
2941 obj.put("tag", "TargetItem");
2942 {
2943 TargetItem.TargetItem_ tv = (TargetItem.TargetItem_)v;
2944 obj.put("targetSemantic", toJSON(Type.ImageSemantic,tv.targetSemantic));
2945 obj.put("targetRef", toJSON(Type.Maybe_ImageRef,tv.targetRef));
2946 }
2947 break;
2948 }
2949 return obj;
2950 }
2951 case RenderTarget: {
2952 RenderTarget v = (RenderTarget)rawObj;
2953 JSONObject obj = new JSONObject();
2954 switch (v.tag) {
2955 case RenderTarget:
2956 obj.put("tag", "RenderTarget");
2957 {
2958 RenderTarget.RenderTarget_ tv = (RenderTarget.RenderTarget_)v;
2959 obj.put("renderTargets", toJSON(Type.Array_TargetItem,tv.renderTargets));
2960 }
2961 break;
2962 }
2963 return obj;
2964 }
2965 case Backend: {
2966 Backend v = (Backend)rawObj;
2967 JSONObject obj = new JSONObject();
2968 switch (v.tag) {
2969 case WebGL1:
2970 obj.put("tag", "WebGL1");
2971 break;
2972 case OpenGL33:
2973 obj.put("tag", "OpenGL33");
2974 break;
2975 }
2976 return obj;
2977 }
2978 case Pipeline: {
2979 Pipeline v = (Pipeline)rawObj;
2980 JSONObject obj = new JSONObject();
2981 switch (v.tag) {
2982 case Pipeline:
2983 obj.put("tag", "Pipeline");
2984 {
2985 Pipeline.Pipeline_ tv = (Pipeline.Pipeline_)v;
2986 obj.put("info", toJSON(Type.String,tv.info));
2987 obj.put("backend", toJSON(Type.Backend,tv.backend));
2988 obj.put("textures", toJSON(Type.Array_TextureDescriptor,tv.textures));
2989 obj.put("samplers", toJSON(Type.Array_SamplerDescriptor,tv.samplers));
2990 obj.put("targets", toJSON(Type.Array_RenderTarget,tv.targets));
2991 obj.put("programs", toJSON(Type.Array_Program,tv.programs));
2992 obj.put("slots", toJSON(Type.Array_Slot,tv.slots));
2993 obj.put("streams", toJSON(Type.Array_StreamData,tv.streams));
2994 obj.put("commands", toJSON(Type.Array_Command,tv.commands));
2995 }
2996 break;
2997 }
2998 return obj;
2999 }
3000
3001 case Word32: { return rawObj; }
3002 case Float: { return rawObj; }
3003 case Bool: { return rawObj; }
3004 case String: { return rawObj; }
3005 case V2_Word: {
3006 V2<Integer> v = (V2<Integer>)rawObj;
3007 JSONObject obj = new JSONObject();
3008 obj.put("x", toJSON(Type.Word,v.x));
3009 obj.put("y", toJSON(Type.Word,v.y));
3010 return obj;
3011 }
3012 case V2_Float: {
3013 V2<Float> v = (V2<Float>)rawObj;
3014 JSONObject obj = new JSONObject();
3015 obj.put("x", toJSON(Type.Float,v.x));
3016 obj.put("y", toJSON(Type.Float,v.y));
3017 return obj;
3018 }
3019 case V2_Bool: {
3020 V2<Boolean> v = (V2<Boolean>)rawObj;
3021 JSONObject obj = new JSONObject();
3022 obj.put("x", toJSON(Type.Bool,v.x));
3023 obj.put("y", toJSON(Type.Bool,v.y));
3024 return obj;
3025 }
3026 case V2_V2_Float: {
3027 V2<V2<Float>> v = (V2<V2<Float>>)rawObj;
3028 JSONObject obj = new JSONObject();
3029 obj.put("x", toJSON(Type.V2_Float,v.x));
3030 obj.put("y", toJSON(Type.V2_Float,v.y));
3031 return obj;
3032 }
3033 case V2_V3_Float: {
3034 V2<V3<Float>> v = (V2<V3<Float>>)rawObj;
3035 JSONObject obj = new JSONObject();
3036 obj.put("x", toJSON(Type.V3_Float,v.x));
3037 obj.put("y", toJSON(Type.V3_Float,v.y));
3038 return obj;
3039 }
3040 case V2_V4_Float: {
3041 V2<V4<Float>> v = (V2<V4<Float>>)rawObj;
3042 JSONObject obj = new JSONObject();
3043 obj.put("x", toJSON(Type.V4_Float,v.x));
3044 obj.put("y", toJSON(Type.V4_Float,v.y));
3045 return obj;
3046 }
3047 case V3_Word: {
3048 V3<Integer> v = (V3<Integer>)rawObj;
3049 JSONObject obj = new JSONObject();
3050 obj.put("x", toJSON(Type.Word,v.x));
3051 obj.put("y", toJSON(Type.Word,v.y));
3052 obj.put("z", toJSON(Type.Word,v.z));
3053 return obj;
3054 }
3055 case V3_Float: {
3056 V3<Float> v = (V3<Float>)rawObj;
3057 JSONObject obj = new JSONObject();
3058 obj.put("x", toJSON(Type.Float,v.x));
3059 obj.put("y", toJSON(Type.Float,v.y));
3060 obj.put("z", toJSON(Type.Float,v.z));
3061 return obj;
3062 }
3063 case V3_Bool: {
3064 V3<Boolean> v = (V3<Boolean>)rawObj;
3065 JSONObject obj = new JSONObject();
3066 obj.put("x", toJSON(Type.Bool,v.x));
3067 obj.put("y", toJSON(Type.Bool,v.y));
3068 obj.put("z", toJSON(Type.Bool,v.z));
3069 return obj;
3070 }
3071 case V3_V2_Float: {
3072 V3<V2<Float>> v = (V3<V2<Float>>)rawObj;
3073 JSONObject obj = new JSONObject();
3074 obj.put("x", toJSON(Type.V2_Float,v.x));
3075 obj.put("y", toJSON(Type.V2_Float,v.y));
3076 obj.put("z", toJSON(Type.V2_Float,v.z));
3077 return obj;
3078 }
3079 case V3_V3_Float: {
3080 V3<V3<Float>> v = (V3<V3<Float>>)rawObj;
3081 JSONObject obj = new JSONObject();
3082 obj.put("x", toJSON(Type.V3_Float,v.x));
3083 obj.put("y", toJSON(Type.V3_Float,v.y));
3084 obj.put("z", toJSON(Type.V3_Float,v.z));
3085 return obj;
3086 }
3087 case V3_V4_Float: {
3088 V3<V4<Float>> v = (V3<V4<Float>>)rawObj;
3089 JSONObject obj = new JSONObject();
3090 obj.put("x", toJSON(Type.V4_Float,v.x));
3091 obj.put("y", toJSON(Type.V4_Float,v.y));
3092 obj.put("z", toJSON(Type.V4_Float,v.z));
3093 return obj;
3094 }
3095 case V4_Word: {
3096 V4<Integer> v = (V4<Integer>)rawObj;
3097 JSONObject obj = new JSONObject();
3098 obj.put("x", toJSON(Type.Word,v.x));
3099 obj.put("y", toJSON(Type.Word,v.y));
3100 obj.put("z", toJSON(Type.Word,v.z));
3101 obj.put("w", toJSON(Type.Word,v.w));
3102 return obj;
3103 }
3104 case V4_Float: {
3105 V4<Float> v = (V4<Float>)rawObj;
3106 JSONObject obj = new JSONObject();
3107 obj.put("x", toJSON(Type.Float,v.x));
3108 obj.put("y", toJSON(Type.Float,v.y));
3109 obj.put("z", toJSON(Type.Float,v.z));
3110 obj.put("w", toJSON(Type.Float,v.w));
3111 return obj;
3112 }
3113 case V4_Bool: {
3114 V4<Boolean> v = (V4<Boolean>)rawObj;
3115 JSONObject obj = new JSONObject();
3116 obj.put("x", toJSON(Type.Bool,v.x));
3117 obj.put("y", toJSON(Type.Bool,v.y));
3118 obj.put("z", toJSON(Type.Bool,v.z));
3119 obj.put("w", toJSON(Type.Bool,v.w));
3120 return obj;
3121 }
3122 case V4_V2_Float: {
3123 V4<V2<Float>> v = (V4<V2<Float>>)rawObj;
3124 JSONObject obj = new JSONObject();
3125 obj.put("x", toJSON(Type.V2_Float,v.x));
3126 obj.put("y", toJSON(Type.V2_Float,v.y));
3127 obj.put("z", toJSON(Type.V2_Float,v.z));
3128 obj.put("w", toJSON(Type.V2_Float,v.w));
3129 return obj;
3130 }
3131 case V4_V3_Float: {
3132 V4<V3<Float>> v = (V4<V3<Float>>)rawObj;
3133 JSONObject obj = new JSONObject();
3134 obj.put("x", toJSON(Type.V3_Float,v.x));
3135 obj.put("y", toJSON(Type.V3_Float,v.y));
3136 obj.put("z", toJSON(Type.V3_Float,v.z));
3137 obj.put("w", toJSON(Type.V3_Float,v.w));
3138 return obj;
3139 }
3140 case V4_V4_Float: {
3141 V4<V4<Float>> v = (V4<V4<Float>>)rawObj;
3142 JSONObject obj = new JSONObject();
3143 obj.put("x", toJSON(Type.V4_Float,v.x));
3144 obj.put("y", toJSON(Type.V4_Float,v.y));
3145 obj.put("z", toJSON(Type.V4_Float,v.z));
3146 obj.put("w", toJSON(Type.V4_Float,v.w));
3147 return obj;
3148 }
3149 case Array_Word32: {
3150 ArrayList<Integer> v = (ArrayList<Integer>)rawObj;
3151 JSONArray obj = new JSONArray();
3152 for(Integer i : v) {
3153 obj.put(toJSON(Type.Word32,i));
3154 }
3155 return obj;
3156 }
3157 case Array_Float: {
3158 ArrayList<Float> v = (ArrayList<Float>)rawObj;
3159 JSONArray obj = new JSONArray();
3160 for(Float i : v) {
3161 obj.put(toJSON(Type.Float,i));
3162 }
3163 return obj;
3164 }
3165 case Array_Bool: {
3166 ArrayList<Boolean> v = (ArrayList<Boolean>)rawObj;
3167 JSONArray obj = new JSONArray();
3168 for(Boolean i : v) {
3169 obj.put(toJSON(Type.Bool,i));
3170 }
3171 return obj;
3172 }
3173 case Array_ClearImage: {
3174 ArrayList<ClearImage> v = (ArrayList<ClearImage>)rawObj;
3175 JSONArray obj = new JSONArray();
3176 for(ClearImage i : v) {
3177 obj.put(toJSON(Type.ClearImage,i));
3178 }
3179 return obj;
3180 }
3181 case Array_Command: {
3182 ArrayList<Command> v = (ArrayList<Command>)rawObj;
3183 JSONArray obj = new JSONArray();
3184 for(Command i : v) {
3185 obj.put(toJSON(Type.Command,i));
3186 }
3187 return obj;
3188 }
3189 case Array_Parameter: {
3190 ArrayList<Parameter> v = (ArrayList<Parameter>)rawObj;
3191 JSONArray obj = new JSONArray();
3192 for(Parameter i : v) {
3193 obj.put(toJSON(Type.Parameter,i));
3194 }
3195 return obj;
3196 }
3197 case Array_Program: {
3198 ArrayList<Program> v = (ArrayList<Program>)rawObj;
3199 JSONArray obj = new JSONArray();
3200 for(Program i : v) {
3201 obj.put(toJSON(Type.Program,i));
3202 }
3203 return obj;
3204 }
3205 case Array_RenderTarget: {
3206 ArrayList<RenderTarget> v = (ArrayList<RenderTarget>)rawObj;
3207 JSONArray obj = new JSONArray();
3208 for(RenderTarget i : v) {
3209 obj.put(toJSON(Type.RenderTarget,i));
3210 }
3211 return obj;
3212 }
3213 case Array_SamplerDescriptor: {
3214 ArrayList<SamplerDescriptor> v = (ArrayList<SamplerDescriptor>)rawObj;
3215 JSONArray obj = new JSONArray();
3216 for(SamplerDescriptor i : v) {
3217 obj.put(toJSON(Type.SamplerDescriptor,i));
3218 }
3219 return obj;
3220 }
3221 case Array_Slot: {
3222 ArrayList<Slot> v = (ArrayList<Slot>)rawObj;
3223 JSONArray obj = new JSONArray();
3224 for(Slot i : v) {
3225 obj.put(toJSON(Type.Slot,i));
3226 }
3227 return obj;
3228 }
3229 case Array_StreamData: {
3230 ArrayList<StreamData> v = (ArrayList<StreamData>)rawObj;
3231 JSONArray obj = new JSONArray();
3232 for(StreamData i : v) {
3233 obj.put(toJSON(Type.StreamData,i));
3234 }
3235 return obj;
3236 }
3237 case Array_TargetItem: {
3238 ArrayList<TargetItem> v = (ArrayList<TargetItem>)rawObj;
3239 JSONArray obj = new JSONArray();
3240 for(TargetItem i : v) {
3241 obj.put(toJSON(Type.TargetItem,i));
3242 }
3243 return obj;
3244 }
3245 case Array_TextureDescriptor: {
3246 ArrayList<TextureDescriptor> v = (ArrayList<TextureDescriptor>)rawObj;
3247 JSONArray obj = new JSONArray();
3248 for(TextureDescriptor i : v) {
3249 obj.put(toJSON(Type.TextureDescriptor,i));
3250 }
3251 return obj;
3252 }
3253 case List_FragmentOperation: {
3254 ArrayList<FragmentOperation> v = (ArrayList<FragmentOperation>)rawObj;
3255 JSONArray obj = new JSONArray();
3256 for(FragmentOperation i : v) {
3257 obj.put(toJSON(Type.FragmentOperation,i));
3258 }
3259 return obj;
3260 }
3261 case Maybe_Int: {
3262 Maybe<Integer> v = (Maybe<Integer>)rawObj;
3263 if (v.valid) {
3264 return toJSON(Type.Int,v.data);
3265 }
3266 return JSONObject.NULL;
3267 }
3268 case Maybe_Float: {
3269 Maybe<Float> v = (Maybe<Float>)rawObj;
3270 if (v.valid) {
3271 return toJSON(Type.Float,v.data);
3272 }
3273 return JSONObject.NULL;
3274 }
3275 case Maybe_String: {
3276 Maybe<String> v = (Maybe<String>)rawObj;
3277 if (v.valid) {
3278 return toJSON(Type.String,v.data);
3279 }
3280 return JSONObject.NULL;
3281 }
3282 case Maybe_ComparisonFunction: {
3283 Maybe<ComparisonFunction> v = (Maybe<ComparisonFunction>)rawObj;
3284 if (v.valid) {
3285 return toJSON(Type.ComparisonFunction,v.data);
3286 }
3287 return JSONObject.NULL;
3288 }
3289 case Maybe_EdgeMode: {
3290 Maybe<EdgeMode> v = (Maybe<EdgeMode>)rawObj;
3291 if (v.valid) {
3292 return toJSON(Type.EdgeMode,v.data);
3293 }
3294 return JSONObject.NULL;
3295 }
3296 case Maybe_ImageRef: {
3297 Maybe<ImageRef> v = (Maybe<ImageRef>)rawObj;
3298 if (v.valid) {
3299 return toJSON(Type.ImageRef,v.data);
3300 }
3301 return JSONObject.NULL;
3302 }
3303 case Map_String_ArrayValue: {
3304 HashMap<String, ArrayValue> v = (HashMap<String, ArrayValue>)rawObj;
3305 JSONObject obj = new JSONObject();
3306 for (Map.Entry<String,ArrayValue> i : v.entrySet()) {
3307 obj.put(i.getKey(), toJSON(Type.ArrayValue,i.getValue()));
3308 }
3309 return obj;
3310 }
3311 case Map_String_InputType: {
3312 HashMap<String, InputType> v = (HashMap<String, InputType>)rawObj;
3313 JSONObject obj = new JSONObject();
3314 for (Map.Entry<String,InputType> i : v.entrySet()) {
3315 obj.put(i.getKey(), toJSON(Type.InputType,i.getValue()));
3316 }
3317 return obj;
3318 }
3319 case Map_String_Parameter: {
3320 HashMap<String, Parameter> v = (HashMap<String, Parameter>)rawObj;
3321 JSONObject obj = new JSONObject();
3322 for (Map.Entry<String,Parameter> i : v.entrySet()) {
3323 obj.put(i.getKey(), toJSON(Type.Parameter,i.getValue()));
3324 }
3325 return obj;
3326 }
3327 }
3328 return null;
3329 }
1567} \ No newline at end of file 3330} \ No newline at end of file
diff --git a/ddl/out/java/LambdaCube/IR/LogicOperation.java b/ddl/out/java/LambdaCube/IR/LogicOperation.java
index b7efcff..76ad5f0 100644
--- a/ddl/out/java/LambdaCube/IR/LogicOperation.java
+++ b/ddl/out/java/LambdaCube/IR/LogicOperation.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/MipMap.java b/ddl/out/java/LambdaCube/IR/MipMap.java
index 068c824..3f4dd83 100644
--- a/ddl/out/java/LambdaCube/IR/MipMap.java
+++ b/ddl/out/java/LambdaCube/IR/MipMap.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/OutputPrimitive.java b/ddl/out/java/LambdaCube/IR/OutputPrimitive.java
index 267ff8a..8573b52 100644
--- a/ddl/out/java/LambdaCube/IR/OutputPrimitive.java
+++ b/ddl/out/java/LambdaCube/IR/OutputPrimitive.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Parameter.java b/ddl/out/java/LambdaCube/IR/Parameter.java
index 31b8701..c9bbb0e 100644
--- a/ddl/out/java/LambdaCube/IR/Parameter.java
+++ b/ddl/out/java/LambdaCube/IR/Parameter.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Pipeline.java b/ddl/out/java/LambdaCube/IR/Pipeline.java
index b5c9a86..5ec9134 100644
--- a/ddl/out/java/LambdaCube/IR/Pipeline.java
+++ b/ddl/out/java/LambdaCube/IR/Pipeline.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/PointSize.java b/ddl/out/java/LambdaCube/IR/PointSize.java
index b1d4fe3..034b6ef 100644
--- a/ddl/out/java/LambdaCube/IR/PointSize.java
+++ b/ddl/out/java/LambdaCube/IR/PointSize.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java b/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java
index 7c387b8..0adea89 100644
--- a/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java
+++ b/ddl/out/java/LambdaCube/IR/PointSpriteCoordOrigin.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/PolygonMode.java b/ddl/out/java/LambdaCube/IR/PolygonMode.java
index decf1e5..66ae75b 100644
--- a/ddl/out/java/LambdaCube/IR/PolygonMode.java
+++ b/ddl/out/java/LambdaCube/IR/PolygonMode.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/PolygonOffset.java b/ddl/out/java/LambdaCube/IR/PolygonOffset.java
index d25c57a..723902c 100644
--- a/ddl/out/java/LambdaCube/IR/PolygonOffset.java
+++ b/ddl/out/java/LambdaCube/IR/PolygonOffset.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Program.java b/ddl/out/java/LambdaCube/IR/Program.java
index 520ad58..2a4d203 100644
--- a/ddl/out/java/LambdaCube/IR/Program.java
+++ b/ddl/out/java/LambdaCube/IR/Program.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/ProvokingVertex.java b/ddl/out/java/LambdaCube/IR/ProvokingVertex.java
index ebe5f5f..4f168a8 100644
--- a/ddl/out/java/LambdaCube/IR/ProvokingVertex.java
+++ b/ddl/out/java/LambdaCube/IR/ProvokingVertex.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/RasterContext.java b/ddl/out/java/LambdaCube/IR/RasterContext.java
index dc3c725..c3c96af 100644
--- a/ddl/out/java/LambdaCube/IR/RasterContext.java
+++ b/ddl/out/java/LambdaCube/IR/RasterContext.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/RenderTarget.java b/ddl/out/java/LambdaCube/IR/RenderTarget.java
index ea18e10..9634405 100644
--- a/ddl/out/java/LambdaCube/IR/RenderTarget.java
+++ b/ddl/out/java/LambdaCube/IR/RenderTarget.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java b/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java
index 1fceace..022b5f1 100644
--- a/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java
+++ b/ddl/out/java/LambdaCube/IR/SamplerDescriptor.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Slot.java b/ddl/out/java/LambdaCube/IR/Slot.java
index 970c79e..672f23f 100644
--- a/ddl/out/java/LambdaCube/IR/Slot.java
+++ b/ddl/out/java/LambdaCube/IR/Slot.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StencilOperation.java b/ddl/out/java/LambdaCube/IR/StencilOperation.java
index 9a4156d..0c836a0 100644
--- a/ddl/out/java/LambdaCube/IR/StencilOperation.java
+++ b/ddl/out/java/LambdaCube/IR/StencilOperation.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StencilOps.java b/ddl/out/java/LambdaCube/IR/StencilOps.java
index 5dff15d..4875480 100644
--- a/ddl/out/java/LambdaCube/IR/StencilOps.java
+++ b/ddl/out/java/LambdaCube/IR/StencilOps.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StencilTest.java b/ddl/out/java/LambdaCube/IR/StencilTest.java
index 083c053..382f7e3 100644
--- a/ddl/out/java/LambdaCube/IR/StencilTest.java
+++ b/ddl/out/java/LambdaCube/IR/StencilTest.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StencilTests.java b/ddl/out/java/LambdaCube/IR/StencilTests.java
index 7cf730c..48fabe3 100644
--- a/ddl/out/java/LambdaCube/IR/StencilTests.java
+++ b/ddl/out/java/LambdaCube/IR/StencilTests.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/StreamData.java b/ddl/out/java/LambdaCube/IR/StreamData.java
index 6a2f49d..2a29d66 100644
--- a/ddl/out/java/LambdaCube/IR/StreamData.java
+++ b/ddl/out/java/LambdaCube/IR/StreamData.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/TargetItem.java b/ddl/out/java/LambdaCube/IR/TargetItem.java
index 392a38c..65c3845 100644
--- a/ddl/out/java/LambdaCube/IR/TargetItem.java
+++ b/ddl/out/java/LambdaCube/IR/TargetItem.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/TextureDataType.java b/ddl/out/java/LambdaCube/IR/TextureDataType.java
index 2a7824d..8b39deb 100644
--- a/ddl/out/java/LambdaCube/IR/TextureDataType.java
+++ b/ddl/out/java/LambdaCube/IR/TextureDataType.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/TextureDescriptor.java b/ddl/out/java/LambdaCube/IR/TextureDescriptor.java
index 23dedde..6d9b259 100644
--- a/ddl/out/java/LambdaCube/IR/TextureDescriptor.java
+++ b/ddl/out/java/LambdaCube/IR/TextureDescriptor.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/TextureType.java b/ddl/out/java/LambdaCube/IR/TextureType.java
index bea424e..9321517 100644
--- a/ddl/out/java/LambdaCube/IR/TextureType.java
+++ b/ddl/out/java/LambdaCube/IR/TextureType.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/IR/Value.java b/ddl/out/java/LambdaCube/IR/Value.java
index fe9d0cd..980417b 100644
--- a/ddl/out/java/LambdaCube/IR/Value.java
+++ b/ddl/out/java/LambdaCube/IR/Value.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:54.700322000000Z 2// 2016-03-21T15:32:16.153401000000Z
3 3
4package LambdaCube.IR; 4package LambdaCube.IR;
5 5
diff --git a/ddl/out/java/LambdaCube/Mesh/JSON.java b/ddl/out/java/LambdaCube/Mesh/JSON.java
index 9a1767e..2d65a3a 100644
--- a/ddl/out/java/LambdaCube/Mesh/JSON.java
+++ b/ddl/out/java/LambdaCube/Mesh/JSON.java
@@ -1,11 +1,12 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4package LambdaCube.Mesh; 4package LambdaCube.Mesh;
5 5
6import java.util.ArrayList; 6import java.util.ArrayList;
7import java.util.HashMap; 7import java.util.HashMap;
8import java.util.Iterator; 8import java.util.Iterator;
9import java.util.Map;
9import org.json.*; 10import org.json.*;
10import RT.*; 11import RT.*;
11 12
@@ -267,4 +268,249 @@ public class JSON {
267 } 268 }
268 throw new Exception("unknown type"); 269 throw new Exception("unknown type");
269 } 270 }
271
272 public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception {
273 switch (type) {
274 case MeshAttribute: {
275 MeshAttribute v = (MeshAttribute)rawObj;
276 JSONObject obj = new JSONObject();
277 switch (v.tag) {
278 case A_Float:
279 obj.put("tag", "A_Float");
280 {
281 MeshAttribute.A_Float_ tv = (MeshAttribute.A_Float_)v;
282 obj.put("arg0", toJSON(Type.Array_Float,tv._0));
283 }
284 break;
285 case A_V2F:
286 obj.put("tag", "A_V2F");
287 {
288 MeshAttribute.A_V2F_ tv = (MeshAttribute.A_V2F_)v;
289 obj.put("arg0", toJSON(Type.Array_V2_Float,tv._0));
290 }
291 break;
292 case A_V3F:
293 obj.put("tag", "A_V3F");
294 {
295 MeshAttribute.A_V3F_ tv = (MeshAttribute.A_V3F_)v;
296 obj.put("arg0", toJSON(Type.Array_V3_Float,tv._0));
297 }
298 break;
299 case A_V4F:
300 obj.put("tag", "A_V4F");
301 {
302 MeshAttribute.A_V4F_ tv = (MeshAttribute.A_V4F_)v;
303 obj.put("arg0", toJSON(Type.Array_V4_Float,tv._0));
304 }
305 break;
306 case A_M22F:
307 obj.put("tag", "A_M22F");
308 {
309 MeshAttribute.A_M22F_ tv = (MeshAttribute.A_M22F_)v;
310 obj.put("arg0", toJSON(Type.Array_V2_V2_Float,tv._0));
311 }
312 break;
313 case A_M33F:
314 obj.put("tag", "A_M33F");
315 {
316 MeshAttribute.A_M33F_ tv = (MeshAttribute.A_M33F_)v;
317 obj.put("arg0", toJSON(Type.Array_V3_V3_Float,tv._0));
318 }
319 break;
320 case A_M44F:
321 obj.put("tag", "A_M44F");
322 {
323 MeshAttribute.A_M44F_ tv = (MeshAttribute.A_M44F_)v;
324 obj.put("arg0", toJSON(Type.Array_V4_V4_Float,tv._0));
325 }
326 break;
327 case A_Int:
328 obj.put("tag", "A_Int");
329 {
330 MeshAttribute.A_Int_ tv = (MeshAttribute.A_Int_)v;
331 obj.put("arg0", toJSON(Type.Array_Int32,tv._0));
332 }
333 break;
334 case A_Word:
335 obj.put("tag", "A_Word");
336 {
337 MeshAttribute.A_Word_ tv = (MeshAttribute.A_Word_)v;
338 obj.put("arg0", toJSON(Type.Array_Word32,tv._0));
339 }
340 break;
341 }
342 return obj;
343 }
344 case MeshPrimitive: {
345 MeshPrimitive v = (MeshPrimitive)rawObj;
346 JSONObject obj = new JSONObject();
347 switch (v.tag) {
348 case P_Points:
349 obj.put("tag", "P_Points");
350 break;
351 case P_TriangleStrip:
352 obj.put("tag", "P_TriangleStrip");
353 break;
354 case P_Triangles:
355 obj.put("tag", "P_Triangles");
356 break;
357 case P_TriangleStripI:
358 obj.put("tag", "P_TriangleStripI");
359 {
360 MeshPrimitive.P_TriangleStripI_ tv = (MeshPrimitive.P_TriangleStripI_)v;
361 obj.put("arg0", toJSON(Type.Array_Int32,tv._0));
362 }
363 break;
364 case P_TrianglesI:
365 obj.put("tag", "P_TrianglesI");
366 {
367 MeshPrimitive.P_TrianglesI_ tv = (MeshPrimitive.P_TrianglesI_)v;
368 obj.put("arg0", toJSON(Type.Array_Int32,tv._0));
369 }
370 break;
371 }
372 return obj;
373 }
374 case Mesh: {
375 Mesh v = (Mesh)rawObj;
376 JSONObject obj = new JSONObject();
377 switch (v.tag) {
378 case Mesh:
379 obj.put("tag", "Mesh");
380 {
381 Mesh.Mesh_ tv = (Mesh.Mesh_)v;
382 obj.put("mAttributes", toJSON(Type.Map_String_MeshAttribute,tv.mAttributes));
383 obj.put("mPrimitive", toJSON(Type.MeshPrimitive,tv.mPrimitive));
384 }
385 break;
386 }
387 return obj;
388 }
389
390 case Word32: { return rawObj; }
391 case Float: { return rawObj; }
392 case String: { return rawObj; }
393 case V2_Float: {
394 V2<Float> v = (V2<Float>)rawObj;
395 JSONObject obj = new JSONObject();
396 obj.put("x", toJSON(Type.Float,v.x));
397 obj.put("y", toJSON(Type.Float,v.y));
398 return obj;
399 }
400 case V2_V2_Float: {
401 V2<V2<Float>> v = (V2<V2<Float>>)rawObj;
402 JSONObject obj = new JSONObject();
403 obj.put("x", toJSON(Type.V2_Float,v.x));
404 obj.put("y", toJSON(Type.V2_Float,v.y));
405 return obj;
406 }
407 case V3_Float: {
408 V3<Float> v = (V3<Float>)rawObj;
409 JSONObject obj = new JSONObject();
410 obj.put("x", toJSON(Type.Float,v.x));
411 obj.put("y", toJSON(Type.Float,v.y));
412 obj.put("z", toJSON(Type.Float,v.z));
413 return obj;
414 }
415 case V3_V3_Float: {
416 V3<V3<Float>> v = (V3<V3<Float>>)rawObj;
417 JSONObject obj = new JSONObject();
418 obj.put("x", toJSON(Type.V3_Float,v.x));
419 obj.put("y", toJSON(Type.V3_Float,v.y));
420 obj.put("z", toJSON(Type.V3_Float,v.z));
421 return obj;
422 }
423 case V4_Float: {
424 V4<Float> v = (V4<Float>)rawObj;
425 JSONObject obj = new JSONObject();
426 obj.put("x", toJSON(Type.Float,v.x));
427 obj.put("y", toJSON(Type.Float,v.y));
428 obj.put("z", toJSON(Type.Float,v.z));
429 obj.put("w", toJSON(Type.Float,v.w));
430 return obj;
431 }
432 case V4_V4_Float: {
433 V4<V4<Float>> v = (V4<V4<Float>>)rawObj;
434 JSONObject obj = new JSONObject();
435 obj.put("x", toJSON(Type.V4_Float,v.x));
436 obj.put("y", toJSON(Type.V4_Float,v.y));
437 obj.put("z", toJSON(Type.V4_Float,v.z));
438 obj.put("w", toJSON(Type.V4_Float,v.w));
439 return obj;
440 }
441 case Array_Word32: {
442 ArrayList<Integer> v = (ArrayList<Integer>)rawObj;
443 JSONArray obj = new JSONArray();
444 for(Integer i : v) {
445 obj.put(toJSON(Type.Word32,i));
446 }
447 return obj;
448 }
449 case Array_Float: {
450 ArrayList<Float> v = (ArrayList<Float>)rawObj;
451 JSONArray obj = new JSONArray();
452 for(Float i : v) {
453 obj.put(toJSON(Type.Float,i));
454 }
455 return obj;
456 }
457 case Array_V2_Float: {
458 ArrayList<V2<Float>> v = (ArrayList<V2<Float>>)rawObj;
459 JSONArray obj = new JSONArray();
460 for(V2<Float> i : v) {
461 obj.put(toJSON(Type.V2_Float,i));
462 }
463 return obj;
464 }
465 case Array_V2_V2_Float: {
466 ArrayList<V2<V2<Float>>> v = (ArrayList<V2<V2<Float>>>)rawObj;
467 JSONArray obj = new JSONArray();
468 for(V2<V2<Float>> i : v) {
469 obj.put(toJSON(Type.V2_V2_Float,i));
470 }
471 return obj;
472 }
473 case Array_V3_Float: {
474 ArrayList<V3<Float>> v = (ArrayList<V3<Float>>)rawObj;
475 JSONArray obj = new JSONArray();
476 for(V3<Float> i : v) {
477 obj.put(toJSON(Type.V3_Float,i));
478 }
479 return obj;
480 }
481 case Array_V3_V3_Float: {
482 ArrayList<V3<V3<Float>>> v = (ArrayList<V3<V3<Float>>>)rawObj;
483 JSONArray obj = new JSONArray();
484 for(V3<V3<Float>> i : v) {
485 obj.put(toJSON(Type.V3_V3_Float,i));
486 }
487 return obj;
488 }
489 case Array_V4_Float: {
490 ArrayList<V4<Float>> v = (ArrayList<V4<Float>>)rawObj;
491 JSONArray obj = new JSONArray();
492 for(V4<Float> i : v) {
493 obj.put(toJSON(Type.V4_Float,i));
494 }
495 return obj;
496 }
497 case Array_V4_V4_Float: {
498 ArrayList<V4<V4<Float>>> v = (ArrayList<V4<V4<Float>>>)rawObj;
499 JSONArray obj = new JSONArray();
500 for(V4<V4<Float>> i : v) {
501 obj.put(toJSON(Type.V4_V4_Float,i));
502 }
503 return obj;
504 }
505 case Map_String_MeshAttribute: {
506 HashMap<String, MeshAttribute> v = (HashMap<String, MeshAttribute>)rawObj;
507 JSONObject obj = new JSONObject();
508 for (Map.Entry<String,MeshAttribute> i : v.entrySet()) {
509 obj.put(i.getKey(), toJSON(Type.MeshAttribute,i.getValue()));
510 }
511 return obj;
512 }
513 }
514 return null;
515 }
270} \ No newline at end of file 516} \ No newline at end of file
diff --git a/ddl/out/java/LambdaCube/Mesh/Mesh.java b/ddl/out/java/LambdaCube/Mesh/Mesh.java
index 1eb05d2..02b872b 100644
--- a/ddl/out/java/LambdaCube/Mesh/Mesh.java
+++ b/ddl/out/java/LambdaCube/Mesh/Mesh.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4package LambdaCube.Mesh; 4package LambdaCube.Mesh;
5 5
diff --git a/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java b/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java
index dff2e02..61a9c79 100644
--- a/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java
+++ b/ddl/out/java/LambdaCube/Mesh/MeshAttribute.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4package LambdaCube.Mesh; 4package LambdaCube.Mesh;
5 5
diff --git a/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java b/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java
index 7c25ae8..43de590 100644
--- a/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java
+++ b/ddl/out/java/LambdaCube/Mesh/MeshPrimitive.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.404479000000Z 2// 2016-03-21T15:32:17.804995000000Z
3 3
4package LambdaCube.Mesh; 4package LambdaCube.Mesh;
5 5
diff --git a/ddl/out/java/LambdaCube/PipelineSchema/JSON.java b/ddl/out/java/LambdaCube/PipelineSchema/JSON.java
index 1fec7e8..1667518 100644
--- a/ddl/out/java/LambdaCube/PipelineSchema/JSON.java
+++ b/ddl/out/java/LambdaCube/PipelineSchema/JSON.java
@@ -1,11 +1,12 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4package LambdaCube.PipelineSchema; 4package LambdaCube.PipelineSchema;
5 5
6import java.util.ArrayList; 6import java.util.ArrayList;
7import java.util.HashMap; 7import java.util.HashMap;
8import java.util.Iterator; 8import java.util.Iterator;
9import java.util.Map;
9import org.json.*; 10import org.json.*;
10import RT.*; 11import RT.*;
11 12
@@ -120,4 +121,136 @@ public class JSON {
120 } 121 }
121 throw new Exception("unknown type"); 122 throw new Exception("unknown type");
122 } 123 }
124
125 public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception {
126 switch (type) {
127 case StreamType: {
128 StreamType v = (StreamType)rawObj;
129 JSONObject obj = new JSONObject();
130 switch (v.tag) {
131 case Attribute_Word:
132 obj.put("tag", "Attribute_Word");
133 break;
134 case Attribute_V2U:
135 obj.put("tag", "Attribute_V2U");
136 break;
137 case Attribute_V3U:
138 obj.put("tag", "Attribute_V3U");
139 break;
140 case Attribute_V4U:
141 obj.put("tag", "Attribute_V4U");
142 break;
143 case Attribute_Int:
144 obj.put("tag", "Attribute_Int");
145 break;
146 case Attribute_V2I:
147 obj.put("tag", "Attribute_V2I");
148 break;
149 case Attribute_V3I:
150 obj.put("tag", "Attribute_V3I");
151 break;
152 case Attribute_V4I:
153 obj.put("tag", "Attribute_V4I");
154 break;
155 case Attribute_Float:
156 obj.put("tag", "Attribute_Float");
157 break;
158 case Attribute_V2F:
159 obj.put("tag", "Attribute_V2F");
160 break;
161 case Attribute_V3F:
162 obj.put("tag", "Attribute_V3F");
163 break;
164 case Attribute_V4F:
165 obj.put("tag", "Attribute_V4F");
166 break;
167 case Attribute_M22F:
168 obj.put("tag", "Attribute_M22F");
169 break;
170 case Attribute_M23F:
171 obj.put("tag", "Attribute_M23F");
172 break;
173 case Attribute_M24F:
174 obj.put("tag", "Attribute_M24F");
175 break;
176 case Attribute_M32F:
177 obj.put("tag", "Attribute_M32F");
178 break;
179 case Attribute_M33F:
180 obj.put("tag", "Attribute_M33F");
181 break;
182 case Attribute_M34F:
183 obj.put("tag", "Attribute_M34F");
184 break;
185 case Attribute_M42F:
186 obj.put("tag", "Attribute_M42F");
187 break;
188 case Attribute_M43F:
189 obj.put("tag", "Attribute_M43F");
190 break;
191 case Attribute_M44F:
192 obj.put("tag", "Attribute_M44F");
193 break;
194 }
195 return obj;
196 }
197 case ObjectArraySchema: {
198 ObjectArraySchema v = (ObjectArraySchema)rawObj;
199 JSONObject obj = new JSONObject();
200 switch (v.tag) {
201 case ObjectArraySchema:
202 obj.put("tag", "ObjectArraySchema");
203 {
204 ObjectArraySchema.ObjectArraySchema_ tv = (ObjectArraySchema.ObjectArraySchema_)v;
205 obj.put("primitive", toJSON(Type.FetchPrimitive,tv.primitive));
206 obj.put("attributes", toJSON(Type.Map_String_StreamType,tv.attributes));
207 }
208 break;
209 }
210 return obj;
211 }
212 case PipelineSchema: {
213 PipelineSchema v = (PipelineSchema)rawObj;
214 JSONObject obj = new JSONObject();
215 switch (v.tag) {
216 case PipelineSchema:
217 obj.put("tag", "PipelineSchema");
218 {
219 PipelineSchema.PipelineSchema_ tv = (PipelineSchema.PipelineSchema_)v;
220 obj.put("objectArrays", toJSON(Type.Map_String_ObjectArraySchema,tv.objectArrays));
221 obj.put("uniforms", toJSON(Type.Map_String_InputType,tv.uniforms));
222 }
223 break;
224 }
225 return obj;
226 }
227
228 case String: { return rawObj; }
229 case Map_String_InputType: {
230 HashMap<String, InputType> v = (HashMap<String, InputType>)rawObj;
231 JSONObject obj = new JSONObject();
232 for (Map.Entry<String,InputType> i : v.entrySet()) {
233 obj.put(i.getKey(), toJSON(Type.InputType,i.getValue()));
234 }
235 return obj;
236 }
237 case Map_String_ObjectArraySchema: {
238 HashMap<String, ObjectArraySchema> v = (HashMap<String, ObjectArraySchema>)rawObj;
239 JSONObject obj = new JSONObject();
240 for (Map.Entry<String,ObjectArraySchema> i : v.entrySet()) {
241 obj.put(i.getKey(), toJSON(Type.ObjectArraySchema,i.getValue()));
242 }
243 return obj;
244 }
245 case Map_String_StreamType: {
246 HashMap<String, StreamType> v = (HashMap<String, StreamType>)rawObj;
247 JSONObject obj = new JSONObject();
248 for (Map.Entry<String,StreamType> i : v.entrySet()) {
249 obj.put(i.getKey(), toJSON(Type.StreamType,i.getValue()));
250 }
251 return obj;
252 }
253 }
254 return null;
255 }
123} \ No newline at end of file 256} \ No newline at end of file
diff --git a/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java b/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java
index cc15385..adb12ff 100644
--- a/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java
+++ b/ddl/out/java/LambdaCube/PipelineSchema/ObjectArraySchema.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4package LambdaCube.PipelineSchema; 4package LambdaCube.PipelineSchema;
5 5
diff --git a/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java b/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java
index 3618a3a..cc221a8 100644
--- a/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java
+++ b/ddl/out/java/LambdaCube/PipelineSchema/PipelineSchema.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4package LambdaCube.PipelineSchema; 4package LambdaCube.PipelineSchema;
5 5
diff --git a/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java b/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java
index 1861146..f7007b5 100644
--- a/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java
+++ b/ddl/out/java/LambdaCube/PipelineSchema/StreamType.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.360355000000Z 2// 2016-03-21T15:32:17.702608000000Z
3 3
4package LambdaCube.PipelineSchema; 4package LambdaCube.PipelineSchema;
5 5
diff --git a/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java b/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java
index 0b21b64..4235172 100644
--- a/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java
+++ b/ddl/out/java/LambdaCube/TypeInfo/CompileResult.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4package LambdaCube.TypeInfo; 4package LambdaCube.TypeInfo;
5 5
diff --git a/ddl/out/java/LambdaCube/TypeInfo/JSON.java b/ddl/out/java/LambdaCube/TypeInfo/JSON.java
index d4ea991..6679e5d 100644
--- a/ddl/out/java/LambdaCube/TypeInfo/JSON.java
+++ b/ddl/out/java/LambdaCube/TypeInfo/JSON.java
@@ -1,11 +1,12 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4package LambdaCube.TypeInfo; 4package LambdaCube.TypeInfo;
5 5
6import java.util.ArrayList; 6import java.util.ArrayList;
7import java.util.HashMap; 7import java.util.HashMap;
8import java.util.Iterator; 8import java.util.Iterator;
9import java.util.Map;
9import org.json.*; 10import org.json.*;
10import RT.*; 11import RT.*;
11 12
@@ -98,4 +99,87 @@ public class JSON {
98 } 99 }
99 throw new Exception("unknown type"); 100 throw new Exception("unknown type");
100 } 101 }
102
103 public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception {
104 switch (type) {
105 case Range: {
106 Range v = (Range)rawObj;
107 JSONObject obj = new JSONObject();
108 switch (v.tag) {
109 case Range:
110 obj.put("tag", "Range");
111 {
112 Range.Range_ tv = (Range.Range_)v;
113 obj.put("startLine", toJSON(Type.Int,tv.startLine));
114 obj.put("startColumn", toJSON(Type.Int,tv.startColumn));
115 obj.put("endLine", toJSON(Type.Int,tv.endLine));
116 obj.put("endColumn", toJSON(Type.Int,tv.endColumn));
117 }
118 break;
119 }
120 return obj;
121 }
122 case TypeInfo: {
123 TypeInfo v = (TypeInfo)rawObj;
124 JSONObject obj = new JSONObject();
125 switch (v.tag) {
126 case TypeInfo:
127 obj.put("tag", "TypeInfo");
128 {
129 TypeInfo.TypeInfo_ tv = (TypeInfo.TypeInfo_)v;
130 obj.put("range", toJSON(Type.Range,tv.range));
131 obj.put("text", toJSON(Type.String,tv.text));
132 }
133 break;
134 }
135 return obj;
136 }
137 case CompileResult: {
138 CompileResult v = (CompileResult)rawObj;
139 JSONObject obj = new JSONObject();
140 switch (v.tag) {
141 case CompileError:
142 obj.put("tag", "CompileError");
143 {
144 CompileResult.CompileError_ tv = (CompileResult.CompileError_)v;
145 obj.put("arg0", toJSON(Type.Array_Range,tv._0));
146 obj.put("arg1", toJSON(Type.String,tv._1));
147 obj.put("arg2", toJSON(Type.Array_TypeInfo,tv._2));
148 }
149 break;
150 case Compiled:
151 obj.put("tag", "Compiled");
152 {
153 CompileResult.Compiled_ tv = (CompileResult.Compiled_)v;
154 obj.put("arg0", toJSON(Type.String,tv._0));
155 obj.put("arg1", toJSON(Type.String,tv._1));
156 obj.put("arg2", toJSON(Type.Pipeline,tv._2));
157 obj.put("arg3", toJSON(Type.Array_TypeInfo,tv._3));
158 }
159 break;
160 }
161 return obj;
162 }
163
164 case Int: { return rawObj; }
165 case String: { return rawObj; }
166 case Array_Range: {
167 ArrayList<Range> v = (ArrayList<Range>)rawObj;
168 JSONArray obj = new JSONArray();
169 for(Range i : v) {
170 obj.put(toJSON(Type.Range,i));
171 }
172 return obj;
173 }
174 case Array_TypeInfo: {
175 ArrayList<TypeInfo> v = (ArrayList<TypeInfo>)rawObj;
176 JSONArray obj = new JSONArray();
177 for(TypeInfo i : v) {
178 obj.put(toJSON(Type.TypeInfo,i));
179 }
180 return obj;
181 }
182 }
183 return null;
184 }
101} \ No newline at end of file 185} \ No newline at end of file
diff --git a/ddl/out/java/LambdaCube/TypeInfo/Range.java b/ddl/out/java/LambdaCube/TypeInfo/Range.java
index 61e2ddb..36ab145 100644
--- a/ddl/out/java/LambdaCube/TypeInfo/Range.java
+++ b/ddl/out/java/LambdaCube/TypeInfo/Range.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4package LambdaCube.TypeInfo; 4package LambdaCube.TypeInfo;
5 5
diff --git a/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java b/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java
index a34fda6..febda4b 100644
--- a/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java
+++ b/ddl/out/java/LambdaCube/TypeInfo/TypeInfo.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.479415000000Z 2// 2016-03-21T15:32:17.924228000000Z
3 3
4package LambdaCube.TypeInfo; 4package LambdaCube.TypeInfo;
5 5
diff --git a/ddl/out/java/TestData/ClientInfo.java b/ddl/out/java/TestData/ClientInfo.java
index 81f9c9a..2bedf17 100644
--- a/ddl/out/java/TestData/ClientInfo.java
+++ b/ddl/out/java/TestData/ClientInfo.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/Frame.java b/ddl/out/java/TestData/Frame.java
index 1e4f4a5..a91fab6 100644
--- a/ddl/out/java/TestData/Frame.java
+++ b/ddl/out/java/TestData/Frame.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/FrameResult.java b/ddl/out/java/TestData/FrameResult.java
index ded69a2..81c96d7 100644
--- a/ddl/out/java/TestData/FrameResult.java
+++ b/ddl/out/java/TestData/FrameResult.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/JSON.java b/ddl/out/java/TestData/JSON.java
index 7bf7ff0..098105d 100644
--- a/ddl/out/java/TestData/JSON.java
+++ b/ddl/out/java/TestData/JSON.java
@@ -1,11 +1,12 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4package TestData; 4package TestData;
5 5
6import java.util.ArrayList; 6import java.util.ArrayList;
7import java.util.HashMap; 7import java.util.HashMap;
8import java.util.Iterator; 8import java.util.Iterator;
9import java.util.Map;
9import org.json.*; 10import org.json.*;
10import RT.*; 11import RT.*;
11 12
@@ -240,4 +241,212 @@ public class JSON {
240 } 241 }
241 throw new Exception("unknown type"); 242 throw new Exception("unknown type");
242 } 243 }
244
245 public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception {
246 switch (type) {
247 case ClientInfo: {
248 ClientInfo v = (ClientInfo)rawObj;
249 JSONObject obj = new JSONObject();
250 switch (v.tag) {
251 case ClientInfo:
252 obj.put("tag", "ClientInfo");
253 {
254 ClientInfo.ClientInfo_ tv = (ClientInfo.ClientInfo_)v;
255 obj.put("clientName", toJSON(Type.String,tv.clientName));
256 obj.put("clientBackend", toJSON(Type.Backend,tv.clientBackend));
257 }
258 break;
259 }
260 return obj;
261 }
262 case Frame: {
263 Frame v = (Frame)rawObj;
264 JSONObject obj = new JSONObject();
265 switch (v.tag) {
266 case Frame:
267 obj.put("tag", "Frame");
268 {
269 Frame.Frame_ tv = (Frame.Frame_)v;
270 obj.put("renderCount", toJSON(Type.Int,tv.renderCount));
271 obj.put("frameUniforms", toJSON(Type.Map_String_Value,tv.frameUniforms));
272 obj.put("frameTextures", toJSON(Type.Map_String_Int,tv.frameTextures));
273 }
274 break;
275 }
276 return obj;
277 }
278 case Scene: {
279 Scene v = (Scene)rawObj;
280 JSONObject obj = new JSONObject();
281 switch (v.tag) {
282 case Scene:
283 obj.put("tag", "Scene");
284 {
285 Scene.Scene_ tv = (Scene.Scene_)v;
286 obj.put("objectArrays", toJSON(Type.Map_String_Array_Int,tv.objectArrays));
287 obj.put("renderTargetWidth", toJSON(Type.Int,tv.renderTargetWidth));
288 obj.put("renderTargetHeight", toJSON(Type.Int,tv.renderTargetHeight));
289 obj.put("frames", toJSON(Type.Array_Frame,tv.frames));
290 }
291 break;
292 }
293 return obj;
294 }
295 case PipelineInfo: {
296 PipelineInfo v = (PipelineInfo)rawObj;
297 JSONObject obj = new JSONObject();
298 switch (v.tag) {
299 case PipelineInfo:
300 obj.put("tag", "PipelineInfo");
301 {
302 PipelineInfo.PipelineInfo_ tv = (PipelineInfo.PipelineInfo_)v;
303 obj.put("pipelineName", toJSON(Type.String,tv.pipelineName));
304 obj.put("pipeline", toJSON(Type.Pipeline,tv.pipeline));
305 }
306 break;
307 }
308 return obj;
309 }
310 case RenderJob: {
311 RenderJob v = (RenderJob)rawObj;
312 JSONObject obj = new JSONObject();
313 switch (v.tag) {
314 case RenderJob:
315 obj.put("tag", "RenderJob");
316 {
317 RenderJob.RenderJob_ tv = (RenderJob.RenderJob_)v;
318 obj.put("meshes", toJSON(Type.Array_Mesh,tv.meshes));
319 obj.put("textures", toJSON(Type.Array_String,tv.textures));
320 obj.put("schema", toJSON(Type.PipelineSchema,tv.schema));
321 obj.put("scenes", toJSON(Type.Array_Scene,tv.scenes));
322 obj.put("pipelines", toJSON(Type.Array_PipelineInfo,tv.pipelines));
323 }
324 break;
325 }
326 return obj;
327 }
328 case FrameResult: {
329 FrameResult v = (FrameResult)rawObj;
330 JSONObject obj = new JSONObject();
331 switch (v.tag) {
332 case FrameResult:
333 obj.put("tag", "FrameResult");
334 {
335 FrameResult.FrameResult_ tv = (FrameResult.FrameResult_)v;
336 obj.put("frRenderTimes", toJSON(Type.Array_Float,tv.frRenderTimes));
337 obj.put("frImageWidth", toJSON(Type.Int,tv.frImageWidth));
338 obj.put("frImageHeight", toJSON(Type.Int,tv.frImageHeight));
339 }
340 break;
341 }
342 return obj;
343 }
344 case RenderJobResult: {
345 RenderJobResult v = (RenderJobResult)rawObj;
346 JSONObject obj = new JSONObject();
347 switch (v.tag) {
348 case RenderJobResult:
349 obj.put("tag", "RenderJobResult");
350 {
351 RenderJobResult.RenderJobResult_ tv = (RenderJobResult.RenderJobResult_)v;
352 obj.put("arg0", toJSON(Type.FrameResult,tv._0));
353 }
354 break;
355 case RenderJobError:
356 obj.put("tag", "RenderJobError");
357 {
358 RenderJobResult.RenderJobError_ tv = (RenderJobResult.RenderJobError_)v;
359 obj.put("arg0", toJSON(Type.String,tv._0));
360 }
361 break;
362 }
363 return obj;
364 }
365
366 case Int: { return rawObj; }
367 case Float: { return rawObj; }
368 case String: { return rawObj; }
369 case Array_Int: {
370 ArrayList<Integer> v = (ArrayList<Integer>)rawObj;
371 JSONArray obj = new JSONArray();
372 for(Integer i : v) {
373 obj.put(toJSON(Type.Int,i));
374 }
375 return obj;
376 }
377 case Array_Float: {
378 ArrayList<Float> v = (ArrayList<Float>)rawObj;
379 JSONArray obj = new JSONArray();
380 for(Float i : v) {
381 obj.put(toJSON(Type.Float,i));
382 }
383 return obj;
384 }
385 case Array_String: {
386 ArrayList<String> v = (ArrayList<String>)rawObj;
387 JSONArray obj = new JSONArray();
388 for(String i : v) {
389 obj.put(toJSON(Type.String,i));
390 }
391 return obj;
392 }
393 case Array_Frame: {
394 ArrayList<Frame> v = (ArrayList<Frame>)rawObj;
395 JSONArray obj = new JSONArray();
396 for(Frame i : v) {
397 obj.put(toJSON(Type.Frame,i));
398 }
399 return obj;
400 }
401 case Array_Mesh: {
402 ArrayList<Mesh> v = (ArrayList<Mesh>)rawObj;
403 JSONArray obj = new JSONArray();
404 for(Mesh i : v) {
405 obj.put(toJSON(Type.Mesh,i));
406 }
407 return obj;
408 }
409 case Array_PipelineInfo: {
410 ArrayList<PipelineInfo> v = (ArrayList<PipelineInfo>)rawObj;
411 JSONArray obj = new JSONArray();
412 for(PipelineInfo i : v) {
413 obj.put(toJSON(Type.PipelineInfo,i));
414 }
415 return obj;
416 }
417 case Array_Scene: {
418 ArrayList<Scene> v = (ArrayList<Scene>)rawObj;
419 JSONArray obj = new JSONArray();
420 for(Scene i : v) {
421 obj.put(toJSON(Type.Scene,i));
422 }
423 return obj;
424 }
425 case Map_String_Int: {
426 HashMap<String, Integer> v = (HashMap<String, Integer>)rawObj;
427 JSONObject obj = new JSONObject();
428 for (Map.Entry<String,Integer> i : v.entrySet()) {
429 obj.put(i.getKey(), toJSON(Type.Int,i.getValue()));
430 }
431 return obj;
432 }
433 case Map_String_Array_Int: {
434 HashMap<String, ArrayList<Integer>> v = (HashMap<String, ArrayList<Integer>>)rawObj;
435 JSONObject obj = new JSONObject();
436 for (Map.Entry<String,ArrayList<Integer>> i : v.entrySet()) {
437 obj.put(i.getKey(), toJSON(Type.Array_Int,i.getValue()));
438 }
439 return obj;
440 }
441 case Map_String_Value: {
442 HashMap<String, Value> v = (HashMap<String, Value>)rawObj;
443 JSONObject obj = new JSONObject();
444 for (Map.Entry<String,Value> i : v.entrySet()) {
445 obj.put(i.getKey(), toJSON(Type.Value,i.getValue()));
446 }
447 return obj;
448 }
449 }
450 return null;
451 }
243} \ No newline at end of file 452} \ No newline at end of file
diff --git a/ddl/out/java/TestData/PipelineInfo.java b/ddl/out/java/TestData/PipelineInfo.java
index 89e8ca5..dd0bbab 100644
--- a/ddl/out/java/TestData/PipelineInfo.java
+++ b/ddl/out/java/TestData/PipelineInfo.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/RenderJob.java b/ddl/out/java/TestData/RenderJob.java
index 279bd6c..9c54448 100644
--- a/ddl/out/java/TestData/RenderJob.java
+++ b/ddl/out/java/TestData/RenderJob.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/RenderJobResult.java b/ddl/out/java/TestData/RenderJobResult.java
index b6bf2c9..df887d5 100644
--- a/ddl/out/java/TestData/RenderJobResult.java
+++ b/ddl/out/java/TestData/RenderJobResult.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/out/java/TestData/Scene.java b/ddl/out/java/TestData/Scene.java
index 45a21ed..9345476 100644
--- a/ddl/out/java/TestData/Scene.java
+++ b/ddl/out/java/TestData/Scene.java
@@ -1,5 +1,5 @@
1// generated file, do not modify! 1// generated file, do not modify!
2// 2016-03-21T14:06:55.528630000000Z 2// 2016-03-21T15:32:18.087397000000Z
3 3
4package TestData; 4package TestData;
5 5
diff --git a/ddl/templates/json.java.ede b/ddl/templates/json.java.ede
index cfb639a..dc4ea25 100644
--- a/ddl/templates/json.java.ede
+++ b/ddl/templates/json.java.ede
@@ -6,6 +6,7 @@ package {{ moduleName }};
6import java.util.ArrayList; 6import java.util.ArrayList;
7import java.util.HashMap; 7import java.util.HashMap;
8import java.util.Iterator; 8import java.util.Iterator;
9import java.util.Map;
9import org.json.*; 10import org.json.*;
10import RT.*; 11import RT.*;
11 12
@@ -127,4 +128,97 @@ public class JSON {
127 } 128 }
128 throw new Exception("unknown type"); 129 throw new Exception("unknown type");
129 } 130 }
131
132 public static Object toJSON(Type type, Object rawObj) throws JSONException, Exception {
133 switch (type) {
134 {% for t in definitions %}
135 case {{ t.value.dataName }}: {
136 {{ t.value.dataName }} v = ({{ t.value.dataName }})rawObj;
137 JSONObject obj = new JSONObject();
138 switch (v.tag) { {% for c in t.value.constructors %}
139 case {{ c.value.name }}:
140 obj.put("tag", "{{ c.value.name }}");{% if !(c.value.fields | empty) %}
141 {
142 {{ t.value.dataName }}.{{ c.value.name }}_ tv = ({{ t.value.dataName }}.{{ c.value.name }}_)v;{% for f in c.value.fields %}{% if c.value.fields | hasFieldNames %}
143 obj.put("{{ f.value.fieldName }}", toJSON(Type.{{ f.value.fieldType | typeEnum }},tv.{{ f.value.fieldName }}));{% else %}
144 obj.put("arg{{ f.index0 }}", toJSON(Type.{{ f.value.fieldType | typeEnum }},tv._{{ f.index0 }}));{% endif %}{% endfor %}
145 }{% endif %}
146 break;{% endfor %}
147 }
148 return obj;
149 }
150 {% endfor %}
151
152 {% for t in usedJavaTypes %}
153 {% case t.value.tag %}
154 {% when "Data" %}
155 {% when "V2" %}
156 case {{ t.value | typeEnum }}: {
157 {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj;
158 JSONObject obj = new JSONObject();
159 obj.put("x", toJSON(Type.{{ t.value.type_ | typeEnum }},v.x));
160 obj.put("y", toJSON(Type.{{ t.value.type_ | typeEnum }},v.y));
161 return obj;
162 }
163 {% when "V3" %}
164 case {{ t.value | typeEnum }}: {
165 {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj;
166 JSONObject obj = new JSONObject();
167 obj.put("x", toJSON(Type.{{ t.value.type_ | typeEnum }},v.x));
168 obj.put("y", toJSON(Type.{{ t.value.type_ | typeEnum }},v.y));
169 obj.put("z", toJSON(Type.{{ t.value.type_ | typeEnum }},v.z));
170 return obj;
171 }
172 {% when "V4" %}
173 case {{ t.value | typeEnum }}: {
174 {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj;
175 JSONObject obj = new JSONObject();
176 obj.put("x", toJSON(Type.{{ t.value.type_ | typeEnum }},v.x));
177 obj.put("y", toJSON(Type.{{ t.value.type_ | typeEnum }},v.y));
178 obj.put("z", toJSON(Type.{{ t.value.type_ | typeEnum }},v.z));
179 obj.put("w", toJSON(Type.{{ t.value.type_ | typeEnum }},v.w));
180 return obj;
181 }
182 {% when "Maybe" %}
183 case {{ t.value | typeEnum }}: {
184 {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj;
185 if (v.valid) {
186 return toJSON(Type.{{ t.value.type_ | typeEnum }},v.data);
187 }
188 return JSONObject.NULL;
189 }
190 {% when "Map" %}
191 case {{ t.value | typeEnum }}: {
192 {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj;
193 JSONObject obj = new JSONObject();
194 for (Map.Entry<{{ t.value.key_ | javaType }},{{ t.value.value_ | javaType }}> i : v.entrySet()) {
195 obj.put(i.getKey(), toJSON(Type.{{ t.value.value_ | typeEnum }},i.getValue()));
196 }
197 return obj;
198 }
199 {% when "Array" %}
200 case {{ t.value | typeEnum }}: {
201 {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj;
202 JSONArray obj = new JSONArray();
203 for({{ t.value.type_ | javaType }} i : v) {
204 obj.put(toJSON(Type.{{ t.value.type_ | typeEnum }},i));
205 }
206 return obj;
207 }
208 {% when "List" %}
209 case {{ t.value | typeEnum }}: {
210 {{ t.value | javaType }} v = ({{ t.value | javaType }})rawObj;
211 JSONArray obj = new JSONArray();
212 for({{ t.value.type_ | javaType }} i : v) {
213 obj.put(toJSON(Type.{{ t.value.type_ | typeEnum }},i));
214 }
215 return obj;
216 }
217 {% else %}
218 case {{ t.value | typeEnum }}: { return rawObj; }
219 {% endcase %}
220 {% endfor %}
221 }
222 return null;
223 }
130} \ No newline at end of file 224} \ No newline at end of file