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::CModelMakeSyntaxTree {state spec} {
upvar #0 $state var
variable Wsp
variable name
# Translate the spec into a Tcl list.
# None of the Tcl special characters are allowed in a content model spec.
if {[regexp {\$|\[|\]|\{|\}} $spec]} {
return -code error "illegal characters in specification"
}
regsub -all -- [format {(%s)[%s]*(\?|\*|\+)?[%s]*(,|\|)?} $name $Wsp $Wsp] $spec [format {%sCModelSTname %s {\1} {\2} {\3}} \n $state] spec
regsub -all -- {\(} $spec "\nCModelSTopenParen $state " spec
regsub -all -- [format {\)[%s]*(\?|\*|\+)?[%s]*(,|\|)?} $Wsp $Wsp] $spec [format {%sCModelSTcloseParen %s {\1} {\2}} \n $state] spec
array set var {stack {} state start}
eval $spec
# Peel off the outer seq, its redundant
return [lindex $var(stack) 1 0]
}