code: function addInfix(sId, iBindingPower, fnOperator, bLazy) {
  		// Note: this function is executed at load time only!
  		mSymbols[sId] = {
  			lbp: iBindingPower,
  			led: function (oToken, oParser, fnLeft) {
  				//lazy evaluation is right associative: performance optimization for guard and
  				//default operator, e.g. true || A || B || C does not execute the || for B and C
  				var rbp = bLazy ? this.lbp - 1 : this.lbp;
  
  				return INFIX.bind(null, fnLeft, oParser.expression(rbp),
  					fnOperator, bLazy);
  			},
  			nud: unexpected
  		};
  		return mSymbols[sId];
  	}
docs: Adds the infix operator with the given id, binding power and formatter function to the
  symbol table.
  @param {string} sId - the id of the infix operator
  @param {int} iBindingPower - the binding power = precedence of the infix operator
  @param {function} fnOperator - the function to evaluate the operator
  @param {boolean} [bLazy=false] - whether the right operand is lazily evaluated
  @return {object} the newly created symbol for the infix operator