<?xml version="1.0" encoding="utf-8"?>
<!--
/// Copyright 2021 The Tint Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-->

<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

	<!--=================================================================-->
	<!-- utils -->
	<!--=================================================================-->

	<Type Name="tint::utils::Slice&lt;*&gt;">
		<DisplayString>{{ length={len}, capacity={cap} }}</DisplayString>
		<Expand>
			<!--<Item Name="[length]">len</Item>
			<Item Name="[capacity]">cap</Item>-->
			<ArrayItems>
				<Size>len</Size>
				<ValuePointer>data</ValuePointer>
			</ArrayItems>
		</Expand>
	</Type>

	<Type Name="tint::utils::Vector&lt;*,*&gt;">
		<Intrinsic Name="Length" Expression="(size_t)(impl_.slice.len)" />
		<Expand>
			<Item Name="[heap]">impl_.slice.cap > (int)$T2</Item>
			<!--<ExpandedItem>impl_.slice</ExpandedItem>-->
			<!--<Item Name="[slice]">impl_.slice</Item>-->
			<ArrayItems>
				<Size>Length()</Size>
				<ValuePointer>impl_.slice.data</ValuePointer>
			</ArrayItems>
		</Expand>
	</Type>

	<Type Name="tint::utils::VectorRef&lt;*&gt;">
		<Expand>
			<Item Name="[can move]">can_move_</Item>
			<ExpandedItem>slice_</ExpandedItem>
			<!--<Item Name="[slice]">slice_</Item>-->
		</Expand>
	</Type>

	<Type Name="tint::Symbol">
		<!-- Requires TINT_SYMBOL_STORE_DEBUG_NAME defined to 1 -->
		<DisplayString Optional="true">{debug_name_,sb}</DisplayString>
	</Type>

	<!--=================================================================-->
	<!-- ast -->
	<!--=================================================================-->

	<Type Name="tint::ast::AssignmentStatement">
		<DisplayString>{*lhs} = {*rhs};</DisplayString>
		<Expand>
			<Item Name="lhs">*lhs</Item>
			<Item Name="rhs">*rhs</Item>
		</Expand>
	</Type>

	<Type Name="tint::ast::IfStatement">
		<DisplayString Condition="!else_statement">if ({*condition}) {*body}</DisplayString>
		<DisplayString Condition="else_statement">if ({*condition}) {*body} else { *else_statement }</DisplayString>
	</Type>

	<Type Name="tint::ast::ElseStatement">
		<DisplayString Condition="!condition">else {*body}</DisplayString>
		<DisplayString Condition="!!condition">else if ({*condition}) {*body}</DisplayString>
	</Type>

	<Type Name="tint::ast::BlockStatement">
		<DisplayString Condition="statements.Length() == 1">{{ {*statements[0]} }} </DisplayString>
		<DisplayString Condition="statements.Length() == 2">{{ {*statements[0]} {*statements[1]} }} </DisplayString>
		<DisplayString Condition="statements.Length() == 3">{{ {*statements[0]} {*statements[1]} {*statements[2]} }} </DisplayString>
		<DisplayString Condition="statements.Length()  > 3">{{ {*statements[0]} {*statements[1]} {*statements[2]} {statements.Length()-3} more... }} </DisplayString>
	</Type>

	<Type Name="tint::ast::ReturnStatement">
		<DisplayString Condition="!value">return;</DisplayString>
		<DisplayString Condition="!!value">return {*value};</DisplayString>
	</Type>

	<Type Name="tint::ast::Function">
		<DisplayString Condition="params.size() == 0">fn {symbol}() -> {*return_type} {*body}</DisplayString>
		<DisplayString Condition="params.size() == 1">fn {symbol}({*params[0]}) -> {*return_type} {*body}</DisplayString>
		<DisplayString Condition="params.size() == 2">fn {symbol}({*params[0]} {*params[1]}) -> {*return_type} {*body}</DisplayString>
		<DisplayString Condition="params.size() == 3">fn {symbol}({*params[0]} {*params[1]} {*params[2]}) -> {*return_type} {*body}</DisplayString>
		<DisplayString Condition="params.size()  > 3">fn {symbol}({*params[0]} {*params[1]} {*params[2]} {params.size()-3} more...) -> {*return_type} {*body}</DisplayString>
	</Type>

	<Type Name="tint::ast::IdentifierExpression">
		<!--the ",sb" specifier removes the double quotes on the displayed string -->
		<DisplayString>{symbol}</DisplayString>
		<Expand>
			<Item Name="symbol">symbol</Item>
		</Expand>
	</Type>

	<Type Name="tint::ast::IndexAccessorExpression">
		<DisplayString>{*object}[{*index}]</DisplayString>
		<Expand>
			<Item Name="object">*object</Item>
			<Item Name="index">*index</Item>
		</Expand>
	</Type>

	<Type Name="tint::ast::MemberAccessorExpression">
		<DisplayString>{*structure}.{*member}</DisplayString>
		<Expand>
			<Item Name="structure">*structure</Item>
			<Item Name="member">*member</Item>
		</Expand>
	</Type>

	<Type Name="tint::ast::Let">
		<DisplayString Condition="!!type">let {symbol} : {*type} = {*initializer}</DisplayString>
		<DisplayString Condition=" !type">let {symbol} = {*initializer}</DisplayString>
	</Type>

	<Type Name="tint::ast::Variable">
		<DisplayString Condition="!!type &amp; !!initializer">var {symbol} : {*type} = {*initializer}</DisplayString>
		<DisplayString Condition="!!type &amp;  !initializer">var {symbol} : {*type}</DisplayString>
		<DisplayString Condition=" !type &amp; !!initializer">var {symbol} = {*initializer}</DisplayString>
		<DisplayString Condition=" !type &amp;  !initializer">var {symbol}</DisplayString>
	</Type>

	<Type Name="tint::ast::VariableDeclStatement">
		<DisplayString>{*variable};</DisplayString>
	</Type>

	<Type Name="tint::ast::IntLiteralExpression">
		<DisplayString>{value}</DisplayString>
	</Type>

	<Type Name="tint::ast::BoolLiteralExpression">
		<DisplayString>{value}</DisplayString>
	</Type>

	<Type Name="tint::ast::UnaryOpExpression">
		<DisplayString Condition="op==tint::ast::UnaryOp::kAddressOf">&amp;({*expr})</DisplayString>
		<DisplayString Condition="op==tint::ast::UnaryOp::kComplement">~({*expr})</DisplayString>
		<DisplayString Condition="op==tint::ast::UnaryOp::kIndirection">*({*expr})</DisplayString>
		<DisplayString Condition="op==tint::ast::UnaryOp::kNegation">-({*expr})</DisplayString>
		<DisplayString Condition="op==tint::ast::UnaryOp::kNot">!({*expr})</DisplayString>
	</Type>

	<Type Name="tint::ast::BinaryExpression">
		<DisplayString Condition="op==tint::ast::BinaryOp::kNone">({*lhs} NONE {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kAnd">({*lhs} &amp; {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kOr">({*lhs} | {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kXor">({*lhs} ^ {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kLogicalAnd">({*lhs} &amp;&amp; {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kLogicalOr">({*lhs} || {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kEqual">({*lhs} == {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kNotEqual">({*lhs} != {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kLessThan">({*lhs} &lt; {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kGreaterThan">({*lhs} &gt; {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kLessThanEqual">({*lhs} &lt;= {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kGreaterThanEqual">({*lhs} &gt;= {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kShiftLeft">({*lhs} &lt;&lt; {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kShiftRight">({*lhs} >> {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kAdd">({*lhs} + {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kSubtract">({*lhs} - {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kMultiply">({*lhs} * {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kDivide">({*lhs} / {*rhs})</DisplayString>
		<DisplayString Condition="op==tint::ast::BinaryOp::kModulo">({*lhs} % {*rhs})</DisplayString>
	</Type>

	<Type Name="tint::ast::CallExpression">
		<DisplayString Condition="args.Length() == 0">{target}()</DisplayString>
		<DisplayString Condition="args.Length() == 1">{target}({*args[0]})</DisplayString>
		<DisplayString Condition="args.Length() == 2">{target}({*args[0]}, {*args[1]})</DisplayString>
		<DisplayString Condition="args.Length() == 3">{target}({*args[0]}, {*args[1]}, {*args[2]})</DisplayString>
		<DisplayString Condition="args.Length() == 4">{target}({*args[0]}, {*args[1]}, {*args[2]}, {*args[3]})</DisplayString>
		<DisplayString Condition="args.Length()  > 4">{target}({*args[0]}, {*args[1]}, {*args[2]}, {args.Length()-3} more...)</DisplayString>
		<!-- TODO: add more overloads -->
	</Type>

	<Type Name="tint::ast::CallExpression::Target">
		<DisplayString Condition ="name != nullptr">{*name}</DisplayString>
		<DisplayString Condition ="name == nullptr">{*type}</DisplayString>
	</Type>

	<Type Name="tint::ast::Array">
		<DisplayString Condition="count != nullptr">array&lt;{*type},{*count}&gt;</DisplayString>
		<DisplayString Condition="count == nullptr">array&lt;{*type}&gt;</DisplayString>
	</Type>

	<Type Name="tint::ast::Vector">
		<DisplayString Condition="width==2 &amp; !type">vec2</DisplayString>
		<DisplayString Condition="width==3 &amp; !type">vec3</DisplayString>
		<DisplayString Condition="width==4 &amp; !type">vec4</DisplayString>
		<DisplayString Condition="width==2 &amp; !!type">vec2&lt;{*type}&gt;</DisplayString>
		<DisplayString Condition="width==3 &amp; !!type">vec3&lt;{*type}&gt;</DisplayString>
		<DisplayString Condition="width==4 &amp; !!type">vec4&lt;{*type}&gt;</DisplayString>
	</Type>

	<Type Name="tint::ast::TypeName">
		<DisplayString>{name}</DisplayString>
	</Type>

	<Type Name="tint::ast::Bool">
		<DisplayString>bool</DisplayString>
	</Type>

	<Type Name="tint::ast::I32">
		<DisplayString>i32</DisplayString>
	</Type>

	<Type Name="tint::ast::U32">
		<DisplayString>u32</DisplayString>
	</Type>

	<Type Name="tint::ast::F32">
		<DisplayString>f32</DisplayString>
	</Type>

	<!--=================================================================-->
	<!-- sem -->
	<!--=================================================================-->

	<Type Name="tint::type::AbstractInt">
		<DisplayString>AbstractInt</DisplayString>
	</Type>

	<Type Name="tint::type::AbstractFloat">
		<DisplayString>AbstractFloat</DisplayString>
	</Type>

	<Type Name="tint::type::Bool">
		<DisplayString>bool</DisplayString>
	</Type>

	<Type Name="tint::type::F32">
		<DisplayString>f32</DisplayString>
	</Type>

	<Type Name="tint::type::Vector">
		<DisplayString>vec{width_}&lt;{*subtype_}&gt;</DisplayString>
	</Type>

	<Type Name="tint::constant::Value">
		<DisplayString>Type={*Type()} Value={Value()}</DisplayString>
	</Type>

	<Type Name="tint::sem::ValueExpression">
		<DisplayString>Decl={*declaration_}</DisplayString>
	</Type>

</AutoVisualizer>
