public String toString()
	{
		if ( rule == null )
			return "[ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ]";

		int          len = rule.rhs.size();
		StringBuffer sb  = new StringBuffer(rule.lhs).append(":");
		for ( int i = 0; i <= len; ++i )
		{
			if ( dot == i )
				sb.append(" .");
			else
				sb.append(" ");

			if ( i < len )
				sb.append(rule.rhs.get(i));
		}

		sb.append(" [B:").append(back)
			.append(", L:").append(left)
			.append(", S:").append(sub)
			.append(", SYM:").append(symbol)
			.append("]");

		return sb.toString();
	}