mirror of
https://github.com/Snigdha-OS/documentation.git
synced 2025-09-08 19:34:56 +02:00
26 lines
580 B
JavaScript
26 lines
580 B
JavaScript
/**
|
|
* @typedef {import('estree-jsx').Expression} Expression
|
|
*/
|
|
|
|
import {ok as assert} from 'devlop'
|
|
|
|
/**
|
|
* @param {ReadonlyArray<Expression>} expressions
|
|
* Expressions.
|
|
* @returns {Expression}
|
|
* Addition.
|
|
*/
|
|
export function toBinaryAddition(expressions) {
|
|
let index = -1
|
|
/** @type {Expression | undefined} */
|
|
let left
|
|
|
|
while (++index < expressions.length) {
|
|
const right = expressions[index]
|
|
left = left ? {type: 'BinaryExpression', left, operator: '+', right} : right
|
|
}
|
|
|
|
assert(left, 'expected non-empty `expressions` to be passed')
|
|
return left
|
|
}
|