#stdout
Void:flags:0 kind:0
Bool:flags:0 kind:1
Char_S:flags:1 kind:2
Char_U:flags:2 kind:2
Char16:flags:0 kind:3
Char32:flags:0 kind:4
WChar:flags:0 kind:5
Short:flags:32 kind:6
UShort:flags:34 kind:6
Int:flags:0 kind:6
UInt:flags:2 kind:6
Long:flags:4 kind:6
ULong:flags:6 kind:6
LongLong:flags:8 kind:6
ULongLong:flags:10 kind:6
Int128:flags:0 kind:7
UInt128:flags:2 kind:7
Float:flags:0 kind:8
Half:flags:0 kind:9
Float16:flags:0 kind:9
Double:flags:16 kind:8
LongDouble:flags:20 kind:8
Float128:flags:0 kind:10
Complex:flags:0 kind:11
Complex:flags:16 kind:11
Complex:flags:20 kind:11
Unknown:flags:0 kind:0
Type: char *:
{
	"X":	{
		"Kind":	2,
		"Flags":	1
	}
}
Type: char ***:
{
	"X":	{
		"X":	{
			"X":	{
				"Kind":	2,
				"Flags":	1
			}
		}
	}
}
Type: char[]:
{
	"Elt":	{
		"Kind":	2,
		"Flags":	1
	},
	"Len":	null
}
Type: char[10]:
{
	"Elt":	{
		"Kind":	2,
		"Flags":	1
	},
	"Len":	{
		"Kind":	0,
		"Value":	"10"
	}
}
Type: char[3][4]:
{
	"Elt":	{
		"Elt":	{
			"Kind":	2,
			"Flags":	1
		},
		"Len":	{
			"Kind":	0,
			"Value":	"4"
		}
	},
	"Len":	{
		"Kind":	0,
		"Value":	"3"
	}
}
Type: int &:
{
	"X":	{
		"Kind":	6,
		"Flags":	0
	}
}
Type: int &&:
{
	"X":	{
		"Kind":	6,
		"Flags":	0
	}
}
Type: Foo:
{
	"Name":	"Foo"
}
Type: struct Foo:
{
	"Name":	{
		"Name":	"Foo"
	},
	"Tag":	0
}
Type: Foo:
{
	"Name":	"Foo"
}
Type: union Foo:
{
	"Name":	{
		"Name":	"Foo"
	},
	"Tag":	1
}
Type: Foo:
{
	"Name":	"Foo"
}
Type: enum Foo:
{
	"Name":	{
		"Name":	"Foo"
	},
	"Tag":	2
}
Type: Foo:
{
	"Name":	"Foo"
}
Type: class Foo:
{
	"Name":	{
		"Name":	"Foo"
	},
	"Tag":	3
}
Type: a::b::c:
{
	"X":	{
		"Name":	"c"
	},
	"Parent":	{
		"X":	{
			"Name":	"b"
		},
		"Parent":	{
			"Name":	"a"
		}
	}
}
Type: class a::b::c:
{
	"Name":	{
		"X":	{
			"Name":	"c"
		},
		"Parent":	{
			"X":	{
				"Name":	"b"
			},
			"Parent":	{
				"Name":	"a"
			}
		}
	},
	"Tag":	3
}
Type: int (*)(int, char):
{
	"X":	{
		"Params":	{
			"List":	[{
					"Type":	{
						"Kind":	6,
						"Flags":	0
					},
					"Doc":	null,
					"Comment":	null,
					"Names":	[]
				}, {
					"Type":	{
						"Kind":	2,
						"Flags":	1
					},
					"Doc":	null,
					"Comment":	null,
					"Names":	[]
				}]
		},
		"Ret":	{
			"Kind":	6,
			"Flags":	0
		}
	}
}

#stderr
todo: unknown builtin type: Ibm128

#exit 0
