This procedure is defined in the server but not documented via ad_proc or proc_doc and may be intended as a private interface.

The procedure is defined as:

proc sgml::nullable {nodeType rep name subtree} {
    
    switch -glob -- $rep:$nodeType {
        :leaf -
        +:leaf {
            return [list {} 0]
        }
        \\*:leaf -
        \\?:leaf {
            return [list {} 1]
        }
        \\*:nonterm -
        \\?:nonterm {
            return [list $subtree 1]
        }
        :nonterm -
        +:nonterm {
            switch -- $name {
                :choice {
                    set result 0
                    foreach child $subtree {
                        set result [expr {$result || [lindex $child 1]}]
                    }
                }
                :seq {
                    set result 1
                    foreach child $subtree {
                        set result [expr {$result && [lindex $child 1]}]
                    }
                }
            }
            return [list $subtree $result]
        }
    }

}

Show another procedure: