* add or subtract * @return {Node} node * @private
(state)
| 1032 | * @private |
| 1033 | */ |
| 1034 | function parseAddSubtract (state) { |
| 1035 | let node, name, fn, params |
| 1036 | |
| 1037 | node = parseMultiplyDivideModulus(state) |
| 1038 | |
| 1039 | const operators = { |
| 1040 | '+': 'add', |
| 1041 | '-': 'subtract' |
| 1042 | } |
| 1043 | while (hasOwnProperty(operators, state.token)) { |
| 1044 | name = state.token |
| 1045 | fn = operators[name] |
| 1046 | |
| 1047 | getTokenSkipNewline(state) |
| 1048 | const rightNode = parseMultiplyDivideModulus(state) |
| 1049 | if (rightNode.isPercentage) { |
| 1050 | params = [node, new OperatorNode('*', 'multiply', [node, rightNode])] |
| 1051 | } else { |
| 1052 | params = [node, rightNode] |
| 1053 | } |
| 1054 | node = new OperatorNode(name, fn, params) |
| 1055 | } |
| 1056 | |
| 1057 | return node |
| 1058 | } |
| 1059 | |
| 1060 | /** |
| 1061 | * multiply, divide, modulus |
no test coverage detected
searching dependent graphs…