Smaller subset of binary operators

This commit is contained in:
Tim Schaub
2013-06-10 10:53:01 -06:00
parent 7800e9b0cc
commit c4867bafec
+21 -37
View File
@@ -65,7 +65,6 @@ ol.expression.Parser = function() {
*/ */
ol.expression.Parser.prototype.binaryPrecedence_ = function(token) { ol.expression.Parser.prototype.binaryPrecedence_ = function(token) {
var precedence = 0; var precedence = 0;
if (token.type !== ol.expression.TokenType.PUNCTUATOR) { if (token.type !== ol.expression.TokenType.PUNCTUATOR) {
return precedence; return precedence;
} }
@@ -74,53 +73,24 @@ ol.expression.Parser.prototype.binaryPrecedence_ = function(token) {
case '||': case '||':
precedence = 1; precedence = 1;
break; break;
case '&&': case '&&':
precedence = 2; precedence = 2;
break; break;
case '==': case '!=': case '===': case '!==':
case '|':
precedence = 3; precedence = 3;
break; break;
case '<': case '>': case '<=': case '>=':
case '^':
precedence = 4; precedence = 4;
break; break;
case '<<': case '>>':
case '&':
precedence = 5; precedence = 5;
break; break;
case '+': case '-':
case '==':
case '!=':
case '===':
case '!==':
precedence = 6; precedence = 6;
break; break;
case '*': case '/': case '%':
case '<':
case '>':
case '<=':
case '>=':
precedence = 7; precedence = 7;
break; break;
case '<<':
case '>>':
precedence = 8;
break;
case '+':
case '-':
precedence = 9;
break;
case '*':
case '/':
case '%':
precedence = 10;
break;
default: default:
break; break;
} }
@@ -246,8 +216,22 @@ ol.expression.Parser.prototype.parseArguments_ = function(lexer) {
/** /**
* Parse a binary expression. * Parse a binary expression. Supported binary expressions:
* http://www.ecma-international.org/ecma-262/5.1/#sec-11.11 *
* - Multiplicative Operators (`*`, `/`, `%`)
* http://www.ecma-international.org/ecma-262/5.1/#sec-11.5
* - Additive Operators (`+`, `-`)
* http://www.ecma-international.org/ecma-262/5.1/#sec-11.6
*
* - Relational Operators (`<`, `>`, `<=`, `>=`)
* http://www.ecma-international.org/ecma-262/5.1/#sec-11.8
*
* - Equality Operators (`==`, `!=`, `===`, `!==`)
* http://www.ecma-international.org/ecma-262/5.1/#sec-11.9
*
* - Binary Logical Operators (`&&`, `||`)
* http://www.ecma-international.org/ecma-262/5.1/#sec-11.11
* *
* @param {ol.expression.Lexer} lexer Lexer. * @param {ol.expression.Lexer} lexer Lexer.
* @return {ol.expression.Expression} Expression. * @return {ol.expression.Expression} Expression.