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::firstpos {cs firstpos nullable} { switch -- $cs { :seq { set result [lindex $firstpos 0 1] for {set i 0} {$i < [llength $nullable]} {incr i} { if {[lindex $nullable $i 1]} { lappend result {*}[lindex $firstpos $i+1 1] } else { break } } } :choice { foreach child $firstpos { lappend result {*}$child } } } return [list $firstpos [makeSet $result]] }