ValueNode buildAssignment(ValueNode node, List parts) => parts.reversed.fold( node, (result, variableAndToken) => AssignmentNode(variableAndToken[0], variableAndToken[1], result), );