function () {
			var leftNode = this.parseBaseExpression();

			if (this.currentToken.type == 'operator') {
				var operator = this.currentToken.value;
				this.readNextToken();

				// If there are 2 adjacent operators, join them with a space (exemple: IS NOT)
				if (this.currentToken.type == 'operator') {
					operator += ' ' + this.currentToken.value;
					this.readNextToken();
				}

				var rightNode = this.parseBaseExpression();

				leftNode = {'operator': operator, 'left': leftNode, 'right': rightNode};
			}

			return leftNode;
		}
function () {
			var leftNode = this.parseBaseExpression();

			if (this.currentToken.type == 'operator') {
				var operator = this.currentToken.value;
				this.readNextToken();

				
				if (this.currentToken.type == 'operator') {
					operator += ' ' + this.currentToken.value;
					this.readNextToken();
				}

				var rightNode = this.parseBaseExpression();

				leftNode = {'operator': operator, 'left': leftNode, 'right': rightNode};
			}

			return leftNode;
		}
function ( ) { var leftNode = this . parseBaseExpression ( ) ; if ( this . currentToken . type == 'operator' ) { var operator = this . currentToken . value ; this . readNextToken ( ) ; // If there are 2 adjacent operators, join them with a space (exemple: IS NOT) if ( this . currentToken . type == 'operator' ) { operator += ' ' + this . currentToken . value ; this . readNextToken ( ) ; } var rightNode = this . parseBaseExpression ( ) ; leftNode = { 'operator' : operator , 'left' : leftNode , 'right' : rightNode } ; } return leftNode ; }
Parse conditions ([word/string] [operator] [word/string])
Parse conditions ( [ word / string ] [ operator ] [ word / string ] )