()
| 1527 | |
| 1528 | // term: factor (('*'|'@'|'/'|'%'|'//') factor)* |
| 1529 | private _parseAirthmeticTerm(): ExpressionNode { |
| 1530 | let leftExpr = this._parseAirthmeticFactor(); |
| 1531 | if (leftExpr instanceof ErrorExpressionNode) { |
| 1532 | return leftExpr; |
| 1533 | } |
| 1534 | |
| 1535 | let nextOperator = this._peekOperatorType(); |
| 1536 | if (nextOperator === OperatorType.Multiply || |
| 1537 | nextOperator === OperatorType.MatrixMultiply || |
| 1538 | nextOperator === OperatorType.Divide || |
| 1539 | nextOperator === OperatorType.Mod || |
| 1540 | nextOperator === OperatorType.FloorDivide) { |
| 1541 | this._getNextToken(); |
| 1542 | let rightExpr = this._parseAirthmeticTerm(); |
| 1543 | return new BinaryExpressionNode(leftExpr, rightExpr, nextOperator); |
| 1544 | } |
| 1545 | |
| 1546 | return leftExpr; |
| 1547 | } |
| 1548 | |
| 1549 | // factor: ('+'|'-'|'~') factor | power |
| 1550 | // power: atom_expr ['**' factor] |
no test coverage detected