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]
}
}
}