Lines Matching refs:nts
62 method {nonterminal add} {nts pae} {}
63 method {nonterminal delete} {nts pae} {}
64 method {nonterminal exists} {nts} {}
66 method {nonterminal mode} {nts args} {}
70 method {nonterminal rule} {nts} {}
197 method {nonterminal add} {nts pae} {
198 $self CheckNtKnown $nts
200 $self NtAdd $nts $pae
204 method {nonterminal mode} {nts args} {
205 $self CheckNt $nts
207 return $mo($nts)
209 set mo($nts) [lindex $args 0]
217 method {nonterminal delete} {nts args} {
218 set args [linsert $args 0 $nts]
219 foreach nts $args {
220 $self CheckNt $nts
223 foreach nts $args {
224 $self NtDelete $nts
229 method {nonterminal exists} {nts} {
230 return [info exists nt($nts)]
283 method {nonterminal rule} {nts} {
284 $self CheckNt $nts
285 return $nt($nts)
291 method NtAdd {nts pae} {
299 set nt($nts) $pae
300 set mo($nts) value
307 set re($nts) $references
312 lappend ir($x) $nts
318 unset -nocomplain uk($nts)
322 method NtDelete {nts} {
326 unset nt($nts)
327 unset re($nts)
328 unset mo($nts)
348 if {[info exists ir($nts]} {
349 set uk($nts) [llength $ir($nts)]
354 method CheckNt {nts} {
355 if {![info exists nt($nts)]} {
356 return -code error "Invalid nonterminal \"$nts\""
361 method CheckNtKnown {nts} {
362 if {[info exists nt($nts)]} {
363 return -code error "Nonterminal \"$nts\" is already known"