UNPKG

prettier-plugin-solidity

Version:

A Prettier Plugin for automatically formatting your Solidity code.

36 lines 1.57 kB
import { NonterminalKind } from '@nomicfoundation/slang/cst'; import { TupleExpression } from '../slang-nodes/TupleExpression.js'; import { TupleValues } from '../slang-nodes/TupleValues.js'; import { TupleValue } from '../slang-nodes/TupleValue.js'; import { TerminalNode } from '../slang-nodes/TerminalNode.js'; import { isBinaryOperation } from './is-binary-operation.js'; export function createHugFunction(huggableOperators) { const operators = new Set(huggableOperators); return (node) => { if (!(node instanceof TerminalNode) && isBinaryOperation(node) && operators.has(node.operator)) { const loc = node.loc; return Object.assign(Object.create(TupleExpression.prototype), { kind: NonterminalKind.TupleExpression, loc: Object.assign({}, loc), comments: [], items: Object.assign(Object.create(TupleValues.prototype), { kind: NonterminalKind.TupleValues, loc: Object.assign({}, loc), comments: [], items: [ Object.assign(Object.create(TupleValue.prototype), { kind: NonterminalKind.TupleValue, loc: Object.assign({}, loc), comments: [], expression: node }) ] }) }); } return node; }; } //# sourceMappingURL=create-hug-function.js.map