<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="Token">
    <DisplayString>{mStr}</DisplayString>
  </Type>

    <Type Name="TokensFrontBack">
        <DisplayString>{front->mStr} - {back->mStr}</DisplayString>
    </Type>


    <Type Name="TokenList">
    <DisplayString>{mTokensFrontBack.front->mStr} - {mTokensFrontBack.back->mStr}</DisplayString>
    <Expand>
      <Item Name="[files]">mFiles</Item>
      <CustomListItems Optional="true" MaxItemsPerView="5000">
        <Variable Name="pCurr" InitialValue="mTokensFrontBack.front" />
        <Loop>
          <If Condition="pCurr == mTokensFrontBack.back">
            <Break Condition="1"/>
          </If>
          <Item>pCurr</Item>
          <Exec>pCurr = pCurr->mNext</Exec>
        </Loop>
      </CustomListItems>
      
    </Expand>
  </Type>

  <Type Name="Variable">
    <DisplayString>{mNameToken->mStr}</DisplayString>
  </Type>

  <Type Name="Function">
    <DisplayString>{tokenDef->mStr}</DisplayString>
  </Type>

  <Type Name="Dimension">
    <DisplayString Condition="known">{num}</DisplayString>
    <DisplayString Condition="!known">?</DisplayString>
  </Type>

  <Type Name="Scope">
    <DisplayString>{type}: {className}</DisplayString>
  </Type>

  <Type Name="cppcheck::Platform">
    <DisplayString>{platformType}</DisplayString>
  </Type>
  
  <Type Name="simplecpp::Location">
    <DisplayString>{files[fileIndex]} : {line} [col={col}]</DisplayString>
  </Type>
    
    
  <Type Name="ValueFlow::Value">
    <DisplayString Condition="valueType==INT">{intvalue} (INT)</DisplayString>
    <DisplayString Condition="valueType==TOK">{tokvalue} (TOK)</DisplayString>
    <DisplayString Condition="valueType==FLOAT">{floatValue} (FLOAT)</DisplayString>
    <!--DisplayString Condition="valueType==MOVED">{moveKind}</DisplayString-->    
  </Type>


  <Type Name="Enumerator">
    <DisplayString Condition="!name">[UNKNOWN]</DisplayString>
    <DisplayString Condition="value_known">{name} = {value} (value_known=true)</DisplayString>
    <DisplayString Condition="!value_known">{name} = ?</DisplayString>
  </Type>
  
  
</AutoVisualizer>