()
| 1489 | |
| 1490 | // shift_expr: arith_expr (('<<'|'>>') arith_expr)* |
| 1491 | private _parseShiftExpression(): ExpressionNode { |
| 1492 | let leftExpr = this._parseAirthmeticExpression(); |
| 1493 | if (leftExpr instanceof ErrorExpressionNode) { |
| 1494 | return leftExpr; |
| 1495 | } |
| 1496 | |
| 1497 | let nextOperator = this._peekOperatorType(); |
| 1498 | if (nextOperator === OperatorType.LeftShift || nextOperator === OperatorType.RightShift) { |
| 1499 | this._getNextToken(); |
| 1500 | let rightExpr = this._parseShiftExpression(); |
| 1501 | return new BinaryExpressionNode(leftExpr, rightExpr, nextOperator); |
| 1502 | } |
| 1503 | |
| 1504 | return leftExpr; |
| 1505 | } |
| 1506 | |
| 1507 | // arith_expr: term (('+'|'-') term)* |
| 1508 | private _parseAirthmeticExpression(): ExpressionNode { |
no test coverage detected