function remove_rules( $nt ){
		if( ! isset($this->ntindex) ){
			$this->rebuild_index();
		}
		// remove this non-terminal's rules
		if( isset($this->ntindex[$nt]) ){
			foreach( $this->ntindex[$nt] as $i ){
				$sig = self::rule_signature( $nt, $this->rules[$i][1] );
				unset( $this->rules[$i] ); 
				unset( $this->uindex[$sig] );
			}
		} 
		// remove non terminal
		unset ( 
			$this->nts[$nt],
			$this->ntindex[$nt]
		);
	}
function remove_rules( $nt ){
		if( ! isset($this->ntindex) ){
			$this->rebuild_index();
		}
		// remove this non-terminal's rules
		if( isset($this->ntindex[$nt]) ){
			foreach( $this->ntindex[$nt] as $i ){
				$sig = self::rule_signature( $nt, $this->rules[$i][1] );
				unset( $this->rules[$i] ); 
				unset( $this->uindex[$sig] );
			}
		} 
		// remove non terminal
		unset ( 
			$this->nts[$nt],
			$this->ntindex[$nt]
		);
	}
function remove_rules ( $ nt ) { if ( ! isset ( $ this -> ntindex ) ) { $ this -> rebuild_index ( ) ; } // remove this non-terminal's rules if ( isset ( $ this -> ntindex [ $ nt ] ) ) { foreach ( $ this -> ntindex [ $ nt ] as $ i ) { $ sig = self :: rule_signature ( $ nt , $ this -> rules [ $ i ] [ 1 ] ) ; unset ( $ this -> rules [ $ i ] ) ; unset ( $ this -> uindex [ $ sig ] ) ; } } // remove non terminal unset ( $ this -> nts [ $ nt ] , $ this -> ntindex [ $ nt ] ) ; }
Remove a non-terminal symbol and delete all of its rules.
@param int
@return void
Remove a non - terminal symbol and delete all of its rules .