function terminate( $tok ){
		if( is_scalar($tok) ){
			// scalar token e.g. ";"
			if( is_null($this->t) ){
				$this->t = $tok;
			}
			$this->value = $tok;
		}
		else if( is_array($tok) ){
			// PHP tokenizer style array token
			$this->t = $tok[0];
			$this->value = $tok[1];
			// store additional info in terminal node
			if( isset($tok[2]) ){
				$this->l = $tok[2];
				if( isset($tok[3]) ){
					$this->c = $tok[3];
				}
			}
		}
		// destroy all children
		while( $Child = $this->pop() ){
			$Child->destroy();
		}
	}