final private void handleOperator( Operator o ) {
		
		int precedence = o.getPrecedence();
		int prevPrecedence = -1;
		if ( this.m_operatorsStack.size() > 0 ) {
			Token prev = this.m_operatorsStack.peek();
			if ( prev instanceof Operator ) {
				prevPrecedence = ( (Operator) prev ).getPrecedence();
				while( prev instanceof Operator && 
						( (precedence<prevPrecedence) || (o.isLeftAssociative() && precedence <= prevPrecedence ) ) ) {
					if ( this.m_operatorsStack.size() == 0 ) {
						break;
					}
					addToOutput( this.m_operatorsStack.pop() );
					if ( this.m_operatorsStack.size() == 0 ) {
						break;
					}
					prev = this.m_operatorsStack.peek();
					if ( prev instanceof Operator ) {
						prevPrecedence = ( ( Operator ) prev ).getPrecedence();
					}
				}
			}
		}
		this.m_operatorsStack.push( o );
	}