# File kwartz.rb, line 1243
        def exec_stmt(stmt_node, str, level)
            token = stmt_node.token
            left  = stmt_node.left
            right = stmt_node.right
            #
            str << '  ' * level
            str << (token.is_a?(Symbol) ? token.inspect : token)
            str << "\n"
            if stmt_node.is_a?(Conditional) && (cond = stmt_node.condition) then
                exec(cond, str, level+1) 
            end
            case token
            when :expand, :macro, :rawcode, ':::'
                Kwartz::assert() unless left.is_a?(String)
                str << '  ' * (level+1) << left << "\n"
            else
                exec(left, str, level+1) if left
            end
            exec(right, str, level+1) if right
            return str
        end