.macro kdump ( x )
    .sym pmc it
    it = get_root_global ['parrot'], '_dumper'
    it(.x)
.endm

.macro kdump2 ( x, d)
    .sym pmc it
    it = get_root_global ['parrot'], '_dumper'
    it(.x, .d)
.endm

.macro dump_root
    .sym string it
    .sym pmc ns
    ns = get_root_namespace [ 'parrot'; 'Cardinal::Grammar' ]
    .sym pmc iter
    iter = new Iterator, ns
    set iter, 0
    .local $iter_loop:
    unless iter, .$iter_end
    shift it, iter
    print it
    print "\n"
    goto .$iter_loop
    .local $iter_end:
.endm

.macro dump_hll
    .sym string it
    .sym pmc ns
    ns = get_hll_namespace
    .sym pmc iter
    iter = new Iterator, ns
    set iter, 0
    .local $iter_loop:
    unless iter, .$iter_end
    shift it, iter
    print it
    print "\n"
    goto .$iter_loop
    .local $iter_end:
.endm

.macro dump_hll2
    .sym string it
    .sym pmc ns
    ns = get_hll_namespace
    .sym pmc iter
    iter = new Iterator, ns
    set iter, 0
    .local $iter_loop:
    unless iter, .$iter_end
    shift it, iter
    print it
    print "\n"
    goto .$iter_loop
    .local $iter_end:
.endm

.macro dump_current
    .sym string it
    .sym pmc ns
    ns = get_namespace
    .sym pmc iter
    iter = new Iterator, ns
    set iter, 0
    .local $iter_loop:
    unless iter, .$iter_end
    shift it, iter
    print it
    print "\n"
    goto .$iter_loop
    .local $iter_end:
.endm

