#!/bin/env tclsh
# -*- tcl -*-

puts "Using tclyaml [package require tclyaml]"
puts "      libyaml [tclyaml::version]"
puts ========================================
puts "shlib = [join [info loaded] "\nshlib = "]"
puts ========================================
puts ""

set yamlfile [lindex $argv 0]
set tagged [tclyaml readTags file $yamlfile]

proc convert {yml {prefix {}}} {
    lassign $yml tag value
    switch -exact -- $tag {
	scalar {
	    return $prefix$value
	}
	sequence {
	    append res $prefix \[\n
	    foreach element $value {
		append res [convert $element "    $prefix"] \n
	    }
	    append res $prefix \]\n
	    return $res
	}
	mapping {
	    append res $prefix \{\n
	    foreach {k v} $value {
		append res [convert $k "    $prefix"] :\n
		append res [convert $v "       $prefix"] \n
	    }
	    append res $prefix \}\n
	    return $res
	}
	default {
	    error "Unknown tag $tag"
	}
    }
}

set new {}
foreach document $tagged {
    lappend new [convert [lindex $document 0]]
}

puts "$yamlfile = [join $new \n]"

exit
